SIPML5, WebRTC и webrtc2sip в VoIP

RSS, Twitter, Vkontakte, Facebook

Web-браузер в качестве VoIP или SIP телефона

WebRTC технология, клиентское SIPML5 и серверное приложения webrtc2sip в VoIP

Автор:Vladimir Tkachenko

Источник:http://www.lessons-tva.info/

SIPML5 - это HTML5-приложение для VoIP, написанное на Javascript, которое позволяет использовать браузер в качестве VoIP телефона. SIPML5 - это клиентское приложение или SIP-клиент для браузера. Из любого веб-браузера, поддерживающего WebRTC, с помощью SIPML5 можно совершать звонки или видеозвонки как на сети ТфОП, так на сети: SIP, LTE, IMS через шлюз webrtc2sip или сервер Asterisk 11.

Следует отметить, что в Asterisk 11 реализована технология WebRTC, но сервер Asterisk 11 не обеспечивает нормальную работу со всеми SIP клиентами без его доработки. Поэтому для обеспечения нормальной работы со всеми SIP клиентами разработчики рекомендуют установить webrtc2sip между браузером и Asterisk.

Шлюз или серверное приложение webrtc2sip разработано Doubango Telecom - компанией Telco, которая специализируется на NGN технологиях. Эта же компания разработала и клиентское приложение SIPML5, исходный код sipML5 "здесь". Кроме того, на основе SIPML5 компания Telco разработала групповой видео чат для видеоконференцсвязи "Open Source TelePresence system" с MCU смотрите на странице "здесь".

Итак, серверная программа webrtc2sip состоит из четырех модулей: SIP Proxy, RTCWeb Breaker, Media Coder и Click-to-Call. Серверное приложение webrtc2sip можно установить на платформу Ubuntu 12.04 "Click here". Программирование с API для быстрого создания мультимедийных приложений для настольных и мобильных платформ "здесь".

Шлюз webrtc2sip позволяет веб-браузеру звонить и принимать звонки с телефонов любой SIP-сети, LTE, IMS или ТфОП. Демонстрационный образец веб-приложения "sipML5 live demo", созданного на основе SIPML5 и webrtc2sip, открывается по ссылке: sipML5 live demo (Рис.1).

Демонстрационный образец веб-приложения sipML5 live demo
Рис. 1

Страничка сайта "sipML5 live demo" представляет собой программный SIP-телефон (SIP клиент) в web интерфейсе без привязки к определенному VoIP провайдеру. По функциональности web интерфейс SIP-телефона или SIP-телефон в браузере приближен к клиентским приложениям, устанавливаемым на пользовательские устройства (ПК, смартфоны и т.д.).

Сервис "sipML5 live demo" предназначен для публичных (бесплатных) sip-адресов. Перечень бесплатных публичных SIP-серверов можно посмотреть по этой "ссылке". Выбрав и щелкнув на ссылке публичного SIP-сервера, Вы выполните переход на страничку, где можно зарегистрировать бесплатный sip-адрес.

Для тестирования сервиса я создал SIP аккаунты (зарегистрировался) на SIP-сервере SIP2SIP под разными логинами с двух компьютеров (с настольного ПК – MY и ноутбука – НОME), включенных в локальную беспроводную сеть SOHO (рисунок 3.1) на базе маршрутизатора LinksysWRT160N.

Затем запустил сервис "sipML5 live demo" на обоих ПК, ввел регистрационные данные в SIP-телефоны в браузерах, и щелкнул на кнопках "Войти" (Login). В SIP-телефонах вверху слева появилась надпись "Connected". В результате SIP-телефоны в браузерах обоих ПК были подключены к сети SIP-сервера SIP2SIP провайдера VoIP.


Затем в адресную строку одного из SIP-телефонов, например, SIP-телефона в браузере ПК НОME ввел SIP-адрес (sip:vova@sip2sip.info), зарегистрированный за другим ПК, т.е. ПК MY, и щелкнул на кнопке "Позвоните" (Call). Вверху экрана ПК НОME появилась надпись о запросе на разрешение использовать камеру и микрофон (рисунок 2).

sipml5.org/ запрашивает разрешение на использование камеры и микрофона
Рис. 2

После нажатия кнопки "Разрешить", внизу окна интерфейса SIP-телефона появилось видео с камеры ПК НОME и исходящий звонок на SIP-телефон ПК MY. На ПК MY появился входящий звонок с SIP-телефона ПК НОME, и вверху экрана ПК MY появилась надпись о запросе на разрешение использовать камеру и микрофон.

После щелчка на кнопке "Разрешить" и нажатии кнопки "Ответить" (Answer) сигнальные звонки прекратились, и внизу окна интерфейса SIP-телефона на ПК MY появилось видео с камеры ПК MY. Затем в окнах интерфейсов SIP-телефонов на обоих ПК появилось видео с камер смежных ПК (рисунок 3).

Голосовое и видео общение через sipML5 live demo
Рис. 3

Таким образом, была установлена связь между браузерами ПК НОME и ПК MY, которые использовались в качестве VoIP, для голосового и видео общения. Установление связи было обеспечено одним VoIP провайдером - SIP2SIP. Схема связи представлена на рисунке 5. Для завершения связи надо щелкнуть на кнопке "Выйти" (LogOut).

Кроме того, выполнил видео звонки из SIP-телефонов в web интерфейсе "sipML5 live demo" через двух VoIP провайдеров (Sipnet и SIP2SIP). Звонил с адреса sip:0041893426@sipnet.ru на другой свой адрес sip:vova@sip2sip.info (рисунок 4), а также выполнил аудио звонки с клиентского приложения Sipnet, установленного на ПК, на SIP-телефон в web интерфейсе "sipML5 live demo".

Звонки из приложения sipML5 live demo с адреса sip:tva@sip2sip.info
Рис. 4

Кроме того, я выполнил аудио звонки из SIP-телефона в web интерфейсе "sipML5 live demo" с адреса sip:tva@sip2sip.info на адрес sip:avia_vladimir@sip.twelephone.com приложения Twelephone (SIP Twelephone). При этом на страничке: sipml5.org/expert.htm установил флажок "Включить RTCWeb Breaker". Следует отметить, что SIP Twelephone основан на сервисе PhonoSDK, который предназначен только для голосовых звонков VoIP и IM/Chat.

Суть работы веб-приложения "sipML5 live demo" заключается в том, что звонки из браузера выполняются по протоколу сигнализации SIP, а передача медиа потоков между браузерами осуществляется с помощью WebRTC. При запуске клиентского приложения между клиентом и сервером устанавливается WebSocket-соединения. Для установления WebSocket-соединения клиент формирует особый запрос на основе HTTP (метод GET) с указанием того, что соединение должно быть обновлено до WebSocket-соединения. Сервер отвечает определённым образом, а код в строке состояния 101 означает, что WebSocket-соединения установлено, и осуществлен переход с HTTP на протокол WebSocket.