CONSULTORÍA ESTRATÉGICA EN TECNOLOGÍAS
DE LA INFORMACIÓN Y COMUNICACIONES

CONSULTORIA EN REDES Y SERVICIOS DE TELECOMUNICACIONES






WebRTC (Web Real-Time Communications)

Autor: Ramón Jesús Millán Tejedor

Publicado en BIT nº 197, COIT & AEIT, 2014

Descargar el artículo en PDF



Introducción

WebRTC (Web Real-Time Communications) es considerada como una de las tecnologías más disruptivas en el actual mundo de las tecnologías de la información y comunicaciones. WebRTC formará parte de HTML5 y permitirá establecer comunicaciones en tiempo real (llamadas de voz, llamadas de vídeo, etc.) sobre los navegadores Web, sin necesidad de instalar extensiones no estándar o “plugins” propietarios. Mientras las distintas aplicaciones OTT (FaceTime, Skype, Tango, etc.) utilizan protocolos propietarios para sus comunicaciones; WebRTC, una vez termine de ser estandarizado, asegurará la interoperabilidad entre navegadores y aplicaciones. Además, los componentes WebRTC, al estar implementados en el navegador, pueden ser fácilmente accesibles mediante un API JavaScript, permitiendo a los desarrolladores Web integrar comunicaciones en tiempo real dentro de sus aplicaciones.

Desde la compra de las compañías On2 y GIPS en el año 2010, Google ha sido el principal impulsor de WebRTC, pues esta tecnología es una forma de que los usuarios pasen más tiempo delante del navegador, permitiéndole mostrar más anuncios y capturar más información sobre su perfil de navegación. On2 creó el formato de compresión de video VP8 y, una vez adquirida por Google, proporcionó el códec bajo licencias Creative Commons y BSD. Por otro lado, GIPS proporcionaba motores de medios de voz y vídeo licenciados sobre IP para programadores de software y fabricantes de infraestructura, reduciendo el esfuerzo de desarrollo de aplicaciones que requerían comunicaciones en tiempo real. Google creó WebRTC encapsulando GIPS con un conjunto de APIs de JavaScript, lo cual significaba abrir la tecnología VoIP a millones de desarrolladores Web. Así, Google convirtió WebRTC en código abierto, con licencia BSD. Además, llevó la tecnología a los cuerpos de estandarización W3C e IETF para su estandarización.

En la actualidad, WebRTC se encuentra en un estado avanzado de desarrollo y estandarización, con un soporte básico en Chrome, Firefox y Opera. La mayoría de los fabricantes de infraestructura de red (ALU, Ericsson, Genband, Huawei, NSN, Oracle, etc.), han anunciado el soporte de WebRTC en sus productos. Además, un gran número de desarrolladores están trabajando en pruebas de concepto para varias aplicaciones.

Arquitectura

En primer lugar, es importante aclarar que WebRTC es el nombre utilizado por el organismo de estandarización W3C (World Wide Web Consortium) y RTCWeb es el nombre utilizado por el grupo de trabajo “The Real-Time Communications on the Web“ del IETF (Internet Engineering Task Force), pero realmente son lo mismo. El W3C está encargado de estandarizar la tecnología desde la perspectiva de los navegadores y tecnologías Web (HTML5, CSS, etc.) y de definir APIs estándar para que los desarrolles Web utilicen WebRTC en sus aplicaciones. Por otro lado, el IEFT se ha centrado en los protocolos y herramientas que la tecnología utilizará a nivel de transporte, como SRTP, STUN/ICE/TURN, y codecs.

Aunque se ha avanzado mucho, el proceso de estandarización de WebRTC está llevando más tiempo del previsto, debido sobre todo a ciertos elementos claves en la comunicación en tiempo real: método de establecimiento y finalización de llamadas en conferencias con muchos participantes, códec de vídeo, seguridad, QoS, etc.

