Страница 1 из 1

Asterisk 13.7.0 + WebRTC через WSS

Добавлено: 04 мар 2016, 00:05
goffman
Всем привет! Столкнулся с проблемой настройки астера через WSS. Через обычный WS все работает без проблем. Для подключения использую sipml5. При подключении через WSS астер не пишет вообще никаких логов, а вебфон Disconnected: Failed to connet to the server. Ниже конфиги астериска:
http.conf
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
tlsenable=yes
tlsbindaddr=0.0.0.0:8089
;tlscertfile=/etc/asterisk/keys/asterisk.crt
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlsprivatekey=/etc/asterisk/keys/asterisk.key
;tlscipher=ALL
;tlsclientmethod=tlsv1
sip.conf
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[webrtc](!)
host=dynamic
context=from-internal
type=friend
encryption=yes
avpf=yes
force_avp=yes
icesupport=yes
nat=force_rport,comedia
directmedia=no
disallow=all
qualify=yes
videosupport=yes
allow=ulaw,alaw,vp8,h264,h263p,mpeg4
dtlsenable=yes
dtlsverify=no
tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/etc/asterisk/keys/more/asterisk.pem
tlscafile=/etc/asterisk/keys/more/ca.crt
tlscipher=ALL
tlsclientmethod=tlsv1
dtlscertfile=/etc/asterisk/keys/asterisk.pem
dtlscafile=/etc/asterisk/keys/ca.crt
dtlssetup=actpass
transport=tls,udp,ws,wss
http show status
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
HTTP Server Status:
Prefix:
Server: Asterisk/13.7.0
Server Enabled and Bound to 0.0.0.0:8088

HTTPS Server Enabled and Bound to 0.0.0.0:8089

Enabled URI's:
/httpstatus => Asterisk HTTP General Status
/phoneprov/... => Asterisk HTTP Phone Provisioning Tool
/static/... => Asterisk HTTP Static Delivery
/ari/... => Asterisk RESTful API
/ws => Asterisk HTTP WebSocket

Enabled Redirects:
None.
в вебфоне пишу wss://my.ip:8089/ws порт открыт, телнетом видит.
может кто настраивал такое - подскажите, что делаю не так. Если нужна дополнительная инфа - предоставлю. Спасибо!

Re: Asterisk 13.7.0 + WebRTC через WSS

Добавлено: 04 мар 2016, 06:11
Vlad1983

Код: Выделить всё

openssl s_client -connect my.ip:8089

Re: Asterisk 13.7.0 + WebRTC через WSS

Добавлено: 04 мар 2016, 12:45
goffman
В общем найдено решение, которое позволяет двигаться дальше. Так как сертификаты подписаны астером, в мозиле добавил их в исключение. Теперь все коннектится и даже звонит, но голос не проходит.
[Mar 4 10:44:03] ERROR[4335][C-00000006]: res_rtp_asterisk.c:2129 __rtp_recvfrom: DTLS failure occurred on RTP instance '0x7f20440190e8' due to reason 'sslv3 alert bad certificate', terminating
[Mar 4 10:44:03] WARNING[4335][C-00000006]: res_rtp_asterisk.c:4332 ast_rtp_read: RTP Read error: Unspecified. Hanging up.
вот такое в логах, когда берешь трубку

Re: Asterisk 13.7.0 + WebRTC через WSS

Добавлено: 04 мар 2016, 13:42
Vlad1983
потому что с самоподписанными сертификатами DTLS ходить не будет

Re: Asterisk 13.7.0 + WebRTC через WSS

Добавлено: 04 мар 2016, 14:31
goffman
вот это я уже понял. купил сертификаты, но астер их не скушал. с ними даже https в астере не поднялся. продолжаю разбираться. может я их не так сгенирировал. не особо силен в сертификации

Re: Asterisk 13.7.0 + WebRTC через WSS

