videocalling
Illustration of Señalización (Signaling) in video calling

Señalización (Signaling)

glossary.categories.technical

El proceso de coordinar la comunicación entre pares WebRTC antes de establecer una conexión

¿Qué es la Señalización?

La señalización es el proceso de intercambiar la información necesaria para que dos pares WebRTC se encuentren y acuerden cómo comunicarse. Es como intercambiar números de teléfono antes de poder hacer una llamada: necesitas saber a quién llamar y acordar los detalles técnicos.

WebRTC deliberadamente no especifica cómo debe funcionar la señalización. Solo define qué información necesita ser intercambiada (ofertas/respuestas SDP y candidatos ICE). Cómo transportas esa información depende completamente de ti: WebSockets, HTTP, SMS, palomas mensajeras, lo que funcione.

Qué se intercambia durante la señalización

  • Ofertas y respuestas SDP: Descripciones de capacidades multimedia (códecs, resoluciones, tipos de medios)
  • Candidatos ICE: Direcciones de red potenciales para conectarse (IPs locales, IPs públicas, direcciones de retransmisión)
  • Control de sesión: Mensajes como "quiero conectarme", "acepto la llamada", "terminar la llamada"

El flujo de señalización

  1. El Par A crea una oferta SDP usando createOffer()
  2. El Par A establece la oferta como su descripción local con setLocalDescription()
  3. El Par A envía la oferta al Par B a través del servidor de señalización
  4. El Par B recibe la oferta y la establece como descripción remota con setRemoteDescription()
  5. El Par B crea una respuesta SDP usando createAnswer()
  6. El Par B envía la respuesta de vuelta al Par A
  7. El Par A establece la respuesta como su descripción remota
  8. Simultáneamente, ambos pares intercambian candidatos ICE a medida que se descubren
  9. Una vez que los candidatos ICE coincidentes se encuentran, la conexión peer-to-peer directa se establece

Mecanismos de transporte de señalización

  • WebSockets: La opción más común. Conexión bidireccional persistente, ideal para entregar mensajes de señalización con baja latencia
  • Server-Sent Events (SSE): Unidireccional del servidor al cliente, combinado con HTTP POST para la dirección del cliente al servidor
  • Polling HTTP: La opción más simple pero menos eficiente. El cliente consulta periódicamente al servidor por nuevos mensajes
  • SIP: Protocolo de señalización estándar de telecomunicaciones, utilizado para la interoperabilidad con VoIP

Consideraciones de seguridad

El canal de señalización debe ser seguro porque los mensajes SDP contienen información sensible como direcciones IP y huellas digitales criptográficas. Siempre usa HTTPS/WSS (WebSocket seguro) para el transporte de señalización. Autentica a los usuarios antes de permitir la señalización para prevenir acceso no autorizado a las llamadas.

Referencias