Настройка WebRTC в Asterisk (FreePBX)

Технические требования

  • Сервер телефонии должен быть доступным из Интернет, т.е. иметь белый IP.
  • Должен быть рабочий SSL/TLS-сертификат.
  • Asterisk версии не меньше 11 (?), но для удобства желательно 15 (?) или хотя бы 13 (?).
  • При использовании браузерного софтфона на сервере 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

Раздел Dialplan and Operational
SIP Channel Driverboth

Settings ➝ Asterisk SIP Settings

Вкладка “SIP Legacy Settings [chan_sip]”

Проверить, что установлены переменные:

Раздел Advanced General Settings
Other SIP Settingsicesupport = 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:

Раздел Add Extension
User Extension1001
Display Name1001

Нажать кнопку Submit

После этого в списке расширений открыть редактирование только что созданного расширения (в строке с 5001 в колонке Actions нажать кнопку редактирования с иконкой с карандашом).

Перейти во вкладку Advanced

Сначала поменять SIP Driver на PjSIP:

Вкладка Advanced → Раздел Edit Extension
Change SIP DriverChange To CHAN_PjSIP Driver
Эта кнопка может быть недоступна, это значит, что PjSIP отключен, нужно его включить в настройках (см.выше).


Теперь должна появиться возможность сделать следующие настройки:

Вкладка Advanced → Раздел Edit Extension
Enable WebRTC defaultsYes
Media EncryptionDTLS-SRTP (not recommended)

Нажать кнопку Submit

Потом поменять SIP Driver обратно:

Вкладка Advanced → Раздел Edit Extension
Change SIP DriverChange To CHAN_SIP Driver

Теперь сделать оставшиеся настройки:

Вкладка Advanced → Раздел Edit Extension
TransportAll - WSS Primary
Enable AVPFYes
Force AVPYes
Enable ICE SupportYes
Enable rtcp MuxYes
Enable EncryptionYes (SRTP only)
Раздел DTLS
Enable DTLSYes (уже должно быть)
Use Certificate<example>.ru

Нажать кнопку Submit

Нажать кнопку Apply Config

Тестирование, что wss работает

Для примера воспользуемся сервисом sipML5 live demo от Doubango:

Открыть sipML5 live demo

sipML5 — устаревший проект: его исходный код переведён в архив. Демо всё ещё доступно, поэтому шаги ниже сохранены для этой версии интерфейса.

Настройка

Сначала кнопка “Expert mode?”

В соседней вкладке должна открыться страница с продвинутыми настройками.

Disable Videov (галочка)
WebSocket Server URLwss://.ru:8089/asterisk/ws

Нажать кнопку Save

Вернуться на основную вкладку

Display Name1001
Private Identity1001
Public Identitysip: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

FreePBX

Примеры настройки

На этой странице