Настройка WebRTC в Asterisk (FreePBX)
Технические требования
Сервер телефонии должен быть доступным из Интернет, т.е. иметь белый IP.
Должен быть рабочий SSL/TLS-сертификат.
При использовании браузерного софтфона на сервере Asterisk должен быть настроен wss (WebSocket Secure), и порт должен быть открыт наружу (обычно 8089) (?). Настраивается в интерфейсе администратора: Advanced Settings > Asterisk Builtin mini-HTTP section > HTTPS Bind Port
Диапазон портов для RTP (обычно 10000-20000) (?). Настраивается в интерфейсе администратора: Settings → Asterisk SIP Settings → General SIP Settings Tab
Настройка
В данном примере рассматривается настройка WebRTC в уже работающем FreePBX-сервере:
доступен по адресу .ru и имеет SSL/TLS-сертификат.
FreePBX версии 16, Asterisk версии 15.
настроен wss через порт 8089.
открыты все остальные нужные порты.
Настройка FreePBX
Если кнопка “Change To CHAN_PjSIP Driver” (см. ниже, в настройке внутреннего номера) доступна, то в данном разделе ничего делать не нужно.
Settings ➝ Advanced Settings
SIP Channel Driver
both
Settings ➝ Asterisk SIP Settings
Вкладка “SIP Legacy Settings [chan_sip]”
Проверить, что установлены переменные:
Other SIP Settings
icesupport = yes
media_encryption = dtls
tlscipher = AES256-SHA
Создание и настройка внутреннего номера (extension)
Зайти в интерфейс настройки FreePBX и залогиниться: https://<example>.ru/
Перейти в раздел Applications ➝ Extensions
Кнопка “+ Add Extension” ➝ “+ Add New SIP (Legacy) [chan_sip] Extension” (в других версиях FreePBX может быть “Add New Chan_SIP extension”)
Во вкладке General:
User Extension
1001
Display Name
1001
Нажать кнопку Submit
После этого в списке расширений открыть редактирование только что созданного расширения (в строке с 5001 в колонке Actions нажать кнопку редактирования с иконкой с карандашом).
Перейти во вкладку Advanced
Сначала поменять SIP Driver на PjSIP:
Change SIP Driver
Change To CHAN_PjSIP Driver
Эта кнопка может быть недоступна, это значит, что PjSIP отключен, нужно его включить в настройках (см.выше).
Теперь должна появиться возможность сделать следующие настройки:
Enable WebRTC defaults
Yes
Media Encryption
DTLS-SRTP (not recommended)
Нажать кнопку Submit
Потом поменять SIP Driver обратно:
Change SIP Driver
Change To CHAN_SIP Driver
Теперь сделать оставшиеся настройки:
Transport
All - WSS Primary
Enable AVPF
Yes
Force AVP
Yes
Enable ICE Support
Yes
Enable rtcp Mux
Yes
Enable Encryption
Yes (SRTP only)
Раздел DTLS
Enable DTLS
Yes (уже должно быть)
Use Certificate
<example>.ru
Нажать кнопку Submit
Нажать кнопку Apply Config
Тестирование, что wss работает
Для примера воспользуемся сервисом sipML5 live demo от Doubango:
Настройка
Сначала кнопка “Expert mode?”
В соседней вкладке должна открыться страница с продвинутыми настройками.
WebSocket Server URL
wss://.ru:8089/asterisk/ws
Нажать кнопку Save
Вернуться на основную вкладку
Private Identity
1001
Public Identity
sip:1001@<example>.ru
Password
Скопировать из настроек FreePBX
Extension: 1001 ➝ вкладка General ➝ Edit Extension ➝ Secret
Realm
<example>.ru
Кнопка Login
Вверху над заголовком Registration должно появиться слово Connected.
Звонок
Теперь можно звонить.
Под заголовком Call control набрать нужный номер (*43 для звонка на эхо или номер мобильника с 8 вначале).
Нажать кнопку Call ➝ Audio
Должен пойти звонок.
Profit!
Ссылки
Поддержка WebRTC в Asterisk
Начальная поддержка WebRTC в Asterisk начиная с версии 11:
PjSIP в Asterisk
Новый драйвер chan_pjsip в Asterisk 12: New in 12 - Asterisk Project - Asterisk Project Wiki
PjSIP доступен по умолчанию в Asterisk 15: PJSIP-pjproject - Asterisk Project - Asterisk Project Wiki
FreePBX
Примеры настройки
Last updated