WebRTC Gateway se conecta entre WebRTC y una tecnología VoIP establecida como SIP . WebRTC ( Web Real-Time Communication ) es una definición de API redactada por el World Wide Web Consortium (W3C) que admite aplicaciones de navegador a navegador para llamadas de voz , chat de video y mensajería sin la necesidad de complementos internos o externos . [1]
Escenario de uso
Para permitir que los navegadores que utilizan diferentes proveedores de aplicaciones se comuniquen entre sí (por ejemplo, un usuario conectado a los proveedores de aplicaciones X quiere llamar a alguien que está conectado al proveedor de aplicaciones Y) se puede utilizar un trapezoide denominado WebRTC. En este caso, los dos proveedores utilizan un protocolo de señalización VoIP ampliamente utilizado , como SIP, para federar entre ellos. Sin embargo, cada uno de sus respectivos clientes basados en navegador envía señales a su servidor mediante protocolos de aplicación patentados construidos sobre HTTP y WebSocket .
Este componente que media entre WebRTC y SIP se conoce como WebRTC Gateway . Además de conectar diferentes aplicaciones WebRTC, una puerta de enlace WebRTC también permite la comunicación entre un teléfono WebRTC y un teléfono VoIP o incluso un teléfono PSTN . Por lo tanto, una puerta de enlace WebRTC amplía el alcance de las aplicaciones WebRTC y permite escenarios de uso y alcance mucho más amplios. [2]
Funcionalidad
El proceso habitual con WebRTC es que un usuario descarga una aplicación WebRTC JavaScript . Luego, esta aplicación se utiliza para comunicarse con otro usuario. Una puerta de enlace WebRTC normalmente contendría el servidor desde donde un usuario descargaría la aplicación WebRTC JavaScript . Al recibir una llamada del usuario, la puerta de enlace de WebRTC debe decidir si el destinatario de la llamada es accesible a través de WebRTC. De lo contrario, la llamada deberá traducirse a SIP, por ejemplo. Para traducir una llamada a SIP, la puerta de enlace deberá asignar diferentes capas:
- Señalización: no existe un protocolo de señalización estandarizado para las aplicaciones WebRTC. Sin embargo, SIP sobre WebSockets ( RFC 7118 ) se usa a menudo en parte debido a la aplicabilidad de SIP a la mayoría de los escenarios de comunicación previstos, así como a la disponibilidad de software de código abierto como JsSIP . En tal caso, la puerta de enlace solo necesitaría volver a empaquetar los paquetes SIP de la capa WebSocket en UDP , TCP o TLS .
- Transporte de medios: las especificaciones de WebRTC indican que, por razones de seguridad, las aplicaciones WebRTC deben utilizar SRTP para transportar contenido de medios. Si bien algunas aplicaciones de VoIP también admiten SRTP, esto es opcional y, por lo tanto, no siempre es así. Si el destinatario de la llamada no admite SRTP, la puerta de enlace WebRTC tendrá que mapear entre SRTP y RTP .
- Contenido multimedia: las especificaciones de WebRTC indican que las aplicaciones WebRTC deben utilizar para la comunicación de audio G.711 u OPUS como códec de audio . Las aplicaciones que utilizan SIP para establecer una sesión de audio pueden elegir libremente cualquier tipo de códec . Si el destinatario de la llamada no es compatible con OPUS o G.711, la puerta de enlace WebRTC tendrá que transcodificar entre los lados WebRTC y SIP de la comunicación.
- Negociación de direcciones de medios: para poder atravesar todo tipo de NAT , las especificaciones de WebRTC indican que las aplicaciones WebRTC deben usar STUN e ICE para detectar las direcciones bajo las cuales dos puntos finales pueden intercambiar paquetes de medios. Si bien estas tecnologías también las implementan algunos agentes de usuario SIP, esto no es obligatorio. Si el destinatario de la llamada no admite ICE o en caso de que la capa de transporte de medios necesite mapeo o se requiera transcodificación de medios, la puerta de enlace WebRTC tendrá que actuar como un punto final de ICE y enrutar los paquetes de medios entre el llamante y el destinatario.
Soluciones disponibles
Ya hay una serie de soluciones comerciales y de código abierto disponibles para proporcionar la funcionalidad de puerta de enlace WebRTC. Como una gran cantidad de funciones requeridas de una puerta de enlace WebRTC, como el manejo de medios, el mapeo de señalización es compatible con SBC, la función de la puerta de enlace WebRTC a menudo se integra en los SBC o la proporcionan los proveedores de SBC.
Pasarelas WebRTC de código abierto
- OverSIP
- Kamailio
- Asterisco
- reSIProcate y reprod
- WebRTC2SIP
- Janus
- FreeSWITCH
- SylkServer
- mediasoup
Soluciones patentadas
- AhoyRTC
- AudioCodes WebRTC habilitado SBC , WebRTC GW
- Cisco Meeting Server (anteriormente Acano)
- Puerta de enlace de video RTC (WebRTC) [3]
- Pasarela FRAFOS ABC WebRTC
- Montaña congelada - LiveSwitch [4]
- IVèS Audio Video y texto WebRTC a SIP GW
- Oráculo
- Plataforma Pexip Infinity
- Puerta de enlace PortSIP WebRTC
- Puerta de enlace REVE WebRTC-SIP
- Kandy Link Gateway de Ribbon (anteriormente GENBAND y Sonus)
- Puerta de enlace TeleFinity WebRTC-SIP [5]
- Software WIT
Referencias
- ^ "WebRTC 1.0: comunicación en tiempo real entre navegadores" . Dev.w3.org . Consultado el 12 de septiembre de 2012 .
- ^ "WebRTC: ¿Cómo y por qué?" (PDF) . FRAFOS. 2015-01-12.
- ^ https://www.ivrpowers.com/videortc/
- ^ https://www.frozenmountain.com/products-services/liveswitch/
- ^ https://www.tele-finity.com/webrtcsip/