Contribuciones de Quobis para la estandarización de la tecnología WebRTC

26 mayo 2021

La tecnología WebRTC ha finalizado el proceso para convertirse en estándar W3C e IETF. 

Hace unas semanas se anunció que la tecnología WebRTC ha finalizado el proceso para convertirse en estándar W3C e IETF.

Este ha sido un proceso largo que tomó más de 10 años, desde que Google, junto con Ericsson, materializaron la idea de crear una tecnología para administrar las capacidades de comunicación en tiempo real con los navegadores. Hoy, gracias a la pandemia, se utiliza masivamente en todo el mundo como habilitador de videollamadas.

Quobis asumió un papel activo en la definición de los stacks de señalización para WebRTC

Quobis comenzó en 2012 como uno de los primeros actores en soportar WebRTC y crear soluciones ad-hoc basadas en esta tecnología. Durante estos primeros años, obtuvimos diferentes premios, reconocimientos de la industria y participamos en algunas de las primeras pruebas de concepto con los principales proveedores y empresas de telecomunicaciones de todo el mundo.

A lo largo de estos años, muchas discusiones sobre arquitectura han tenido que ver con las principales diferencias entre interoperabilidad y compatibilidad entre diferentes navegadores. Quobis asumió un papel activo en la definición de los stacks de señalización para WebRTC, ya que la interconexión con redes existentes (redes basadas en IMS, softswitches o PBX) era nuestro objetivo como empresa.

El background de Quobis está fuertemente relacionado con la interconexión SIP, ya que nuestra principal línea de negocio se basaba inicialmente en abordar los desafíos del interoperabilidad SIP, utilizando SBCs y otros motores de señalización y gestión de medios. Esto significa que definir los stacks de señalización básicos para WebRTC era algo natural para nosotros y Quobis decidió desempeñar un papel activo en estas definiciones.

The Internet Engineering Task Force more known as IETF, is the body in charge of discussing and publishing the standards which will be used in the Internet and networking in general on top of the physical layer. All the applications you use today run on top protocols which are defined in Request For Comments (RFCs). RFCs are a joint effort that follows a cooperative effort to produce standards as solid and reviewed as possible. This approach has given shape to the Internet in the last half-century. Quobis employees have modestly contributed to the development of three standards as co-authors in the last 7 years.

El Grupo de Trabajo de Ingeniería de Internet, más conocido como IETF, es el organismo encargado de discutir y publicar los estándares que se utilizarán en Internet y en las redes en general sobre la capa física. Todas las aplicaciones que utilizas actualmente se ejecutan en los principales protocolos que se definen a través de las  solicitudes de comentarios (RFC). Los RFC son esfuerzos cooperativo para producir estándares tan sólidos y revisados ​​como sea posible. Este enfoque ha dado forma a Internet en el último medio siglo. Varios miembros del equipo de Quobis han contribuido humildemente al desarrollo de tres estándares como coautores en los últimos 7 años.

The WebSocket Protocol as a Transport for the Session Initiation Protocol (SIP)

En primer lugar, participamos en la definición de la versión SIP para ser utilizada en Websocket (RFC7118), con otros dos españoles.

Websocket
permite la comunicación bidireccional desde el navegador web, lo que lo hace adecuado para un protocolo como SIP que requiere comunicación bidireccional (cliente -> servidor, servidor -> cliente) y asincrónica. Inicialmente desarrollamos un stack JS SIPoWS, QuoffeeSIP, pero luego decidimos abandonarlo y comenzar a usar un fork de JSSIP, un proyecto iniciado y mantenido por los otros coautores de la RFC.

Como corolario de este RFC, también participamos en el RFC7355 que define el formato de SIP Common Log Format (CLF) (RFC6873) adaptado a SIPoWS.

Sobre SIPoWS: el protocolo WebSocket permite el uso de dos vías de comunicación en tiempo real entre clientes y servidores en aplicaciones basadas en web. Este documento especifica un subprotocolo de WebSocket como un mecanismo de transporte fiable entre las entidades del Protocolo de inicio de sesión (SIP) para permitir el uso de SIP en implementaciones orientadas a la web.

Loop Detection Mechanisms for Session Initiation Protocol (SIP) Back-to-Back User Agents (B2BUAs)

Siguiendo la misma línea de adaptar los protocolos de la capa de aplicación utilizados en las comunicaciones en tiempo real a Websocket, también participamos en la definición de RFC8857 que define cómo implementar el Binary Floor Control Protocol (BFCP) para ser transportado a través de Websocket. BFCP se utiliza para controlar el acceso a recursos compartidos en una multiconferencia.

Sobre B2BUAs: SIP Back-to-Back User Agents (B2BUAs) pueden provocar solicitudes de SIP interminables que generen bucles de enrutamiento porque, como clientes de agentes de usuario, pueden generar solicitudes SIP con nuevos valores de Max-Forwards. Este documento analiza las dificultades asociadas con la detección de bucles para B2BUA y los requisitos para que eviten bucles infinitos.

The WebSocket Protocol as a Transport for the Binary Floor Control Protocol (BFCP)

Volviendo a nuestro campo de batalla inicial, la interconexión SIP, Quobis también contribuyó a RFC7332 que define un mecanismo para detectar bucles en las llamadas SIP intercambiadas entre B2BUA (Agentes de usuario Back-2-Back) como SBC o algunas PBX. Esta RFC definió el uso del encabezado Max-Breadth para evitar que ocurran bucles de mensajes ilimitados. Haber solucionado los problemas de bucles entre B2BUA en implementaciones de producción hace que sea más fácil comprender la relevancia de esta RFC. Los bucles SIP a menudo son el resultado de configuraciones incorrectas, pero literalmente pueden comportarse como poderosos ataques DoS que incluso pueden causar interrupciones del servicio.

About BFCP: WebSocket Protocol as a Transport for the Binary Floor Control Protocol (BFCP) permite la comunicación bidireccional en tiempo real entre clientes y servidores. Este documento especifica el uso del Binary Floor Control Protocol (BFCP) como un nuevo subprotocolo de WebSocket que permite un mecanismo de transporte confiable entre entidades BFCP en nuevos escenarios

Next article

SFU vs MCU: ¿cuál es la mejor forma de gestionar una multiconferencia?

Al diseñar una arquitectura de telecomunicaciones que soporte a un sistema de videoconferencia surge una duda recurrente: [...]