En la Tabla 1 hay una breve comparativa entre los tradicionales sistemas IP de comunicaciones en tiempo real y WebRTC. WebRTC ignora la parte de señalización, permitiendo a los fabricantes de sistemas VoIP emplear WebRTC independientemente del protocolo de señalización empleado para establecer la llamada. Las opciones más populares para la señalización son: JSON (JavaScript Object Notation) sobre WebSockets y SIP (Session Initiation Protocol) sobre WebSockets. Los componentes dentro de WebRTC, tal y como se muestra en la Figura 1, abarcan los codecs, motores de medios y capa de transporte. Esto facilita el uso de comunicaciones en tiempo real por parte de los desarrolladores de aplicaciones, sin necesidad de ser expertos en estas tecnologías.

Arquitectura de WebRTC

Figura 1: Arquitectura de WebRTC.

Los codecs de voz seleccionados para WebRTC son el tradicional ITU-T G.711 y el reciente IETF RFC 6716 Opus (basado en ILK de Skype y CELT de Xiph.org), los cuales no necesitan licencia. Opus además de ser gratuito es de código abierto y, para muchos, es uno de los mejores códec que existen, por su flexibilidad, calidad de audio, baja latencia y bajo consumo de ancho de banda.

En cuanto al códec de vídeo, la industria ha estado altamente dividida en cuanto a su selección. El códec de vídeo más popular es H.264, pero tenía tradicionalmente unos costes de licencia asociados a patentes de MPEG LA, a diferencia del otro candidato en WebRTC, VP8. De este modo, las implementaciones de las primeras versiones de prueba de WebRTC sobre Chrome, Firefox y Safari, se han realizado con VP8. El único problema de VP8 es que es nuevo, por lo que no tiene soporte nativo en muchos chipsets, a diferencia de H.264 que está integrado en la mayoría de los chipsets actuales. En estos casos, el rendimiento de H.264 sería muy superior, pues la codificación y decodificación de los flujos de vídeo se hace en hardware, reduciendo el consumo de batería del dispositivo y mejorando la experiencia de usuario pues no ralentizará otras aplicaciones o servicios. Así, la codificación y decodificación de WebRTC en los terminales móviles sólo alcanza resolución VGA (640x480), mientras que la HD es de 1.920x1.080. Nvidia fue el primer fabricante en demostrar soporte en hardware de VP8 en su plataforma Tegra 4 para tablets y otros dispositivos, el pasado mayo de 2013. Por otro lado, en octubre de 2013, Cisco anunció que iba a ofrecer su códec H.264 como código abierto y proporcionar el módulo binario para que fuera descargado gratuitamente en Internet, eliminado la principal barrera que ofrecía esta alternativa. Aunque aún no hay una decisión en firme, cabe esperar que WebRTC acabe soportando ambos codecs, pues aunque VP8 ha sido el candidato preferido incialmente por su carácter abierto, la realidad es que H.264 es soportado por la mayoría de la base desplegada de sistemas de videoconferencia empresariales, softphones, etc.


Característica VoIP WebRTC
Señalización SIP (principalmente) y H.323 Sin definir
Medios RTP/RTCP RTP/RTCP
Codecs de voz Serie G.7xxx (principalmente) G.711 y Opus
Codecs de vídeo H.263, H.264 VP8
Seguridad de los medios SRTP/TLS/IPsec SRTP

Tabla 1: Comparativa entre sistemas tradicionales VoIP y WebRTC.

Beneficios

En la actualidad, varios operadores de telecomunicaciones (AT&T, Deutsche Telecom, Orange, Telefónica, etc.), están investigando las oportunidades que ofrece WebRTC. WebRTC. La principal ventaja para los operadores con WebRTC es que se abren sus infraestructuras de VoIP y SIP a una nueva red de acceso: la Web 2.0. Los medios en WebRTC van de navegador a navegador directamente, porque se reduce la latencia y se emplea más eficientemente el ancho de banda. Sin embargo, la señalización va a través del servidor Web, lo cual facilita además la interoperabilidad con sistemas fuera de Internet. Para la interconexión de estos dos mundos, serán necesarios “gateways”, que permitan la interoperabilidad, seguridad y control de sesiones de los navegadores a los dispositivos SIP, tanto a nivel de señalización como de medios. Esta función puede ser desempeñada por los actuales SBC (Session Border Controllers), o bien por dispositivos con objetivos similares. Algunas otras posibilidades de monetizar WebRTC para los operadores son: ofrecer conectividad a la red telefónica básica fija y móvil, integrar WebRTC con RCS (Joyn), asegurar QoS, ofrecer llamadas de emergencia, señalización basada en SIP, etc.

