Resumen de contenidos
WebRTC que es: 🤓 conoce este sistema de comunicación de vídeo y audio que puedes usar desde el navegador de tu PC y sin instalar ninguna app 💻. ¡Te explicamos cómo funciona a continuación!
¿Que es WebRTC?
Su significado «Web Real-Time Communication» quiere decir «comunicación en tiempo real mediante web». Es un sistema de comunicación gratuito y de código abierto que funciona a través del navegador del ordenador sin necesidad de instalar plugins.
Para usarlo solo necesitamos conectar el micrófono, la webcam y los altavoces al navegador y hacer y realizar las conexiones oportunas de conferencias y videoconferencias punto a punto de una manera mucho más accesible que utilizando un softphone.
Mediante este sistema se puede intercambiar información (archivos, fotos y vídeos) y llamadas de voz, video y chat en tiempo real entre navegadores de ordenador y aplicaciones móviles.
Con este sistema, las comunicaciones las gestiona una API de JavaScript, sin necesidad de tener que instalar plugins o aplicaciones en tu pc, basta con disponer de uno de los navegadores que soportan este sistema: Google Chrome, Safari, Firefox, Mozilla, Opera o Microsoft Edge, entre otros.
WebRTC, ¿cómo funciona?
1. El usuario abre una página de WebRTC.
2. El navegador solicita acceso a la cámara y micrófono del ordenador y el usuario debe otorgarlo (a uno de los dos o ambos según se desee).
3. El SDP (Protocolo de Descripción de Sesión) se genera en el navegador que inicia la conexión.
4. Un iniciador de conexión transfiere los datos de conexión a otros usuarios participantes. Generalmente, se utiliza un servidor de señalización y un protocolo WebSocket para el propósito.
5. Del lado del usuario receptor de la comunicación, un navegador recibe un paquete SDP y luego genera otro similar que toma los datos también desde el primer paquete. El segundo paquete se envía de vuelta al lado inicial.
6. Dependiendo de su implementación, el estado de conexión de la red en analizada a la par que los pasos anteriores. Los usuarios reciben una dirección de servidor STUN que se utiliza para conocer la dirección IP externa del dispositivo.
A continuación se compara con la dirección IP interna para determinar si se está utilizando NAT con la conexión y, de ser así, cómo se enrutan los paquetes UDP.
En algunos casos más complejos, como puede ser, cuando se usa un doble NAT, los desarrolladores utilizan servidores TURN. Básicamente son repetidores capaces de convertir una red de pares (P2P) en una cliente-servidor-cliente.
7. Finalmente, después de completar con éxito los pasos anteriores, la conexión quedará establecida.
WebRTC, ¿qué necesito para usarlo?
- Un dispositivo (ordenador, móvil o tablet)
- Conexión a internet
- Navegador Google Chrome, Safari, Firefox, Mozilla, Opera o Microsoft Edge
- Auriculares y micrófono
WebRTC, ¿qué necesito para configurarlo?
Para realizar la configuración de un sistema de comunicación basado en WebRTC, son necesarios tres componentes principalmente:
1. Servidor de señalización WebRTC
Para establecer conexiones con este sistema, los pares deben contactar con un servidor de señalización. Este servidor será el encargado más tarde de proporcionar la información de la dirección necesaria para establecer una conexión de igual a igual. Algunos ejemplos de servidores de señalización, son:
- Signalmaster: servidor ligero basado en JavaScript
- NextRTC: servidor basado en Java
- Kurento: marco integral de WebRTC
- Janus: WebRTC Gateway de propósito general
2. Aplicación de cliente WebRTC
El cliente accede a WebRTC de un navegador a través de una API de JavaScript o usa una biblioteca WebRTC como parte de una aplicación de escritorio o móvil. Para conectar con un par, el primer cliente debe conectarse al servidor de señalización.
3. Servidor STUN / TURN
Las Utilidades de Traversal de sesión para NAT (STUN) permiten a los clientes intercambiar información de dirección incluso si están detrás de los enrutadores que emplean la Traducción de dirección de red (NAT).
Si las restricciones de red impiden que los interlocutores se comuniquen directamente, el tráfico se enrutará a través de un Servidor de uso de retransmisiones alrededor del servidor NAT (TURN).
WebRTC, ¿cuáles son sus ventajas?
Ya sea para uso particular o para uso profesional en una empresa o negocio, el sistema de comunicación WebRTC puede reportar muchas ventajas y beneficios. Aunque estamos seguros de que son infinitas, te detallamos a continuación las más destacadas a nuestro parecer:
- Sin instalaciones:
Para su uso, no requiere instalación de software, plugin o aplicación alguna.
- Comunicaciones de calidad:
Se pueden realizar videollamadas, llamadas de voz, conferencias y videoconferencias con múltiples interlocutores.
La calidad del audio y del video es bastante más alta que con cualquier otra tecnología y la rapidez de transferencia de los datos también es mayor principalmente gracias a:
- Codecs modernos de video y audio
- Ajuste automático de calidad
- Cancelación de eco y ruido integrada
- Control automático de ganancia (AGC)
- Combinación con VoIP:
Ofrece facilidades de combinación de ambos sistemas, muy útiles sobre todo en el entorno empresarial.
- Multiplataforma:
Funciona igual de bien con cualquier sistema operativo (escritorio y móvil). Son compatibles la mayoría de los navegadores y además se puede utilizar con cualquier tipo de red.
- Desarrollo:
Se trata de un proyecto de código abierto que puede integrarse fácilmente en su producto o servicio.
- No requiere número de teléfono:
Únicamente es necesario un navegador para poder establecer comunicación con cualquier persona, sin necesidad de tener un número de teléfono asociado.
- Seguridad:
Se pueden llevar a cabo comunicaciones en tiempo real completamente seguras, ya que se realizan mediante encriptación.
Las conexiones se encuentran protegidas y cifradas según los protocolos DTLS y SRTP. A la vez, este sistema opera solo sobre el protocolo HTTPS y si un sitio web que desee usar esta tecnología, debe tener un certificado firmado.
WebRTC, ¿cuáles son sus desventajas?
- No se pueden hacer llamadas de una app WebRTC a otra.
Esto es porque las soluciones WebRTC no son compatibles entre sí, ya que el estándar solo describe los procedimientos para transferir datos de video y audio.
Esto posibilita a los desarrolladores decidir sobre los métodos de direccionamiento, posibilidades de seguimiento de estado, intercambio de mensajes y archivos, programación, etc.
- En cuanto a seguridad, hay que decir que WebRTC detecta las direcciones IP reales de los usuarios, y ni un proxy ni la red Tor serán capaces de mantenerla en el anonimato.
Solo se puede ocultar la dirección IP usando varios servicios VPN y el servidor TURN. Si es necesario, WebRTC puede permanecer desactivado.
- WebRTC no permite el control remoto de escritorio. Es capaz de transmitir lo que está sucediendo en la pantalla del dispositivo, pero no hay posibilidad de interactuar.
Esto ocurre por razones de seguridad, ya que el código Javascript no puede controlar nada fuera de la ventana actual del navegador.
La opción de control remoto del escritorio y otras capadas por el código Javascript, se puede solventar usando otras aplicaciones cliente personalizadas por proveedores de videoconferencia.
WebRTC, ¿qué aplicaciones lo usan?
Algunos ejemplos de aplicaciones que usan este sistema de comunicación de voz y vídeo, son:
- Google Meet y Google Hangouts
- Facebook Messenger
- Discord
- Jitsi
- Zoom
- Apache OpenMeetings
- Microsoft teams
WebRTC, ¿qué códecs usa?
Para el correcto funcionamiento de este sistema, existen algunos codecs que se consideran imprescindibles y otros opcionales. Explicaremos a continuación los codecs de audio y vídeo obligatorios y opcionales.
WebRTC, ¿qué códecs de audio usa?
Los codecs que explicaremos a continuación, se usan para comprimir el tráfico:
1. Codecs obligatorios de audio:
- Opus:
Es un códec de audio de baja latencia (2.5 ms a 60 ms) con soporte de tasa de bits variable y alta compresión. Es el codec de audio principal para este sistema y es perfecto para streaming en redes de ancho de banda variable.
Opus es una solución híbrida que combina las mejores características de los códecs SILK (compresión de voz y mejora de voz humana) y CELT (codificación de audio).
En cuanto al número de parámetros, Opus supera a los codecs de baja tasa de bits más populares: MP3, Vorbis y AAC LC.
- G.711:
Es un códec de voz heredado de 64 kbps diseñado para su uso en sistemas VoIP tradicionales. La ventaja principal de G.711 es la carga computacional mínima gracias a los algoritmos de compresión ligeros.
El codec tiene un bajo nivel de compresión de señales de audio y no aumenta el retraso de audio en la comunicación entre usuarios.
Es compatible con muchos dispositivos y los sistemas que utilizan este codec son más fáciles de usar que los basados en otros códecs de audio.
2. Codecs opcionales de audio:
- G.722:
Puede operar a 48, 56 y 64 kbps, proporcionando una calidad de audio igual a G.711. Como el G.711, es heredado, pero aún es compatible con Chrome, Safari y Firefox.
- iLBC (internet Low Bitrate Codec)
Es un códec de voz de banda estrecha de código abierto compatible con Chrome y Safari. Su problema es que deDebido a la alta compresión de flujo, este códec incrementa la carga del CPU.
- iSAC (internet Speech Audio Codec)
Se trata de un códec de audio de voz de banda ancha ya patentado que ahora se ha integrado en el proyecto WebRTC. Este codec no es obligatorio, pero es compatible con Chrome y Safari.
En el caso de WebRTC, utiliza un bitrate adaptativo de 10 a 52 kbps con una tasa de muestreo de 32 kHz.
WebRTC, ¿qué códecs de vídeo usa?
1. Codecs obligatorios de vídeo:
- VP8:
Es un códec de video abierto con alta velocidad de decodificación de video y gran resistencia a la pérdida de cuadros.
VP8 es fácil de integrar en las plataformas de hardware, por lo que es muy usado por los proveedores de videoconferencia.
VP8 es compatible con Chrome, Edge, Firefox y Safari (12.1+).
- H.264:
Ofrece una alta relación de compresión para flujos de video manteniendo al mismo tiempo una alta calidad de video.
Es muy usado en sistemas de hardware de videoconferencia y perfecto para este sistema de comunicación.
H.264 es compatible con Chrome (52+), Edge, Firefox (ya no es compatible con las versiones 68+ para Android) y Safari.
2. Codecs opcionales de vídeo:
- VP9:
Es un estándar de compresión de video abierto y libre desarrollado por Google en 2012. Más tarde fue ampliado dentro del AV1It, resulta de las ideas detrás del VP8.
Es compatible con Chrome (48+) y Firefox.
- H.265:
Es un códec de video pago que optimiza las opciones del H.264 y que proporciona la misma calidad visual a la mitad del bitrate. Esto es posible gracias a que se han conseguido algoritmos de compresión más eficientes. Este códec está compitiendo actualmente con el AV1.
- AV1:
Es un códec de compresión de video de código abierto diseñado para la transmisión de video por internet.
Es compatible con Chrome (70+) y Firefox (67+).
WebRTC, ¿qué navegadores soporta?
- Google Chrome
- Mozilla
- Firefox
- Safari
- Opera
- Microsoft Edge
- …
WebRTC Chrome, ¿cómo habilitarlo?
1. Insertar en navegador chrome://flags/#temporary-unexpire-flags-m85 y poner habilitado (enabled). Esto esto permitirá que se habilite chrome://flags/#enable-webrtc-hide-local-ips-with-mdns.
2. Insertar en navegador chrome://flags/#enable-webrtc-hide-local-ips-with-mdns y deshabilitar (disabled).
WebRTC, ¿cómo desactivarlo?
A continuación, vamos a explicar cómo puedes desactivar este sistema en diferentes navegadores: WebRTC Chrome, Firefox, Safari, Microsoft Edge. Sigue los pasos indicados.
WebRTC Chrome, ¿cómo desactivarlo?
A través de las extensiones siguientes:
– uBlock Origin: bloqueador polivalente para anuncios, rastreadores, malware y además tiene una opción para bloquear este sistema de comunicación.
– WebRTC Network Limiter: complemento oficial de Google, que detiene las fugas de IP sin bloquear totalmente el sistema de comunicación.
WebRTC Firefox, ¿cómo desactivarlo?
1. Escribe en la barra de direcciones: about:config
2. Haz clic en el botón que aparecerá indicando «¡Acepto del riesgo!»
3. Escribe en la barra de búsqueda: media.peerconnection.enabled
4. Haz doble clic para cambiar el valor a ‘falso’
Este método debería funcionar en la versión móvil y en la de escritorio de Firefox.
WebRTC Safari, ¿cómo desactivarlo?
En la actualidad no se puede deshabilitar totalmente este sistema en Safari. Sin embargo, debemos tener en cuenta que el modelo de otorgamiento de permisos de Safari es más estricto que los de los demás navegadores.
En Safari realmente no sería necesario emprender ninguna acción adicional para evitar fugas a través de este sistema de comunicación.
WebRTC Microsoft Edge, ¿cómo desactivarlo?
- Escribe lo siguiente en la barra de direcciones: about: flags
- Selecciona la opción marcada Ocultar mi dirección IP local en conexiones WebRTC
WebRTC, ¿cuál es la consecuencia de desactivarlo?
Desactivar este sistema en el navegador nos permitirá mejorar notablemente la privacidad, debido a aque nos permitirá ocultar la IP real cuando realizamos conexiones a través de una conexión VPN. Al mismo tiempo, evitaremos revelar información sensible, como la configuración de nuestras direcciones IP privadas.
Sin embargo, deshabilitar este sistema de comunicación puede hacer que algunas apps y herramientas web que dependen de él dejen de funcionar, como por ejemplo:
– Aplicaciones que permiten enviar archivos a través de nuestro ordenador de punto a punto, sin un servidor intermedio.
– WhatsApp Web, que usa este sistema para conectarse con nuestro smartphone y utilizarlo de «puente» para enviar los datos a través de él. Sin este protocolo no se podrá conectar y, por lo tanto, no funcionará.
Si necesitamos volver a utilizar alguna aplicación que dependa de este protocolo, lo mejor es volver a activarlo (deshabilitando las extensiones o revirtiendo el cambio realizado en la configuración). En cualquier caso, no debemos olvidarnos de los riesgos para la privacidad que supone usar WebRTC.
WebRTC y VoIP, ¿qué tienen en común?
Los dos realizan comunicaciones en tiempo real desde cualquier ubicación en el mundo a través de la red de internet. En ambos casos cualquier dispositivo conectado a Internet puede ser potencialmente utilizado como terminal: ordenador, tablet, smartphone, etc.
WebRTC y VoIP, ¿cuál es la diferencia?
A pesar de que WebRTC es una tecnología basada en VoIP, la verdadera diferencia entre ellos es la propia tecnología subyacente. WebRTC solo se aplica a los navegadores web (Chrome, Mozilla, Firefox, Safari…) sin ser necesiario usar una aplicación para realizar o recibir llamadas a través de internet.
Aunque VoIP es ya de por sí un sistema muy económico, el hecho de que WebRTC no necesite ni siquiera la instalación de una app para su uso, supone un impacto aún mayor en el coste de la propiedad.
El VoIP requiere una red, arquitectura y personal dedicados, pero WebRTC es un servicio bajo demanda, la mayoría de las veces facturado por usuario, por mes y sin costo de infraestructura.
WebRTC y SIP en VoIP, ¿cuál es la diferencia?
WebRTC es un proyecto de código abierto desarrollado por Google. Realiza comunicaciones de voz y vídeo utilizando las aplicaciones del navegador.
A diferencia del SIP, para comunicarse mediante este sistema no será imprescindible usar ningún dispositivo adicional, ya que se puede usar en el móvil o tablet descargando una aplicación, o en el PC usando unos auriculares.
WebRTC, ¿cómo saber si se encuentra habilitado?
Insertar en la barra de direcciones del navegador chrome: // webrtc-internals / para ver todas las conexiones WebRTC. El sitio que trató de establecer la conexión WebRTC aparecerá en la parte superior (en este caso https: // ip.voidsec.com /).
– – – – – –
Ahora que ya sabes todo sobre WebRTC que es y cómo funciona, te será más sencillo comenzar a utilizarlo para tus comunicaciones.
Si tienes alguna duda sobre este sistema de comunicación o deseas que te ayudemos a implemenbtarlo en tu empresa, ponte en contacto con nosotros a través de nuestro Formulario de Contacto.