- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

  • интеграция в личный кабинет sipml5 [4] и его кастомизация с отменой дополнительных функций, которые не работают или работают, но нестабильно, в режиме экспериментального тестирования;
  • установка и настройка пропатченного [5] Asterisk 11 ревизии 373330. Asterisk [6] в последнем релизе 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 или можно зарегистрироваться вновь и протестировать связь. Здесь находится личный кабинет [7], в котором есть тот самый веб-телефон. В настоящее время, проект Callbacker [3] развивается, обрастает новыми возможностями. Обнадеживает то, что последние перспективные технологии, в том числе и в сфере Интернет-телефонии, не умирают на дисках SVN-хостеров, а находят практическое применение.

Автор: JeanMorel

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/websocket/20003

Ссылки в тексте:

[1] WebSocket: http://tools.ietf.org/html/draft-ibc-sipcore-sip-websocket-02

[2] webrtc4all: http://code.google.com/p/webrtc4all/

[3] Callbacker: http://www.callbacker.com/ru/index.html

[4] sipml5: http://www.sipml5.org

[5] пропатченного: http://sipml5.googlecode.com/svn/trunk/asterisk/asterisk_373330.patch

[6] Asterisk: http://www.asterisk.org

[7] личный кабинет: https://customer.callbacker.com/cabinet/

[8] Источник: http://habrahabr.ru/post/158543/