VoIP: Funcionamiento básico del protocolo SIP

Como se vió en posts anteriores, SIP (Session Initiation Protocol) es un protocolo de control desarrollado por el IETF, basado en arquitectura cliente/servidor similar al HTTP, legible por humanos, con el que comparte muchos códigos de estado y sigue una estructura de petición-respuesta; estas peticiones son generadas por un cliente y enviadas a un servidor, que las procesa y devuelve la respuesta al cliente. El par petición-respuesta recibe el nombre de transacción. Al igual que el protocolo HTTP, SIP proporciona un conjunto de solicitudes y respuestas basadas en códigos.

El protocolo SIP define principalmente seis tipos de solicitudes:

» INVITE: establece una sesión.
» ACK: confirma una solicitud INVITE.
» BYE: finaliza una sesión.
» CANCEL: cancela el establecimiento de una sesión.
» REGISTER: comunica la localización de usuario (nombre de equipo, IP).
» OPTIONS: comunica la información acerca de las capacidades de envío y recepción de teléfonos SIP.

y seis clases de respuestas:

» 1xx: respuestas informativas, tal como 180, la cual significa teléfono sonando.
» 2xx: respuestas de éxito.
» 3xx: respuestas de redirección.
» 4xx: errores de solicitud.
» 5xx: errores de servidor.
» 6xx: errores globales.

Tengamos el siguiente ejemplo de una llamada SIP, cuya evolución se puede ver (con algo de dificultad) en la imagen de la izquierda, obtenida de una captura de datos:

1. El teléfono llamante envía un INVITE.
2. Se solicita autenticación para establecer la llamada mediante la respuesta 407 (407 Autenticación Proxy Requerida).
3. El teléfono llamante responde con un ACK confirmado.
4. El teléfono al que se llama envía una respuesta informativa 100 (tratando).
5. Cuando el teléfono al que se llama empieza a sonar envía una respuesta 180 (teléfono sonando).
6. Cuando el receptor levanta el teléfono, el teléfono al que se llama envía una respuesta 200 (OK).
7. El teléfono llamante responde con un ACK confirmado.
8. Ahora la conversación es transmitida como datos vía RTP.
9. Cuando la persona a la que se llama cuelga, una solicitud BYE es enviada al teléfono llamante.
10. El teléfono llamante responde con un 200 (OK).

Llegados a este punto, cabe destacar que SIP define mecanismos para garantizar la fiabilidad de las comunicaciones y depende del protocolo SDP (Sesion Description Protocol), que describe el contenido multimedia de la sesión; por ejemplo, el puerto IP (los clientes SIP usan el puerto 5060 TCP y UDP para conectar con los servidores SIP) y el códec que se utilizarán durante la comunicación, etc.

En el siguiente post, veremos, ya entrando en el terreno de la seguridad, autenticación y cracking de contraseñas SIP, y posteriormente, el proceso seguido en la captura de una conversación VoIP.

Hasta entonces, por mi parte, nada más.

Comments

  1. Manuel Benet says

    Es posible que algunos de ustedes, sobre todo los que acceden mediante el lector de feeds (y que por tanto quizá no accedan a este comentario), vean parte de la entrada, que se ha eliminado y modificado, dejándola para un próximo post (para aquellos más paranoicos, no es que incluya ningún tipo de dato confidencial, simplemente su autor quería rehacer parte del protocolo de handshake).

    Les recomiendo el siguiente post de VoIP para acceder a la información más reciente.