|
|||||||
Настройка звонка через консоль с помощью linphonec
Время создания: 06.03.2019 16:13
Текстовые метки: sip, linphone, linphonec, звонок, вызов, телефон
Раздел: Компьютер - Linux - Сеть в Linux - Телефония, SIP, Asterisk
Запись: xintrea/mytetra_syncro/master/base/15518780084k2ycmrlpp/text.html на raw.github.com
|
|||||||
|
|||||||
Консольные приложения linphonec и linphonecsh и одновременная работа на одном компьютере Кроме программы с графическим интерфейсом linphone, в состав Linphone входят две программы для работы из командной строки. Первая — linphonec — версия программы для работы из командной строки. Вторая — linphonecsh — консольная программа для управления работающей в фоновом режиме программой linphonec. Конфигурационный файл .linphonerc При первом запуске Linphone создает конфигурационный файл ~/.linphonerc в домашнем каталоге пользователя: $ cat ~/.linphonerc Параметры конфигурационного файла описаны в разделе документации на сайте Linphone. Чтобы запустить несколько копий linphonec, сделаем несколько копий конфигурационного файла, различающихся последней цифрой $ NAM=.linphonerc; for NUM in {1..3}; do cp $NAM $NAM$NUM; done $ ls .linphonerc* .linphonerc .linphonerc1 .linphonerc2 .linphonerc3 $ Первый ( .linphonerc1) оставим без изменений, во втором и третьем сменим порты на 5062 и 5063, а имена, идентификаторы пользователей и пароли — на 202 и 203 соответственно. $ nano ./.linphonerc2 ... [sip] ... sip_port=5062 ... [proxy_0] ... reg_identity=sip:202@localhost ... [auth_info_0] username=202 userid=202 passwd=202 ... $ nano ./.linphonerc3 ... [sip] ... sip_port=5063 ... [proxy_0] ... reg_identity=sip:203@localhost ... [auth_info_0] username=203 userid=203 passwd=203 ... Теперь мы могли бы попытаться запустить linphone с измененными файлами конфигурации, однако Asterisk еще ничего не знает об этих устройствах. Настройка Asterisk Файл sip.conf В файле sip.conf уже есть раздел для телефона 201, сконфигурированный нами раньше: [201] type=friend secret=201 host=dynamic context=from_internal Добавим два аналогичных раздела в sip.conf, отличающихся заголовком раздела (то есть номером телефона [201]) и паролем ( secret=201): $ sudo nano /etc/asterisk/sip.conf [202] type=friend secret=202 host=dynamic context=from_internal
[203] type=friend secret=203 host=dynamic context=from_internal Файл extensions.conf Добавим новый раздел [from_internal] в файл extensions.conf $ sudo nano /etc/asterisk/extensions.conf [from_internal] exten=>_2XX,1,Dial(SIP/${EXTEN},20) Перечитаем конфигурацию В консоли Asterisk перечитаем конфигурацию: al-nb-02*CLI> sip reload al-nb-02*CLI> dialplan reload Или одной командой все конфигурационные файлы: al-nb-02*CLI> reload Запуск linphonec Ключи командной строки linphonec $ linphonec --help ERROR: bad arguments
usage: linphonec [-c file] [-s sipaddr] [-a] [-V] [-d level ] [-l logfile] linphonec -v
-b file specify path of readonly factory configuration file. -c file specify path of configuration file. -d level be verbose. 0 is no output. 6 is all output -l logfile specify the log file for your SIP phone -s sipaddress specify the sip call to do at startup -a enable auto answering for incoming calls -V enable video features globally (disabled by default) -C enable video capture only (disabled by default) -D enable video display only (disabled by default) -S show general state messages (disabled by default) --wid windowid force embedding of video window into provided windowid (disabled by default) -v or --version display version and exits. Запуск двух процессов с разными конфигурационными файлами Теперь в двух разных терминальных окнах запустим linphonec с разными конфигурационными файлами. В первом: $ linphonec -c ~/.linphonerc2 И в другом: $ linphonec -c ~/.linphonerc3 В консоли Asterisk увидим уведомление об успешной регистрации: -- Registered SIP '202' at 127.0.0.1:5062 > Saved useragent "Linphone/3.6.1 (eXosip2/4.0.0)" for peer 202 -- Registered SIP '203' at 127.0.0.1:5063 > Saved useragent "Linphone/3.6.1 (eXosip2/4.0.0)" for peer 203 Доступные команды linphonec linphonec> help Commands are: --------------------------- help Print commands help. call Call a SIP uri or number calls Show all the current calls with their id and status. chat Chat with a SIP uri terminate Terminate a call answer Answer a call pause pause a call resume resume a call transfer Transfer a call to a specified destination. conference Create and manage an audio conference. mute Mute microphone and suspend voice transmission. camera Send camera output for current call. unmute Unmute microphone and resume voice transmission. playbackga Adjust playback gain. duration Print duration in seconds of the last call. autoanswer Show/set auto-answer mode proxy Manage proxies soundcard Manage soundcards webcam Manage webcams ipv6 Use IPV6 nat Set nat address stun Set stun server address firewall Set firewall policy call-logs Calls history friend Manage friends play play a wav file record record to a wav file quit Exit linphonec --------------------------- Type 'help <command>' for more details or 'help advanced' to list additional commands. linphonec> Звонок На телефоне 202 наберем номер 203 командой call: linphonec> call 203 Establishing call id to <sip:203@localhost>, assigned id 1 Contacting <sip:203@localhost> linphonec> Call 1 to <sip:203@localhost> in progress. linphonec> Remote ringing. linphonec> Remote ringing... linphonec> Call 1 to <sip:203@localhost> ringing. Со стороны вызываемого абонента 203 увидим: linphonec> <sip:202@127.0.0.1> is contacting you. linphonec> Receiving new incoming call from <sip:202@127.0.0.1>, assigned id 1 На 203 ответим командой answer linphonec> answer Connected. linphonec> Call 1 with <sip:202@127.0.0.1> connected. Media streams established with <sip:202@127.0.0.1> for call 1 (audio). linphonec> Call is updated by remote. linphonec> Media streams established with <sip:202@127.0.0.1> for call 1 (audio). Call is updated by remote. linphonec> Media streams established with <sip:202@127.0.0.1> for call 1 (audio). На 202 увидим: Call 1 with <sip:203@localhost> connected. Call answered by <sip:203@localhost>. linphonec> Media streams established with <sip:203@localhost> for call 1 (audio). Call is updated by remote. linphonec> Media streams established with <sip:203@localhost> for call 1 (audio). Завершим соединение со стороны телефона 203 командой terminate linphonec> terminate Call ended linphonec> Call 1 with <sip:202@127.0.0.1> ended (No error). На телефоне 202 увидим разъединение вызова с дальней стороны: linphonec> Call is updated by remote. linphonec> Media streams established with <sip:203@localhost> for call 1 (audio). Call terminated. linphonec> Call 1 with <sip:203@localhost> ended (No error). Лог Asterisk В консоли Asterisk в это же время увидим следующие сообщения. Вызов 202->203 al-nb-02*CLI> == Using SIP RTP CoS mark 5 -- Executing [203@from_internal:1] Dial("SIP/202-00000000", "SIP/203,20") in new stack == Using SIP RTP CoS mark 5 -- Called SIP/203 -- SIP/203-00000001 is ringing Ответ со стороны 203: -- SIP/203-00000001 answered SIP/202-00000000 -- Remotely bridging SIP/202-00000000 and SIP/203-00000001 Отбой со стороны 203: == Spawn extension (from_internal, 203, 1) exited non-zero on 'SIP/202-00000000' al-nb-02*CLI> |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|