Это старая версия документа!
Конфигурация рабочего узла (Ubuntu Server 18.04) для работы WebRTC, SRTP, TLS
0. Предполагаем что сервер был уже установлен и настроен по инструкции; 1. Далее шаги на примере Let's Encrypt, если у Вас уже есть сертификат - пропустите этот пункт: 1.1. Устанавливаем certbot:
$ apt update && apt install certbot
1.2. У нас должно быть прописано в нашей доменной зоне имя. Для примера:
test.minipbx.ru
1.3. Получаем сертификат:
certbot certonly --standalone -d test.minipbx.ru -m admin@minipbx.ru
2. Выполним скрипт:
/usr/voice/minipbx_ssl.sh
результатом его выполнения будет ПОЛНОЕ обновление каталога /etc/asterisk/keys!
3. Для поддержки TLS, в файл /etc/asterisk/sip.conf, добавим:
tlsenable=yes tlsbindaddr=0.0.0.0:6061 tlscertfile=/etc/asterisk/keys/asterisk.pem tlsclientmethod=tlsv1 tlscipher=ALL
4. Для поддержки WEBRTC, в файл /etc/asterisk/sip.conf, исправим:
[general] ... transport=udp,wss
5. Для поддержки WEBRTC, в файл /etc/asterisk/sip.conf, добавим шаблон (после шаблона ipphone):
[webrtc](!) type=friend host=dynamic language=ru canreinvite=no disallow=all allow=alaw,ulaw call-limit=1 busylevel=1 ;nat=force_rport,comedia transport=wss avpf=yes force_avp=yes icesupport=yes directmedia=no qualify=yes rtcp_mux=yes encryption=yes dtlsenable=yes dtlscertfile=/etc/asterisk/keys/asterisk.pem dtlsprivatekey=/etc/asterisk/keys/privkey.pem dtlsverify=fingerprint dtlssetup=actpass
6. Настроим http сервер встроенный в Asterisk, в файле /etc/asterisk/http.conf заменим:
[general] enabled=yes servername=pbx1.1 bindaddr=0.0.0.0 bindport=8088 tlsenable=yes tlsbindaddr=0.0.0.0:8089 tlscertfile=/etc/asterisk/keys/fullchain.pem tlsprivatekey=/etc/asterisk/keys/privkey.pem enablestatic=yes
6. Добавим поддержку ice в /etc/asterisk/rtp.conf добавим:
[general] ... icesupport=yes stunaddr=stun.l.google.com:19302
Также для серьезной работы можно поставить свой ice сервер.
7. В /etc/asterisk/modules.conf, если есть директива preload ⇒ chan_sip.so, то добавим перед ней
preload => res_http_websocket.so preload => chan_sip.so
8. Перезапустим asterisk:
$ systemctl restart aasterisk.service
9. Проверим HTTPS сервер: с рабочей машины выполним:
https://test.minipbx.ru:8089/httpstatus
Должны увидеть страницу статуса WEB сервера asterisk, без предупреждения системы безопасности! 10. В консоли asterisk (asterisk -r) выполним:
CLI> http show status
Должны увидеть что работает HTTP и HTTPS сервер и существует uri /ws 11. Разместим например на web сервере, sipml5 софтфон; 12. В настройках тестового терминала выберите Тип терминала - webrtc. Откройте веб стреницу софтфона, настройте;