Конфигурация web сервера и рабочего узла (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_renew.sh install test.minipbx.ru
результатом его выполнения будет ПОЛНОЕ обновление каталога /var/www/certs! Следуйте инструкциям, в результате вы получите настроенный nginx, по ссылке https://test.minipbx.ru/certs будут лежать наши сертификаты. Для того чтобы они не попали в чужие руки, настраивается простая аутентификация (http basic auth). На рабочем узле выполните:
/usr/voice/minipbx_ssl_download.sh install test.minipbx.ru
Следуйте инструкциям скрипта. Нам нужно задать в планировщике (crontab), в часы наименьшей нагрузке, регулярную проверку обновления сертификатов и перезапуск службы asterisk.
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. Добавим поддержку ice в /etc/asterisk/rtp.conf добавим:
[general] ... icesupport=yes stunaddr=stun.l.google.com:19302
Также для серьезной работы можно поставить свой ice сервер.
6. Перезапустим asterisk:
$ systemctl restart asterisk.service
7. Проверим HTTPS сервер: с рабочей машины выполним:
https://test.minipbx.ru:8089/httpstatus
Должны увидеть страницу статуса WEB сервера asterisk, без предупреждения системы безопасности!
8. В консоли asterisk (asterisk -r) выполним:
CLI> http show status
Должны увидеть что работает HTTP и HTTPS сервер и существует uri /ws
9. Разместим например на web сервере, sipml5 софтфон;
10. В настройках тестового терминала выберите Тип терминала - webrtc. Откройте веб страницу софтфона, настройте;