Проблема интеграции плагинов SIPML5 на AWS с сервером Asterisks - 13 с использованием WebRTC

Я столкнулся с проблемой при интеграции демонстрационной версии плагина SIPML5 на сервер Asterisks. Версия сервера Asterisks - "Asterisk 13.14.0". Новая версия сервера звездочек поддерживает модуль SRTP. Демонстрационные файлы плагина взяты из репозитория Doubango github. Файлы демонстрационной интеграции находятся в корневой папке нашей учетной записи на сервере AWS.

Ref: https://github.com/DoubangoTelecom/sipml5/

Содержимое различных файлов конфигурации для сервера Asterisks:

http.conf

[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
tlsenable=yes
tlsbindaddr=0.0.0.0:8089
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlsprivatekey=/etc/asterisk/keys/asterisk.pem

rtp.conf

[general]
rtpstart=10000
rtpend=20000
icesupport=yes
stunaddr=stun.l.google.com:19302

extensions.conf

[default]
exten => 100,1,Dial(SIP/1060)
exten => 101,1,Dial(SIP/1061)
exten => 102,1,Playback(1-for-am-2-for-pm)
exten => 205,1,Answer
exten => 205,2,Wait(2)
exten => 205,3,Record(asterisk-recording%d:ulaw)
exten => 205,4,Wait(2)
exten => 205,5,Playback(${RECORDED_FILE})
exten => 205,6,Wait(2)
exten => 205,7,Hangup

[from-internal]
exten => 1000,1,Answer()
same => n,Playback(demo-congrats)
same => n,Hangup()

sip.conf

[general]
udpbindaddr=0.0.0.0:5060
realm=x.x.x.x ;replace with your Asterisk server public IP address or host
transport=udp,ws,wss
externaddr=x.x.x.x ;replace with your Server's Public IP Address
websocket_enabled=true

[6001]
host=dynamic
secret=****
context=from-internal
type=friend
encryption=yes
avpf=yes
force_avp=yes
icesupport=yes
directmedia=no
disallow=all
allow=ulaw
dtlsenable=yes
dtlsverify=fingerprint
dtlscertfile=/etc/asterisk/keys/asterisk.pem
dtlscafile=/etc/asterisk/keys/ca.crt
dtlssetup=actpass

Заданные значения для страницы expert.htm для демонстрации выглядят следующим образом:

WebSocket Server URL : wss://X.X.X.X:8088/ws
SIP outbound Proxy URL: udp://X.X.X.X:5060
ICE servers: [{ url: ‘stun:stun.l.google.com:19302’}]

Значения полей, заданные для страницы call.htm для демонстрации, следующие:

Display name: Rusty WEBRTC
Private identity: 6001
Public identity: sip:6001@X.X.X.X
Password; ****
Realm: X.X.X.X

Где XXXX - мой IP-адрес сервера Asterisks.

При нажатии на кнопку "Войти" на странице call.htm появляется сообщение об ошибке:

Disconnected: Failed to connect to the server

Плагин linphone установлен на проект прямо сейчас. Из-за прекращения поддержки NPAPI браузерами Chrome/Mozilla, функция VoIP в проекте полностью устарела. Теперь я хочу заменить эту функцию плагином SipML5, который поддерживает протокол WebRTC. Мне нужно проверить функции регистрации, входа в систему, аудиовызова плагина SIPML5. Но все эти функции могут быть реализованы, как только я подключусь к серверу.

В Asterisks CLI не отображается никаких сообщений об ошибках. В истории консоли браузеров Chrome и Mozilla не отображаются какие-либо уязвимые сообщения об ошибках. Так что я полностью застрял в проекте.

Демонстрационные файлы прекрасно работали на сервере Asterisks 11.8.1. Но модуль SRTP не был установлен на сервере, поэтому функция аудио не работала нормально. Наша группа поддержки установила библиотеку и переустановила сервер звездочек с версией 13. Брандмауэр открыт для сервера AWS, а порты открыты.

Может кто-нибудь помочь мне решить проблему, чтобы я мог пойти дальше с интеграцией плагина в мой проект. Пожалуйста, дайте мне знать, если какие-либо другие детали необходимы

2 ответа

Клиент SipML5 попытается подключиться к серверу по защищенному URL-адресу WebSocket (WSS). Так что вам нужно использовать порт 8089(TLS) в URL WSS.

Если вы используете самоподписанные сертификаты SSL в http.conf, разрешите их, открыв https://x.x.x.x:8089/ws url на вкладке браузера.

Возможные шаги отладки: 1. Проверьте, действительно ли звездочка прослушивает 8089. Для этого вы можете использовать netstat. 2. Если вы загружаете свой клиент / браузер в режиме https, вам нужно доверять клиенту звездочку. Это можно сделать через: http://x.x.x.x:8089/httpstatus и выберите доверие.

Другие вопросы по тегам