Настройка Asterisk для работы Asterphone с PJSIP

Приложение Asterphone позволяет работать с телефонией Asterisk по протоколу WebRTC (Web Real-Time Communication), это технология для передачи аудио, видео и данных напрямую между браузерами. В связке с Asterisk/FreePBX позволяет совершать звонки прямо из браузера.

На смену устаревшего протокола SIP постепенно приходит более новый PJSIP, который полностью поддерживает WebRTC.

Глобальные настройки

Settings - Asterisk SIP settings

SIP settings (chan_pjsip)
Misc PJSip Settingstaskprocessor overload trigger = pjsip_only распределяем задачи между потоками обработки, следим только за pjsip
TLS/SSL/SRTP Settingscertificate manager = example.simple.test выбираем сертификат из Certificate Manager для шифрования TLS/WSS соединений
ssl method = tlsv1_2 - версия протокола TLS для шифрования соединений
wsswss - 0.0.0.0 - All = No
только нужные extensions слушают на всех интерфейсах по протоколу WebSocket Secure
wss - <ip адрес asterisk> - ens18 = Yes
настройка WSS транспорта на конкретный сетевой интерфейс

Settings - Advanced Settings

Asterisk Builtin mini-HTTP server
Force WebSocket Mode = pjsip
принудительное использование WebSocket транспорта для PJSIP

Создание extension (внутреннего номера)

Connectivity - Add Extension - Add New [chan_pjsip] Extension

General
Add Extensionextension = 100
внутренний номер телефона
display name = 100
должен совпадать с extension, номер который будет отображаться при вызове
secret
пароль, заполняется автоматически, обязательное поле, можно поставить свой
Advanced
Add Extensionenable avpf = true
включение расширенного RTP профиля с обратной связью для улучшения качества медиа


enable ICESupport = true
включение поддержки ICE (Interactive Connectivity Establishment) для обхода NAT, критично для WebRTC за NAT/Firewall

enable rtcpMux = true
включение мультиплексирования RTCP в одном потоке с RTP, требуется для WebRTC в браузерах

media encryption = dtls-srtp (not recommended)
Включение шифрования медиапотока через DTLS-SRTP, обязательно для безопасного WebRTC

enable dtls = yes
использовать шифрование

use certificate <example>.ru (select current)
указать сертификат
Advanced
TransportAll - WSS Primary
настройка транспорта по умолчанию для всех расширений
Enable AVPFYes
включение расширенного профиля RTP с обратной связью (Audio/Video Profile with Feedback), критично для стабильного WebRTC
Force AVPYes
принудительное использование базового профиля RTP (Audio/Video Profile) без обратной связи
Enable ICE SupportYes
включение поддержки ICE (Interactive Connectivity Establishment) для установления медиа-соединений через NAT, критично для WebRTC за NAT/Firewall
Enable rtcp MuxYes
включение мультиплексирования RTCP в одном порту с RTP, обязательно для WebRTC в браузерах
Enable EncryptionYes (SRTP only)
включение шифрования медиапотока с использованием SRTP
DTLS
Enable DTLSYes
включение протокола DTLS, обязательно для WebRTC в браузерах
Use Certificate<example>.ru
выбор SSL-сертификата для DTLS шифрования из Certificate Manager

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