Место сервиса WebRTC в сети оператора IMS
Рассмотрим как происходит взаимодействие WebRTC сервисов с сетью IMS. Шлюз WebRTC является первой точкой входа для SIP запросов, от WebRTC клиента. Чтобы попасть в сеть IMS, WebRTC шлюз преобразует SIPWS (SIP over WebSocket) запросы, в обычные запросы SIP протокола, тем самым взаимодействуя с более “старыми” серверами IMS, не знающими про существование технологии WebRTC. Также WebRTC шлюз, может транслировать другие REST или JSON запросы в SIP протокол, осуществляя обработку медиа потоков DTLS, SRTP, RTP и выполняя транскодирование, демультиплексирование, дешифрование и так далее.
В частном случае для работы с сигнализацией SIP можно использовать Kamailio (OpenSER), он умеет работать как с SIP так и с SIPWS запросами, а в качестве медиа сервера правильнее использовать FreeSwitch. Для Kamailio существует модуль rtpengine разрабатываемый командой Sipwise, использующий их же приложение RTP Engine проектирующее медиа потоки на Media сервер (FreeSwitch):
Либо использование модуля rtpproxyng с приложением mediaproxy-ng от той же Sipwise:
RTP Engine позволяет сделать сокрытие топологии сети (функционал SBC), преодоление клиентских NAT (TURN) и перенаправить нужные нам RTP потоки (ICE описанного в RFC 5245). В конечном счете архитектура IMS сети c WebRTC сервисом будет выглядеть так:
Коментарии: