¿Qué es SDP – Session Description Protocol?

SDP, significa “Session Description Protocol” (Protocolo de descripción de sesión). El protocolo de descripción de sesión establece un estándar para definir los parámetros para el intercambio de media (llamado streaming media) entre dos (típicamente) endpoints. Ha sido publicado por el IETF como RFC 4566. El SDP es típicamente embedido o encapsulado dentro de otro protocolo, siendo su más amplia aplicación dentro del protocolo SIP en la mayoría de las aplicaciones en un sistema telefónico IP. En términos simples, el protocolo SDP es una declaración, por un endpoint media, de sus especificaciones de recepción y capacidades; una declaración típica nos dice:

  • Cuál dirección IP está preparada para recibir la transmisión de media entrante.

  • Cuál número de puerto está escuchando para la transmisión de media entrante.

  • Cuál tipo de media está esperando recibir el endpoint (típicamente audio).

  • Qué protocolo está esperando el endpoint para intercambiar información (típicamente RTP).

  • Cuál codificación de compresión puede utilizar el endpoint para decodificar (codec).

…y posiblemente más. En un proceso típico de configuración de sesión, veremos dos endpoints participando en una sesión, donde cada uno de los endpoints envía un SDP para informar al otro endpoint de sus especificaciones y capacidades. SDP por si mismo no entrega ningún tipo de media, simplemente se limita a la negociación de un set compatible para el intercambio de parámetros de media; estas transmisiones de media por si mismas son llevadas a cabo por un canal y protocolo diferente. Al ver este ejemplo:

v=0
o=MyStreamer 2398026505 2307593197 IN IP4 10.20.30.40
s=MyStreamer Audio Session
c=IN IP4 10.11.12.13
t=0 0
m=audio 15010 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv

…podemos apreciar que el endpoint está declarando que desea recibir media

  • En la dirección IP 10.11.12.13 (el parámetro “c=”)

  • En el número de puerto 15010 (declarado en el parámetro “m=”)

  • Del tipo audio (declarado en el parámetro “m=”)

  • A través del protocolo RTP, con 2 codecs posibles numerados 0 y 101 respectivamente, donde:

    • El codec 0 está definido como PCMU a 8000Hz
    • El codec 101 está definido como “telephone-event” a 8000Hz (telephone-event es el tono DTMF)
    • En modo bi-direccional (“a=sendrecv”)

Lecturas adicionales