Настройка 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 Driver

both

Settings ➝ Asterisk SIP Settings

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

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

Раздел Advanced General Settings

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:

Раздел Add Extension

User Extension

1001

Display Name

1001

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

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

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

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

Вкладка Advanced → Раздел Edit Extension

Change SIP Driver

Change To CHAN_PjSIP Driver

Эта кнопка может быть недоступна, это значит, что PjSIP отключен, нужно его включить в настройках (см.выше).

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

Вкладка Advanced → Раздел Edit Extension

Enable WebRTC defaults

Yes

Media Encryption

DTLS-SRTP (not recommended)

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

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

Вкладка Advanced → Раздел Edit Extension

Change SIP Driver

Change To CHAN_SIP Driver

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

Вкладка Advanced → Раздел Edit Extension

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?”

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

Disable Videov (галочка)

WebSocket Server URL

wss://.ru:8089/asterisk/ws

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

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

Display Name1001

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

FreePBX

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

Last updated