Los consumidores y usuarios empresariales se ven beneficiados, tanto por la reducción de costes y complejidad, como por la mejora de la experiencia de usuario y productividad. Un buen ejemplo del potencial de WebRTC es el proceso de reserva online de una habitación de hotel. Se puede buscar el hotel a través del navegador con Google.com, luego ubicarlo geográficamente mediante Google Maps y, si resulta interesante y no se desea realizar la reserva online porque hay dudas que consultar, realizar una llamada internacional gratuita desde el propio navegador al centro de reservas del hotel, sin utilizar un teléfono móvil, teléfono móvil, softphone o aplicación OTT externo y sin marcar ningún digito o utilizar un identificador de usuario. Además, el hotel puede capturar información en tiempo real de la página que está viendo el cliente, en qué país o región se encuentra; etc., redireccionando la llamada a la persona más adecuada para atenderle.

Soporte por parte de los navegadores de WebRTC

Google ha sido el principal motor de WebRTC, por lo que no es de extrañar que el navegador más avanzado en su integración es Chrome, que incluye partes de la tecnología WebRTC en versiones estables del navegador, tanto para entornos PC con Windows, como para “tablets” y “smartphones” con Android.

Mozilla Firefox y Opera también proporcionan un soporte básico, aunque no tan avanzado como el de Chrome. Mozilla Firefox ha sido el primer navegador en anunciar el soporte futuro del códec de vídeo H.264, una vez que Cisco anunciara su decisión de ofrecerlo como código abierto.

Microsoft ha estado involucrado en el desarrollo de WebRTC desde 2010, sin embargo, sus contribuciones han sido bastante reducidas, debido a la amenaza que esta tecnología representa para Skype, por la que pagó más de 8.500 millones de dólares en 2011. Microsoft tenía grandes planes para Skype, integrándolo con su exitosa plataforma de comunicaciones unificadas para empresas Lync, otras aplicaciones como Outlook u otros dispositivos como la consola Xbox. En agosto de 2012, Microsoft propuso al grupo de trabajo de WebRTC del W3C su propia tecnología alternativa, conocida por CU-RTC-Web (Customizable, Ubiquitous Real Time Communication over the Web). CU-RTC-Web ofrece una mayor flexibilidad en el uso de las APIs de WebRTC existentes por parte de los desarrolladores, lo cual si bien aumenta su complejidad, permite también un mayor control e información acerca de las sesiones RTC establecidas, mejorando la calidad e interoperabilidad. No está claro si WebRTC incorporará las propuestas de CU-RTC-Web y se desarrollará un estándar común, o bien si acabará como una oferta alternativa. Por todo ello, Internet Explorer, navegador líder en el mercado de PC, aún no cuenta con un soporte básico de WebRTC.

Finalmente, Apple Safari está por el momento ignorando WebRTC, tanto en Mac como iOS. Apple tiene FaceTime y, además, WebRTC es un estándar, que no es algo que atraiga especialmente a Apple. Es probable que lo acabe adoptando cuando existan aplicaciones útiles y, básicamente, no le quede más remedio para no perder cuota de mercado.

De este modo, el navegador más avanzado en cuanto a soporte de WebRTC es Chrome, seguido por Firefox y Opera, que también están totalmente comprometidos al desarrollo de WebRTC. A pesar de las reticencias de Internet Explorer y Safari, es muy probable que se vean “forzados” a soportar WebRTC en el futuro, pues una vez se consiga una masa crítica de usuarios suficiente, muchos sitios Web podrían empezar a mostrar mensajes como “este sitio Web trabaja peor con Internet Explorer y Safari”.


<<< Volver al listado de artículos