Реальное применение WebRTC в сервисах IP-телефонии

в 19:51, , рубрики: asterisk, Google Chrome, ip-телефония, rtp, sip, voip, WebRTC, WebSocket, метки: , , , , , ,

На Хабре уже сообщалось о технологии WebRTC (Web Real-Time Communications). Стандарту WebRTC, который в настоящее время находится еще в черновом варианте, пророчат большое будущее, и в дальнейшем развитие Интернета и веб-технологий он вполне готов повторить путь Skype.
WebRTC может быть использован для создание принципиально новой категории веб-приложений, способных работать с голосовым и видео трафиком без задействования сторонних технологий и программ, с использованием только HTML5 и JavaScript, что существенно облегчит разработчикам создание приложений.

Технология по настоящему кроссплатформенна, независима от используемой вами операционной системы, необходима только поддержка WebRTC в вашем браузере. Cейчас её поддерживает популярный браузер Google Crome без каких-либо дополнительных настроек и установок плагинов на всех десктопных операционных системах, таких как Windows, Linux, Mac OS X и других. Так же, в силу того, что для веб-звонков, а в частности для установления соединения по протоколу SIP необходим транспорт в виде html5 технологии WebSocket, работа WebRTC возможна, практически, на всех остальных браузерах под Windows (Safari, FireFox, IE, Opera) с помощью установки дополнительно расширения webrtc4all.

Первым сервисом, который запустил в коммерческую эксплуатацию звонки с веб-браузера, стал сервис Callbacker, который интегрировал в свой личный кабинет веб-телефон, на базе открытого продукта sipml5.

Что было сделано:

  • интеграция в личный кабинет sipml5 и его кастомизация с отменой дополнительных функций, которые не работают или работают, но нестабильно, в режиме экспериментального тестирования;
  • установка и настройка пропатченного Asterisk 11 ревизии 373330. Asterisk в последнем релизе 11 поддерживает WebSocket и транспорт SAVPF, что делает его совместимым с веб-телефоном sipml5. Необходима поддержка SRTP, поэтому собираем Asterisk с обязательными параметрами: --with-crypto --with-ssl --with-srtp. Настройка Asterisk ничем не отличается от обычной, за исключением настроек http для работы WebSocket.

В конфигурационных файлах Asterisk:

http.conf:

enabled=yes
bindaddr=0.0.0.0
bindport=8088

sip.conf:

udpbindaddr=0.0.0.0:5060
realm=mydomain.com
domainsasrealm=mydomain.com
videosupport=no
directmedia=no
avpf=yes ;необходимый параметр для работы веб-телефона, включающий
AVPF-транспорт для медиа-потока
encryption=yes ;шифрование SRTP
transport=udp,ws,wss ;ws и wss - транспорт для WebSocket

На самом деле, флаг encryption у пользователя можно установить как encryption=no, в противном случае, другие софтфоны или VoIP-устройства, так же должны будут работать с шифрованием, что не всегда поддерживается и может быть неудобным.

Для того, чтобы попробовать, как же это все работает, необходимо иметь логин и пароль учетной записи одной из программ Callbacker для iOS или Android или можно зарегистрироваться вновь и протестировать связь. Здесь находится личный кабинет, в котором есть тот самый веб-телефон. В настоящее время, проект Callbacker развивается, обрастает новыми возможностями. Обнадеживает то, что последние перспективные технологии, в том числе и в сфере Интернет-телефонии, не умирают на дисках SVN-хостеров, а находят практическое применение.

Автор: JeanMorel

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js