WebRTC es un protocolo creado inicialmente por Google para dotar a la web de capacidades de comunicación VoIP (acceso al micrófono, a la webcam, etc.) además de proveer de un sistema para poder enviar datos (texto, imagenes, captura de pantalla, etc.) y poder ofrecer al «visitante de la web» de un interfaz de comunicaciones sin necesidad de software externo, plugins, softphones.
WebRTC por lo tanto ofrece una comunicación entre el usuario final «el usuario que ejecuta el navegador» y el servidor donde se aloja la web, una forma de enviar datos que permite iniciar una comunicación Usuario-Servidor y que facilita la conexión con otros usuarios que también estén visitando esa misma web.
Por otro lado, SIP es un protocolo de señalización que también sirve para comunicar el usuario con un servidor y facilita la comunicación con otros usuarios SIP, algo similar a lo que hace WebRTC, pero con la diferencia de que para trabajar con SIP, es necesario que el usuario utilice un «cliente SIP» y el servidor entienda también SIP.
De esta manera, es fácil entender que WebRTC y SIP son sistemas complementarios e independientes el uno del otro y no compatibles entre sí, al menos, no de forma nativa.
Existen implementaciones que permiten integrar WebRTC y SIP para compatibilizarlo de forma que nos permita crear páginas web dotadas con WebRTC que se comuniquen con clientes o servidores SIP, y viceversa. Una de estas implementaciones es JSSIP e incluso se están desarrollando gateways que transforman el protocolo WebRTC a protocolo SIP para facilitar esta «integración» tan útil para disponer softphones SIP vía web.
No obstante, el objetivo de WebRTC no es ser un «softphone web», es mucho más que eso, y es replantear la VoIP desde un punto de vista donde la web tenga un papel principal (por no decir fundamental) a la vez que se da un salto más cercano a la VoIP pura que a la Telefonía IP, lo que podría dejar de lado a muchas empresas que actualmente viven de las llamadas telefónicas.
¿Qué ventajas tiene WebRTC frente a SIP? Inicialmente una bastante evidente: simplicidad, no solo de cara al usuario que puede evitar configurar parámetros para hacer llamadas, si no a nivel de desarrollo, ya que se puede desarrollar una aplicación fácilmente en un navegador vía Javascript, pero sobre todo disponer de ciertos «requisitos» que lo hacen un medio, en teoría, bastante seguro y que ofrece calidad:
- Cifrado nativo: SRTP, TLS
- Audio calidad HD: códec Opus por defecto
- Vídeo calidad HD: H.264 o VP8/VP9
- Gestión del NAT: ICE como sistema de detección
Todos estos requerimientos también son posibles en SIP, pero difícilmente lo veremos implementado en un teléfono IP, un gateway y, aunque existen softphones que lo soportan (Blink, Jitsi, csipsimple, etc…) no es algo muy común.
Por contra, WebRTC es mucho más nuevo, por lo tanto aún no está suficientemente desplegado y tampoco es tan conocido. Muchos lo consideran una tecnología «disruptiva» pero sobre todo es algo que está siendo, no desplegado, si no planteado: aún no se sabe con seguridad si WebRTC debería incluir conceptos más propios de telefonía tradicional tal y como algunos defensores parecen apoyar (Fax, DTMF, etc…) y otros ya miran más adelante y buscan alguna forma de evitar caer en hacer una copia de SIP.
Ante la pregunta de «WebRTC será un sustituto al protocolo SIP» la respuesta no está en nuestra mano, quizá en ninguna en particular, y solo a través de los eventos de desarrolladores y expertos podamos descubrir si WebRTC será complementario a SIP, sustituto de SIP o si después de tantas vueltas e incorporar soporte de Fax y DTMF, pasará al cajón desastre como la forma más simple de hacer un softphone web.