Добавлено: 04 мар 2016, 15:44
ded
goffman писал(а):купил сертификаты, но астер их не скушал. с ними даже https в астере не поднялся
Этак надо очень постараться!
А где и какие? Если по 5, вчера - до годные, а если по 3 рубля - не пойдут. (Это я Жванецкого цитирую).
Купленый серт открывается сам в себе, инфу про Certificate authority какую пишет? Valid not before? Not after?

Код: Выделить всё

openssl x509 -in certificate.crt -text -noout

Re: Asterisk 13.7.0 + WebRTC через WSS

Добавлено: 04 мар 2016, 16:46
goffman
Как я делал. - сгенерировал сертификаты, как описано тут -
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
https://habrahabr.ru/post/186530/
, после подписал csr файл на ssls.com. Далее cert-server.crt key-server.pem записал в один файл asterisk.pem. в http.conf и sip.conf указал путь к asterisk.pem - так все работает. все всем звонит и голос ходит в обе стороны. Но все таки охота прикрутить сертификаты, что выдал ЦС. как я понял, астер кушает только pem сертификаты. ЦС выдал web-сертивикат и CA сертификат. как их в pem превратить?

Re: Asterisk 13.7.0 + WebRTC через WSS

Добавлено: 04 мар 2016, 18:11
Vlad1983
снять пароль с ключа
содержимое серта и расшифрованного ключа в один файл

Re: Asterisk 13.7.0 + WebRTC через WSS

Добавлено: 18 апр 2016, 05:43
dvvelcerebro
Всем хорошего настроения!

Решил не создавать новую тему а спросить в этой.
Установлен Asterisk PBX 13.5.0
Установил сертификаты для WSS.
Подключаюсь при помощи jssip.
Проблема заключается в следующем когда подключаюсь при помощи WSS могу звонить с браузера но при этом звонки в браузер не приходят.
Если использую WS то звонки ходят в обе стороны нормально.
Подскажите в чем может быть проблема, или хотя в какую сторону копать?

Конфиг файл http

Код: Выделить всё

[general]
enabled=yes
enablestatic=yes
bindaddr=::
bindport=8088
prefix=
tlsenable=yes
tlsbindport=8089
tlsbindaddr=0.0.0.0
tlscertfile=/var/www/html/smartasterbridge/d.pem
tlsprivatekey=/var/www/html/smartasterbridge/d.pem
конфиг файла sip

Код: Выделить всё

[1191]
deny=0.0.0.0/0.0.0.0
secret=77009215b4d475d5e31d4ef3f0a76909
dtmfmode=rfc2833
canreinvite=yes
context=from-internal
host=dynamic
trustrpid=yes
sendrpid=no
type=friend
nat=force_rport,comedia
port=5060
qualify=yes
qualifyfreq=60
transport=wss,udp,tcp,tls
avpf=yes
force_avp=yes
icesupport=yes
encryption=yes
namedcallgroup=
namedpickupgroup=
dial=SIP/1191
mailbox=1191@device
permit=0.0.0.0/0.0.0.0
callerid=9aec7fe9-5e12-4647-a175-7e6c21f0beb0 <1191>
callcounter=yes
faxdetect=no
cc_monitor_policy=generic
dtlsenable=yes
dtlsverify=no
dtlscertfile=/etc/asterisk/keys/aster2.pem
dtlscafile=/etc/asterisk/keys/ca.crt
dtlssetup=actpass
dtlsrekey=0

Re: Asterisk 13.7.0 + WebRTC через WSS

Добавлено: 18 окт 2016, 13:53
2Min
Приветствую, коллеги.
У меня тоже только что была подобная ситуация как у dvvelcerebro
jssip при регистрации в asterisk передает параметр transport=ws а мы регистрируемся в WSS
database show покажет реальную ситуацию
для лечения я просто исправил в jssip все строки transport=ws на transport=wss ( решение конечно не очень, но у меня только WSS на клиентах)
после перезапуска клиента database show кажет уже нормальную строчку
и появились входящие на jssip клиенте
Сейчас буду думать как это изменить через методы и параметры jssip