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

Asterisk + webrtc + Sipml5

Добавлено: 16 дек 2015, 20:42
Jonny
Здравствуйте
Помогите пожалуйста разобраться с проблемой звонков из браузера на Asterisk (на сегодняшний день).
Ситуация следующая - около полугода назад была задача настроить звонки из браузера на X-lite софтфоны.(не используя Freepbx совский UCP )
Организовал все на Asterisk 12 + webrtc + Sipml5 - все работало (более менее стабильно)
Сейчас же (после обновления Google Сhrome, где, насколько я понял они, для повышения безопасности, перевели всё что касается медиаданных в сторону https и wss) естественно все перестало работать.
Почитав мануалы, поставил сертификаты и настроил https.
Но теперь надо Sipml5 перевести из websocket (ws) на websocket seciruty (wss).
Пишут, что можно использовать http-proxy сервер например nginx и проксировать wss в старый добрый ws://server_asterisk:8088/ws
Зарегистрировать sip на сервере у меня удалось но вот звонки не идут ни туда ни обратно - в консоли ругается на сертификаты, которые сам же астериск и сгенерировал.

Если раньше websocket связывался с Asterisk'ом напрямую и все работало то теперь получается что
Sipml5 должен передать wss по какому-то порту (например 8888) для nginx, который в свою очередь должен перенаправить всё это на ws://server_asterisk:8088/ws - причем как я понял должно быть обязательное шифрование со стороны Asterisk.

Вопрос - получается что надо использовать несколько сертификатов? Для https свои а для Asterisk'а свои ?
Может все не так сложно как я думаю? И есть простое решение?

Re: Asterisk + webrtc + Sipml5

Добавлено: 17 дек 2015, 07:44
awsswa
пробуйте


server {
listen 443 ssl;

server_name xxx.xx.io

ssl on;
ssl_certificate /etc/asterisk/certs/xxx.io.pem;
ssl_certificate_key /etc/asterisk/certs/xxx.io.key;

ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

#prevent 502 bad gateway
#large_client_header_buffers 8 32;

location / {

# prevents 502 bad gateway error
proxy_buffers 8 32k;
proxy_buffer_size 64k;

# redirect all HTTP traffic to localhost:8088;
proxy_pass http://0.0.0.0:8088/ws;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-NginX-Proxy true;

# enables WS support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

proxy_read_timeout 999999999;

}
}

Re: Asterisk + webrtc + Sipml5

Добавлено: 23 дек 2015, 13:15
Jonny
Может кому понадобится
Получилось настроить - все работает.

Asterisk 13 + Freepbx 12 + nginx + sipml5
С самоподписанными сертификатами Asterisk у меня не получилось - использовал openssl сертификаты (по это статье делал - http://www.voip-info.org/wiki/view/SIP+TLS )

Заработало с такими Настройками nginx.
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
server {
listen 443 ssl;

server_name ip_asterisk;
root /var/www/html;
index index.html index.htm;
ssl on;
ssl_certificate /etc/asterisk/keys/certificate.pem;
ssl_certificate_key /etc/asterisk/keys/key.pem;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location /ws/ {
proxy_buffers 8 32k;
proxy_buffer_size 64k;
proxy_pass http://ip_asterisk:8088/ws;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 999999;

}
}


map $http_upgrade $connection_upgrade
{
default upgrade;
'' close;
}


upstream appserver
{
server ip_asterisk:8088;
}

server {
listen 8888;

ssl on;
ssl_certificate /etc/asterisk/keys/certificate.pem;
ssl_certificate_key /etc/asterisk/keys/key.pem;

location / {
proxy_pass http://ip_asterisk:8088;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;

}
}
В sip.conf добавляем к номеру
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
transport=udp,ws,wss
avpf=yes
force_avp=yes
cesupport=yes
encryption=yes
dtlsenable=yes
dtlsverify=no
dtlscertfile=/etc/asterisk/keys/certificate.pem
dtlsprivatekey=/etc/asterisk/keys/key.pem
dtlssetup=actpass
И в настройках Sipml5 прописываем wss://ip_asterisk:8888/ws