Трансляция SIP звонков в CDN сеть по протоколу RTMP
Эта функция позволяет осуществить подключение к SIP устройствам и сервисам и транслировать SIP видеозвонок на внешний RTMP сервер или CDN сеть для дальнейшей массовой трансляции полученного контента.
Существует сегмент CDN сетей, которые занимаются доставкой потокового видео. В такие сети можно направлять RTMP видеопотоки и транслировать эти потоки на большую и гегорафически распределенную аудиторию. Кроме этого есть несколько широко используемых RTMP медиасерверов, таких как Wowza и Adobe AMS, которые также способны принимать медиа потоки и решать более узкие задачи по трансляциям потокового видео по протоколу RTMP.
Данное решение на базе Web Call Server 5 предназначено для подключения к сервисам VoIP конференций (online meeting services) или устройствам с использованием протокола SIP и трансляции установленного соединения по протоколу RTMP.
Основное назначение — подключение к существующей конференции обычным SIP-звонком и трансляция хода этой конференции на сторонний RTMP сервер или CDN сеть для массового или ограниченного показа.
Технические характеристики
Протоколы и кодеки
- Поддержка видеокодека: H.264
- Поддержка аудиокодека: G.711, Speex
- Поддержка протоколов RTMP, SIP
- Поддержка HTTP/REST
Требования к серверной платформе
- x86_64 выделенный сервер или виртуальный (VPS) сервер
- 1-core CPU с частотой 2 GHz или выше
- 1 GB RAM или больше
- 1 GB дискового пространства
- Подключение к сети передачи данных
Схема взаимодействия
Схема ниже демонстрирует взаимодействие между SIP устройством (или программным обеспечением с поддержкой SIP), Web Call Server’ом и RTMP CDN или RTMP сервером.
Из схемы можно понять что Web Call Server управляется посредством REST запросов, которые могут поступать как от программного обеспечения, которое использует соответствующий REST API, так и от REST консоли(расширение от Google Chrome).
Первым шагом, показанным на схеме, является отправка REST запроса, в котором содержатся необходимые для работы Web Call Server данные — адрес RTMP сервера, имя потока, аттрибуты наличия аудио/видео трафика, «номер» получателя вызова и другая информация.
После получения такого запроса Web Call Server осуществляет вызов SIP устройства (или ПО) по протоколу SIP. Как результат установленного SIP звонка, устройство направит RTP аудио/видео трафик на Web Call Server.
После получения трафика от SIP устройства Web Call Server отправит RTMP трафик на сервер потокового вещания или на CDN сеть
На диаграмме последовательности представлена очередность взаимодействия программного обеспечения:
Из диаграммы последовательности следует, что взаимодействуют четыре компонента:
1. REST клиент — который может быть как кодом в рамках стороннего программного обеспечения, так и расширением для Google Chrome.
От клиента поступают «команды» Web Call Server’у на инициализацию взаимодействия между остальными компонентами (грубо можно сказать что это запрос на начало трансляции) и «указания» на прекращения взаимодействия.
2. Web Call Server — программное обеспечение которое осуществляет конвертацию трафика, поступающего от SIP источника и последующую ее передачу по протоколу RTMP на CDN сеть или сервер потокового видео.
3. SIP VoIP Gate — в данном случае является примером возможного источника трафика, получение которого происходит при установке соединения по протоколу SIP. В общем случае это может быть иное программное обеспечение или устройство с поддержкой протокола SIP. На диаграмме видно, что SIP VoIP Gate принимает вызовы со стороны Web Call Server’a, отвечает на такие вызовы передачей аудио/видео трафика или же прекращением такой передачи.
4. RTMP CDN — программное обеспечение потокового вещания, которое принимает трафик от Web Call Server’а и осуществляет его последующую раздачу по протоколу RTMP.
Подключение к SIP
Функция ‘SIP as RTMP’ работает со следующими VoIP источниками.
-
IP АТС
-
Сетевые сервисы видео и аудиконференций (online meeting services)
-
Виртуальные/облачные IP АТС
Примеры тестирования
Web Call Server был протестирован с различным программным обеспечением
Серверное программное обеспечение потового вещания
-
Adobe Media Server
-
Wowza Streaming Engine
Программное обеспечение передачи голосового трафика
-
IP АТС – OpenSIPS
Сервисы организации встреч и конференций
-
Zoom.us
-
Vidyo
-
Lifesize
- Blue jeans
-
Twilio
Все тесты выполнялись с использованиям Bria 4 софтфона.
Тестовая SIP-RTMP трансляция
В административном веб-интерфейсе Web Call Server / Demo есть демо-клиент ‘SIP as RTMP’, который представляет собой HTML-страницу с реализацией REST-запросов на JavaScript и встроенный тестовый RTMP-плеер.
На следующем скриншоте продемонстрированна «начальная» стадия проведения тестирования, то есть начальная страница демо-интерфейса:
Если выбрать опцию «открыть в отдельно окне» (стрелка вверх и вправо на скриншоте выше) — откроется отдельное окно, где будет удобнее использовать возможности демо-интерфейса.
На экране можно увидеть четыре функциональных области:
SIP Details — в этой области желающему провести тестирование возможностей Web Call Server’а необходимо ввести данные доступного для него SIP сервиса (например — IP PBX), а именно: данные ученой записи (login, password, domain — адрес IP-PBX сервиса, port — порт на сервере IP-PBX), желаемые для использования аттрибуты взаимодействия с SIP сервисом (выбранная опция «register required» — в случае если необходимо регистрироваться на сервисе SIP, опцию «hasAudio» — если будет использоваться аудиопоток и «hasVideo» — если будет использоваться видеопоток).
RTMP Target Details — в этой области надо заполнить данные для доступного к использованию сервера потокового вещания, а именно — URL сервера и ввести имя потока, с которым будет проводиться тест.
RTMP Player — в этой области тестирующий будет видеть тот аудио/видео трафик, который будет поступать с SIP устройства через Web Call Server — в окне плеера. Тестирующему необходимо нажать на кнопку «Play» для того чтобы начать просмотр трансляции (и соответственно на кнопку «Stop» чтобы остановить просмотр трансляции). Адрес, по которому ведется трансляция, формируется на странице автоматически.
Область в нижней левой стороне демо-страницы предоставляет возможность тестирующему ввести данные получателя вызова (callee) и, если это необходимо, осуществить DTMF вызов, если это необходимо в рамках тестирования.
В самом низу экрана отображается текущая служебная информация, а именно статус вызова и статус потока, в котором идет трансляция.
Следующий скриншот показывает состояние успешно установленного звонка (в отдельно открытом окне, о котором было сказанно выше):
На скриншоте выше помимо необходимых полей для осуществления тестирования — виден статус успешно установленного соединения (Established) и статус прогрывания полученной с RTMP сервиса трансляции (Started). Также можно увидеть ID звонка и URL сервиса, на который ведется трансляция.
С помощью кнопки «Hangup» можно прекратить звонок, а с помощью кнопки «Stop» можно остановить прием трансляции для отображения в плеере.
Состояние демо-интерфейса после окончания звонка показанно на скриншоте ниже:
Можно увидеть изменения в статусах — Established был заменен на Finished (звонок завершен), а Started на StreamNotFound (отсутствие потока)
Весь процесс тестирования возможностей трансляции SIP в RTMP CDN продемонстрирован на ролике ниже:
Загрузить Web Call Server 5
Системные требования: Linux x86_64, 1 core CPU, 2 Gb RAM, Java
Установка:
- wget https://flashphoner.com/download-wcs5.2-server.tar.gz
- Распаковать и установить с помощью скрипта 'install.sh'
- Запустить сервер с помощью команды 'service webcallserver start'
- Открыть веб-интерфейс https://host:8444 и активировать вашу лицензию
Если вы используете серверы Amazon EC2, то скачивать ничего не нужно.