VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Asterisk + webrtc + Sipml5

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
Jonny
Сообщения: 63
Зарегистрирован: 11 июл 2011, 20:04

Asterisk + webrtc + Sipml5

Сообщение 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'а свои ?
Может все не так сложно как я думаю? И есть простое решение?
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Re: Asterisk + webrtc + Sipml5

Сообщение 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;

}
}
платный суппорт по мере возможностей
Jonny
Сообщения: 63
Зарегистрирован: 11 июл 2011, 20:04

Re: Asterisk + webrtc + Sipml5

Сообщение 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
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH