© 2017 Flashphoner, LLC Web Call Server - Спецификация
© 2017 Flashphoner, LLC
Web Call Server - Спецификация
Web Call Server - Спецификация2
© 2017 Flashphoner, LLC
0
Содержание
Часть I Схема внедрения 4
Часть II Требования к окружению 8
................................................................................................................................... 81 Браузер
................................................................................................................................... 92 SIP сервер, VoIP оборудование
................................................................................................................................... 93 SIP, VoIP устройства
................................................................................................................................... 104 Web Server
................................................................................................................................... 105 IP камера или RTSP сервер
Часть III Спецификация 12
Часть IV Функции 16
Часть V Программные интерфейсы 21
................................................................................................................................... 211 WCS JavaScript API
................................................................................................................................... 222 WCS RESTful API
Часть VI Интерфейсы управления 25
0
IЧасть
Web Call Server - Спецификация
© 2017 Flashphoner, LLC
4Схема внедрения4
1 Схема внедрения
Web Call Server имеет два основных применения - это браузерный мессенжер в интеграции ссуществующим SIP-оборудованием, а также сервер потокового видео с возможностью обменавидеопотоками по технологии WebRTC и функцией воспроизведения видео потока состационарных IP-камер. В зависимости от применения может использоваться одна из следующихсхем внедрения:
Web-мессенжер
Эта схема описывает внедрение браузерного телефона или мессенжера, который будетинтегрирован с существующим SIP оборудованием и позволит пользователям совершать ипринимать SIP звонки и сообщения из web-браузера без установки дополнительного ПО.
Участники схемы:
Браузер пользователя.Web Call Server.SIP, VoIP Оборудование Оператора.Web Server.SIP, VoIP устройства или телефоны, с которыми будет установлена коммуникация из браузера.
© 2017 Flashphoner, LLC
5Схема внедрения
Сервер потокового видео для Web
В функции сервера потокового видео входит обмен видеопотоками из браузера и воспроизведениевидео потоков с IP камер по технологии WebRTC.
Участники схемы:
Браузер пользователя.Web Call Server.IP камера или RTSP сервер
Web Call Server - Спецификация
© 2017 Flashphoner, LLC
6Схема внедрения6
Таким образом в схеме внедрения могут участвовать до шести типов участников, каждый изкоторых должен поддерживать определенный набор необходимых протоколов и технологий длявыполнения задач по работе со звонками или потоковым видео в браузере:
1. Браузер пользователя.2. Web Call Server.3. SIP, VoIP Оборудование.4. Web Server.5. SIP, VoIP устройства или телефоны, с которыми будет установлена коммуникация из браузера.6. IP камера или RTSP сервер.
IIЧасть
Web Call Server - Спецификация
© 2017 Flashphoner, LLC
8Требования к окружению8
2 Требования к окружению
Для успешной работы системы оркужение должно удовлетворять следующим требованиям.
2.1 Браузер
Поддерживаемые браузеры
Web Call Server работает со следующими браузерами последних версий:
Win Lin Android Mac
Chrome WebRTC WebRTC WebRTC WebRTC
Firefox WebRTC WebRTC WebRTC WebRTC
Opera WebRTC WebRTC WebRTC WebRTC
IE Flash
Safari Flash Flash
Для работы в браузерах используются технологии HTML5 Websocket и WebRTC. Браузеры Safari иIE не поддерживают технологию WebRTC, поэтому в них для передачи и воспроизведения аудио ивидео используется Flash Player.
В случае если браузер пользователя не поддерживает ни Flash ни WebRTC, пользователь долженсамостоятельно установить браузерный WebRTC плагин или Flash Player последней версии длякорректной работы браузера с аудио и видео.
Технологии на стороне браузера
Список технологий, которые используются со стороны браузера:HTML5 WebsocketsWebRTCFlashJQueryJavaScript
Браузернаятехнология
Описание
HTML5Websockets
Отвечает за сигналинг, т.е. обмен непотоковыми данными между браузером исервером. В основном происходит обмен следующей информацией:
команды (коннект, дисконнект, вызов, отклонение вызова, ответить, отправитьсообщение, и т.д.).события (входящий звонок, входящее сообщение).события, связанные с изменением статусов (изменился статус входящегозвонка, сообщение доставлено, сообщение не доставлено, и т.д.).
WebRTC Передача потокового аудио и видео в сторону сервера и обратно по
© 2017 Flashphoner, LLC
9Требования к окружению
Браузернаятехнология
Описание
защищенному SRTP протоколу, сжатие, декодирование аудио и видеосигналов, воспроизведение видео, эхо подавление и другие DSP функции.Основные поддерживаемые кодеки: G.711, Opus, VP8.
Flash Технология WebRTC является предпочтительным способом передачипотоковых данных. Если поддержка WebRTC отсутствует в браузере, дляпередачи аудио и видео будет использоваться технология Flash с передачейданных по защищенному протоколу RTMFP. Flash так же имеет стэк DSPтехнологий для работы с аудио и видео. Основные поддерживаемые кодеки:G.711, Speex, H.264.
JQuery Популярный в веб-разработке фреймворк, который используется в WCS APIдля кроссбраузерной работы с HTML5 Websockets и AJAX запросами.
JavaScript /CSS
Технологии управления пользовательским интерфейсом. Front-end разработчикимогут создавать приложения с собственным дизайном на JavaScript и CSS сиспользованием клиенского WCS API на JavaScript.
2.2 SIP сервер, VoIP оборудование
Основное требование к SIP оборудованию это поддержка SIP и RTP протоколов и совместимыйнабор кодеков. О протоколах и кодеках, поддерживаемых вашим SIP сервером вы можете узнатьиз спецификации к вашему SIP оборудованию или программному обеспечению. Если выиспользуете услуги стороннего SIP провайдера, вы можете запросить у него эту информацию.Протоколы и кодеки поддерживаемые в WCS перечислены в разделе Спецификации.
WCS был протетсирован со многими SIP proxy и PBX серверами, среди которых:
AsteriskOpenSIPsFreeswitchCommunigate ProCisco Call ManagerGenesysSamsung IMSи другие ...
Иногда SIP-сервер имеет специфичную конфигурацию, в результате которой могут возникатьпроблемы в интеграции с WCS. Web Call Server имеет большой набор настроек, что позволяетсконфигурировать WCS для нормальной работы с практически любым SIP-сервером, если это ПОили оборудование следует SIP спецификациям. Для получения информации по настройкамобратитесь к документации Web Call Server - Руководство администратора.
2.3 SIP, VoIP устройства
К конечным VoIP устройствам предъявляются те же требования что и к SIP серверу и VoIPоборудованию, т.е. должны быть совпадающие кодеки и поддерживаться протоколы SIP и RTP.
Web Call Server - Спецификация
© 2017 Flashphoner, LLC
10Требования к окружению10
2.4 Web Server
WCS взаимодействует с Web-сервером по REST / HTTP API. Web-сервер должен поддерживатьHTTP и HTTPS протоколы. На стороне web-сервера может быть задействована любая сервернаятехнология.
Примеры серверных технологий
PHPJSPASPCGIRails
Web-серверы
ApacheIISNginxTomcatи др.
2.5 IP камера или RTSP сервер
WCS может забирать видео поток с IP камеры или RTSP сервера по протоколам RTSP / RTP. Длякорректного воспроизведения такого потока, IP камера или RTSP сервер должны поддерживатьRTSP и RTP протоколы и иметь набор кодеков совместимый с WCS.
IIIЧасть
Web Call Server - Спецификация
© 2017 Flashphoner, LLC
12Спецификация12
3 Спецификация
Системные требования
Web Call Server - это серверное ПО, которое может быть развернуто под 64-bit операционнойсистемой Linux x86_64.
Минимальные требования к характеристикам сервера:Linux x86_64512 M оперативной памяти1 GB места на диске1 ядро процессораСетевая карта
Рекомендуемые требования к рабочему серверу:16 GB оперативной памяти2 x CPU Xeon, 4-6 ядер на каждый процессор100 GB места на дискеSSD диск
Спецификация
В таблице перечислен перечень поддерживаемых технологий, спецификаций, протоколов икодеков в четырех разделах:
Взаимодействие с браузеромВзаимодействие с SIP оборудованием и устройствамиВзаимодействие с IP камерами и RTSP-серверамиКодеки
Технология Спецификации
Взаимодействие с браузером
HTML5 RFC6455 - Websockets
WebRTC
RFC5245 - ICERFC4347 - DTLSRFC3711 - SRTPdraft-ietf-rtcweb-rtp-usage - RTP usage webrtc draftdraft-ietf-rtcweb-audio - Audio usage webrtc draftdraft-ietf-rtcweb-jsep - jsep webrtc draft
FlashRFC7016 - RTMFPamf-file-format-spec - AMF3
Взаимодействие с SIP оборудованием и устройствами
VoIP
SIP
RFC3261 - SIPRFC4566 - SDP
© 2017 Flashphoner, LLC
13Спецификация
Технология Спецификации
RFC2976 - SIP INFORFC3264 - Offer / AnswerRFC3265 - Specific EventRFC3515 - SIP REFER
SIP Messaging
RFC3428 - SIP MESSAGERFC3860 - CPIMRFC5438 - IMDNRFC4975 - MSRP Server
RTP
RFC3550 - RTPRFC3551 - RTP / AVPRFC4961 - Symmetric RTPRFC2833 - DTMF
RTP Audio
RFC5391 - G.711 RTPRFC5574 - Speex RTPdraft-spittka-payload-rtp - Opus RTP
RTP Video
RFC4629 - H.263 RTPRFC6184 - H.264 RTPdraft-ietf-payload-vp8 - VP8 RTP
Взаимодействие с IP камерами и RTSP-серверами
RTSP Client RFC2326 - RTSP
RTP См. VoIP.
Взаимодействие с Web-сервером
Web
RFC2616 - HTTPRFC2818 - HTTPSREST - Representational State TransferJSON - JavaScript Object Notation
Кодеки
Web Call Server - Спецификация
© 2017 Flashphoner, LLC
14Спецификация14
Технология Спецификации
Audio G.711, Opus,Speex, G.722, G.729
Video VP8, H.264
IVЧасть
Web Call Server - Спецификация
© 2017 Flashphoner, LLC
16Функции16
4 Функции
Описание функций Web Call Server разделено на четыре части:
WebRTC Audio Calls, SIP, MessagingWebRTC Video CallsFlash Video CallsWebRTC Broadcasting
Функция Описание Назначение Ограничение
WebRTC Audio Calls, SIP, Messaging
1. Browser- BrowserG.711,Opus calls
Cозвон между двумяWebRTC браузерамиможет осуществлятьсякак через SIP сервертак и безиспользования SIPсервера.
Сервис аудио звонков браузер-браузербез возможности звонков на SIPустройства и принятия входящих звонковс SIP устройств. Простой аудио чат.
Аудио кодеки:G.711, Opus врежимепроксирования(безтранскодинга).
2. Browser- SIP / GSMG.711,Opus calls
Cозвон междуWebRTC браузером иSIP устройством, в томчисле программнымтелефоном(софтфоном), стационарнымтелефоном,мобильным телефономи любым совместимымустройством,подключенным к SIP,VoIP оборудованию.
Для исходящих звонков из браузера наSIP устройства, стационарные имобильные телефоны. Звонки нателефоны поддерживаются в том случае,если приземляющий VoIP операторпозволяет такие звонки. При этом дляWCS нет разницы с кем общаетсябраузер - с SIP устройством или смобильным телефоном. Конвертациюмежду SIP/RTP и GSM сетью берет насебя промежуточный приземляющийшлюз. WCS общается с этим шлюзом постандартным SIP/RTP протоколам.
Аудио кодеки:G.711, Opus врежимепроксирования(безтранскодинга).
3. Browser- SIP/GSMG.729 calls
Поддержка созвона с SIP устройствами,где G.729 является единственнымсовместимым кодеком для созвона.
Аудио кодек:G.729 в режиметранскодирования G.711-G.729дляобеспечениясовместимостис WebRTC, гдеG.729 неподдерживается.
4. PlainInstantMessaging
Передача простыхтекстовых сообщенийпо спецификацииrfc3428 как междубраузерами так имежду браузером и
Текстовый чат, мессенжер, трансляциятекстовых сообщений из браузера в SMSсообщения на стороне оператора.
text/plainсообщения
© 2017 Flashphoner, LLC
17Функции
Функция Описание Назначение Ограничение
SIP устройством илителефоном.
5. SIPSIMPLEInstantMessaging
Расширеннаяподдержка сообщенийс помощьюспецификаций SIPSIMPLE, CPIM, IMDN,MSRP.
Расширенный профиль для работы ссообщениями, поддержка отправкисообщения в режиме один-ко-многим,поддержка уведомлений о доставке,сбор отложенных сообщений с серверапо протоколу MSRP, обработкасообщений с типом контента text/xml.
SIP Presence внастоящеевремя неподдерживается
6. Hold andTransfer
Удержание и трансферзвонков. Поддержкаrfc3515 SIP REFER
Постановка звонка на удержание,возобновление звонка, трансфер звонкадругому абоненту, который работает свеб-браузера или SIP устройства.Отработка трансферов и удержанийзвонка по инициативе тех устройств скоторыми установлен звонок.
7. DTMFRFC 2833and SIPINFO
Использование‘тонового набора’ приработе синтерактивнымиголосовыми меню IVR.DTMF сигнал можетбыть отправлен спомощью двухспособов: SIP INFOкак SIP сообщение иrfc2833 как RTPпакеты.
Используется для работы с голосовымменю.
Пример: “Чтобы соединиться соператором нажмите 3”.
При нажатии соответствующей кнопки настороне интерфейса телефона, серверполучает DTMF комманду и менюреагирует.
“Вы выбрали третий пункт меню и будетеперенаправлены на оператора”.
8. AudioCallRecording
Запись аудио звонковв wav формате.
Как правило, запись звонковосуществляется на стороне SIP сервера.Кроме этого также доступна записьзвонков на стороне WCS. В настройкахуказывается каталог на сервере дляхранения звонков, куда будутзаписываться аудио файлы всех звонковв сыром wav формате.
В настоящеевремя функциянаходится вдоработке иможет бытьдоступна толькопопредварительному заказу.
9. FlashFallback.
Функцияавтоматическогопереключения Аудио-звонков на Flash, длятех браузеров, гдеWebRTC неподдерживается.
WebRTC не поддерживается в браузерахIE и Safari. В этом случае есть дваварианта: Предложить пользователю скачать иустановить WebRTC плагин для браузералибо воспользоваться встроенным FlashPlayer для звонка.
Функция ‘Flash Fallback’ позволяет
Поддерживается последняяверсия FlashPlayerдоступная дляданногобраузера и ОС.
Web Call Server - Спецификация
© 2017 Flashphoner, LLC
18Функции18
Функция Описание Назначение Ограничение
автоматически переключаться на FlashPlayer. Эта функция актуальна для аудиозвонков, т.е. для функций №: 1, 2, 3, 6, 8
WebRTC Video Calls
Функция Описание Назначение Ограничение
1. Browser- BrowserVP8 calls
Cозвон c видео междудвумя WebRTCбраузерами. См.'Browser - BrowserG.711, Opus calls'.
Сервис видео звонков.
Видеокодек:VP8 врежимепроксирования(безтранскодинга).
2. Browser- SIP VP8calls
Cозвон c видео междуWebRTC браузером иSIP устройством. См. 'Browser - SIP / GSMG.711, Opus calls'.
Для исходящих видео звонков избраузера на SIP устройства.
3. Browser- SIP VP8 -H.264 calls
Cозвон с видеотранскодингом VP8-H.264 между WebRTCбраузером и SIPустройством.
Созвон с транскодингом можеттребоваться в тех случаях, когда браузерс одной стороны и другое SIP устройствоили другой браузер, с которымустанавливается соединение с другойстороны, имеют разные видео кодеки инет возможности избежать видеотранскодинга путем выбора общегокодека. Например, если Android браузерна WebRTC созванивается с SIPустройством с поддержкойединственного кодека H.264, то нетвозможности использовать общий кодеки в этом случае требуется VP8-H.264транскодинг.
Транскодирование VP8 - H.264дляобеспечениясовместимостис устройствамии ПО, скоторыми неможет бытьвыбран общийкодек.
Flash Video Calls
Функция Описание Назначение Ограничение
1. Browser- BrowserH.264 calls
Cозвон c видео междудвумя Flashбраузерами. См.'Browser - BrowserG.711, Opus calls'.
Сервис видео звонков. Видео кодек:H.264 в режимепроксирования(безтранскодинга).
2. Browser- SIP H.264calls
Cозвон с H.264 видеомежду Flashбраузером и SIPустройством. См. 'Browser - SIP / GSMG.711, Opus calls'.
Для исходящих видео звонков избраузера на SIP устройства.
Видео кодек:H.264. Принеобходимоститранскодинг всовместимый сFlash формат.
© 2017 Flashphoner, LLC
19Функции
Функция Описание Назначение Ограничение
WebRTC Broadcasting
Функция Описание Назначение Ограничение
1. WebRTCBroadcastingBetweenWebBrowsers
Публикация ивоспроизведениеWebRTC аудио ивидео потоков.
Для WebRTC аудио или видеотрансляции один-ко-многим, видео чатаили видео конференции с несколькимиучастниками.
Только дляWebRTC-совместимыхбраузеров.
2. WebRTCBroadcastingBetweenRTSP IPCam andBrowsers
Воспроизведениевидео состационарных IP камерпо протоколу RTSP/RTP. Видео с IP камервоспроизводится вWebRTC Браузере.
Для WebRTC онлайн трансляций с IPкамер и систем видеонаблюдения черезцентральный сервер.
Поддерживаемые кодеки:
Видео: VP8,H.264Аудио: G.711,Opus
3. WebRTCBroadcasting UsingArbitraryThird partyRTSPserver.
ВоспроизведениеWebRTC видео сRTSP серверов.
Для WebRTC онлайн трансляций, когдаисточником видео являетсяпроизвольный RTSP-сервер, раздающийвидео поток.
Поддерживаемые кодеки:
Видео: VP8,H.264Аудио: G.711,Opus
VЧасть
© 2017 Flashphoner, LLC
21Программные интерфейсы
5 Программные интерфейсы
Web Call Server имеет два программных интерфйса: WCS JavaScript API со стороны браузера иWCS RESTful API со стороны Web-сервера. Эти программные интерфейсы синхронизированы,например когда вы вызываете метод 'connect' WCS JavaScript API,этот же метод с теми же параметрами вызывается у web-сервера через RESTful API:
Другой пример, когда в случае входящего звонка на Web-сервер через REST API приходитсоответствующий объект-событие OnCallEvent, содержащее все необходимые данные овходящем звонке. Это же событие передается и на браузер через WCS JavaScript API:
Все методы, события и передаваемые параметры WCS JavaScript API и WCS RESTful APIподробно описаны в документации Web Call Server - Call Flow.
5.1 WCS JavaScript API
Этот программный интерфейс предназанчен для front-end разработки и содержит набор функцийдля управления звонками, сообщениями, публикацией и воспроизведением видео потоков. Спомощью JavaScript API вы можете построить любой требуемый пользовательский интерфейс.Сборки API и исходный код доступны по следующим ссылкам:
Сборки - http://flashphoner.com/downloads/builds/flashphoner_client/wcs_api/
Web Call Server - Спецификация
© 2017 Flashphoner, LLC
22Программные интерфейсы22
Исходный код - https://github.com/flashphoner/flashphoner_client/tree/wcs_api
5.2 WCS RESTful API
Это API служит для более тесной интеграции с back-end и базой данных web-системы, в которуюинтегрируются SIP звонки и функции потокового видео предоставляемые WCS-сервером.
Этот программный интерфейс опционален и может быть полностью отключен. Кроме этого естьвозможность гибкой настройки WCS REST API и включение этого интерфейса только дляопределенных вызовов методов. Например можно включить REST API только для проведенияаутентификации в методе 'connect', а для всех остальных методов call, sendMessage, и т.д.отключить. В случае отключения REST API, WCS будет использовать те данные, которые емупередает web-клиент через WCS JavaScript API. Для управления настройками включения ивыключения WCS JavaScript API обратитесь к документации Web Call Server - Руководствоадминистратора.
Статистика
С помощью этого программного интерфейса Web Call Server взаимодействует с web-сервером,представляющим back-end системы с базой данных. Все вызовы WCS JavaScript API, а так же всесобытия WCS сервера (входящий SIP звонок, изменение статуса SIP звонка, входящеесообщение, и т.д.) передаются на web-сервер по REST / HTTP / HTTPS протоколу. Таким образомback-end системы получает информацию о всех происходящих на WCS-сервере процессах.Например web-сервер может вести статистику: когда и какой пользователь подключилася /отключился от сервера, когда и кому были сделаны звонки, какие через сервер прошлисообщения и потоки.
Аутентификация
Самое первое соединение с WCS сервером, при вызове метода 'connect' на стороне WCSJavaScript API проходит аутентификацию (проверку подлинности) на Web-сервере. Если Web-сервер не разрешил, соединение не будет установлено.
Авторизация действий
Важной функцией WCS RESTful API после установки соединения и аутентификации являетсяавторизация, т.е. возможность разрешать и запрещать действия, опираясь на внутреннюю логику.
© 2017 Flashphoner, LLC
23Программные интерфейсы
Web-сервер, представляющий back-end системы может запретить любой вызов со стороны WCSJavaScript API, например исходящий звонок, сообщение, публикацию потока и т.д. Входящий SIPзвонок или сообщение также могут быть отвергнуты по инициативе Web-сервера с отправкойстатуса ошибки вызывающей стороне.
Передача произвольных параметров
Обращение к Web-серверу проходит с помощью REST / JSON объектов. Это позволяетпередавать с WCS JavaScript API на Web-сервер любые дополнительные параметры. Напримерfront-end разработчик может во время установки соединения передать в отдельных поляхинформацию о браузере, операционной системе или другие данные доступные на web-странице.Данные передаются Web-серверу по следующему пути: WCS JavaScript API > WCS сервер >Web-сервер.
Переопределение данных
Еще одной функцией REST API является переопределение данных, полученных от WCS сервера.Например при вызове из WCS JavaScript API функции call({to:'to'}) для совершения исходящегоSIP-звонка, можно переопределить параметр вызова 'to' на стороне Web-сервера и заменить егореальным номером вызываемого абонента. Такой подход может применяться для того чтобыскрыть вызываемый номер от пользователя услуги. Второй пример - это добавлениеинформационного блока в передаваемые сообщения. Для этого Web-сервер переопределяетфункцию sendMessage({text:'text'}) и заменяет текст исходного сообщения текстом синформационным блоком.
Обмен данными
Пользователь браузера имеет соединение с WCS сервером по протоколу Websockets. REST APIпозволяет осуществить обратный вызов с передачей произвольных данных от Web-сервера кэтому конкретному пользователю. Для прямого вызова из WCS JavaScript API существует методsendData({}). Таким образом, web-разработчик может реализовать собственный обмен данными,например сделать видеочат без привязки к SIP, использующий собственный сигналинг.
VIЧасть
© 2017 Flashphoner, LLC
25Интерфейсы управления
6 Интерфейсы управления
Для управления Web Call Server используется интерфейс коммандной строки, а так же прямойдоступ к файлам настроек, скриптам запуска и остановки сервера. В интерфейсе управления доступны следующие функции:
управление пользователямиуправление правами доступауправление приложениямиуправление настройками REST APIостановка и перезапуск сервера
Доступ к командной строке WCS сервера осуществляется через SSH. Полное описание команд иконфигурации интерфейса командной строки доступно в документации Web Call Server -Руководство администратора.
Web Call Server - Спецификация26
© 2017 Flashphoner, LLC
© 2017 Flashphoner, LLC