Cuando marcas en un teléfono IP y esperas a que suene del otro lado, en esos dos segundos ocurre una conversación completa —de mensajes de texto, literalmente— entre los equipos, negociando la llamada antes de que nadie diga "bueno". Ese diálogo es SIP, y entenderlo de cabo a rabo desmitifica toda la telefonía moderna.
Qué es SIP (y qué no hace)
SIP (Session Initiation Protocol) es el protocolo de señalización que establece, modifica y termina sesiones —una llamada, una videollamada—. La palabra clave es señalización: SIP no lleva la voz. SIP es el que negocia la llamada —quién llama a quién, si contestan, con qué códecs—, pero el audio viaja por otro camino (RTP). Es como el maître que te sienta en la mesa: organiza todo, pero no es quien cocina. Confundir la señalización con el audio es el malentendido más común de VoIP.
SIP no es el único (hola, H.323)
Se ha vuelto costumbre decir "VoIP es SIP", y es una verdad a medias. SIP ganó, pero no estuvo solo. Antes reinó H.323, un protocolo más complejo, binario y de raíz telco, que movió cantidades enormes de tráfico y todavía sobrevive en algunos sistemas heredados y de videoconferencia. Existió también MGCP, de control más centralizado. SIP se impuso por ser simple y basado en texto, con una estructura parecida a HTTP que cualquiera puede leer. Saber que hubo (y hay) alternativas te evita sorpresas el día que te topes con un gateway H.323 en una integración.
El flujo de una llamada, paso a paso
Una llamada SIP es un intercambio de mensajes con una coreografía fija. Alice llama a Bob:
- INVITE → Alice invita a Bob a una sesión (y adjunta qué códecs ofrece).
- 100 Trying ← el sistema acusa "recibido, procesando".
- 180 Ringing ← el teléfono de Bob está sonando.
- 200 OK ← Bob contestó (y responde con qué códec acepta).
- ACK → Alice confirma. Aquí arranca el audio por RTP, y SIP se hace a un lado.
- …conversación (los paquetes de voz fluyen por RTP)…
- BYE → alguien cuelga.
- 200 OK ← el otro lado confirma. Fin.
Cómo se ve un mensaje SIP por dentro
Como SIP es texto, un mensaje se lee casi como un correo con encabezados. Un INVITE simplificado:
INVITE sip:bob@ejemplo.com SIP/2.0
Via: SIP/2.0/UDP 200.1.2.3:5060;branch=z9hG4bK776
From: "Alice" <sip:alice@ejemplo.com>;tag=1928
To: "Bob" <sip:bob@ejemplo.com>
Call-ID: a84b4c76e66710@200.1.2.3
CSeq: 1 INVITE
Contact: <sip:alice@200.1.2.3>
Content-Type: application/sdp
...
m=audio 49170 RTP/AVP 0 8 18 <- códecs ofrecidos (SDP)
Vale la pena reconocer algunos campos: Via traza la ruta de vuelta; From/To son quién llama y a quién; Call-ID identifica de forma única esta llamada entre todas; CSeq numera los mensajes; y ese Content-Type: application/sdp anuncia que, pegado abajo, viaja un cuerpo SDP —el que negocia los medios: qué códecs y a qué IP y puerto mandar el audio—. SIP arma la reunión; el SDP acuerda en qué idioma se hablará.
Los códigos de respuesta (idénticos a la web)
Si el header te recordó a HTTP, los códigos de respuesta lo confirman: 1xx provisional (100 Trying, 180 Ringing), 2xx éxito (200 OK), 3xx redirección, 4xx error del cliente (el clásico 404 Not Found para un número que no existe, o 486 Busy Here cuando comunica), 5xx error del servidor, 6xx fallo global. Quien viene del mundo web ya conoce media telefonía sin saberlo.
La idea que se queda
SIP es el protocolo de texto que negocia una llamada —INVITE, Ringing, OK, ACK, BYE— pero no lleva la voz; para eso está RTP. No es el único (H.323 fue enorme), ganó por simple, y su parecido con HTTP llega hasta los códigos de respuesta. Con teléfonos SIP como los de Grandstream, este diálogo ocurre miles de veces al día bajo el capó. Es el cerebro de la telefonía moderna; el músculo es cómo viaja el audio.