FreeSWITCH + WebRTC + sipML5

webrtc

WebRTC - открытая программная структура (framework) обеспечивающая коммуникации в реальном времени (Real Time Communications) в веб браузере, т.е. передачу аудио/видео данных в высоком качестве, между браузерами и другими приложениями в режиме точка-точка. Включает в себя компоненты, для создания веб-разработчиками приложений голосовой и видео связи, используя Javascript API. Поддерживается браузерами Chrome, Opera, Firefox. Проект WebRTC предлагает полный стек протоколов для голосовой связи. На данный момент поддерживаются G.711, G.722, iLBC и iSAC аудио кодеки, а также VP8 видео кодек. Имеется несколько SIP клиентов написанных на Javascript, такие как - SipML5, sip-js, jsSIP, SIPjs

С помощью транспорта Websocket (ws://) WebRTC SIP клиенты могут взаимодействовать с голосовыми серверными приложениями, такими как Asterisk, FreeSWITCH и др.

Рассмотрим пример подключения WebRTC софтфона sipML5 к FreeSWITCH, через WebSocket соответственно

Добавьте в файле /usr/local/freeswitch/sip_profiles/internal.xml в разделе <settings> следующую строку:

 <param name="ws-binding"  value=":5066"/>

Где 5066 порт TCP WebSocket (ws).

В консоли FreeSWITCH примените настройки командой:

  #fs_cli
  freeswitch@internal> sofia profile internal rescan reload restart

затем командой sofia status profile internal проверим статус websocket:

 freeswitch@internal> sofia status profile internal
=================================================================================================
Name                    internal
Domain Name             N/A
Auto-NAT                false
DBName                  sofia_reg_internal
Pres Hosts              123.123.123.0,192.168.0.231
Dialplan                XML
Context                 public
Challenge Realm         auto_from
RTP-IP                  192.168.0.231
Ext-RTP-IP              123.123.123.0
SIP-IP                  192.168.0.231
Ext-SIP-IP              123.123.123.0
URL                     sip:mod_sofia@123.123.123.0:5060
BIND-URL                sip:mod_sofia@123.123.123.0:5060;maddr=192.168.0.231;transport=udp,tcp
WS-BIND-URL             sip:mod_sofia@192.168.0.231:5066;transport=ws
HOLD-MUSIC              local_stream://default
OUTBOUND-PROXY          N/A
CODECS IN               G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM
CODECS OUT              G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM
TEL-EVENT               101
DTMF-MODE               rfc2833
CNG                     1300
SESSION-TO              450
MAX-DIALOG              340
NOMEDIA                 false
LATE-NEG                false
PROXY-MEDIA             false
ZRTP-PASSTHRU           false
AGGRESSIVENAT           false
CALLS-IN                7467
FAILED-CALLS-IN         43
CALLS-OUT               3050
FAILED-CALLS-OUT        65
REGISTRATIONS           247

Скачайте софтфон и в директорию вашего веб сервера и задайте права пользователя:

 chown -R apache.apache sipML5

затем откройте страницу софтфона в веб браузере Chrome или Firefox последней версии.

sipml5 expert mode

в режиме expert задайте IP адрес сервера и порт WebSocket:

ws://123.123.123.0:5066

sipml5 registration

В режиме вызова задайте sip username, sip password. Звездочкой отмечены обязательные поля.

sipml5 call control (812) 3216111

Когда все готово можно звонить.

chrome setup

При совершении входящих и исходящих вызовов Chrome запросит разрешение на использование микрофона и камеры.

chrome setup allow exception

Настройки > Показать дополнительные настройки > Личные данные > Настройки контента > камера и микрофон >

  • artikle/webrtc_freeswitch.txt
  • Последние изменения: 2018/03/12