Che cos’è SDP (Session Description Protocol)?

SDP è l’abbreviazione di Session Description Protocol. L’SDP definisce uno standard per la definizione dei parametri per lo scambio di media (spesso in streaming) tra due (tipicamente) endpoint. È stato pubblicato dall’IETF come RFC 4566. La SDP è tipicamente incorporata o incapsulata all’interno di un altro protocollo, con l’applicazione più utilizzata all’interno del protocollo SIP nella maggior parte delle applicazioni di telefonia IP. In termini semplici, il protocollo SDP è una dichiarazione, da parte di un endpoint mediatico, delle sue specifiche e capacità di ricezione; una tipica dichiarazione ci direbbe:

  • Quale indirizzo IP è pronto a ricevere il flusso multimediale in entrata.

  • Quale numero di porta è in ascolto per il flusso mediatico in entrata.
  • Quale tipo di media il punto finale si aspetta di ricevere (tipicamente audio).

  • In quale protocollo l’endpoint si aspetta di scambiare informazioni (tipicamente RTP).
  • Quale compressione codifica il punto finale è in grado di decodificare (codec).

…e forse anche di più. In un tipico processo di configurazione di una sessione, vedremmo due endpoint partecipare ad una sessione, dove ognuno degli endpoint invia un SDP per informare l’altro endpoint delle sue specifiche e capacità. L’SDP non fornisce di per sé alcun media, ma si limita semplicemente a negoziare un insieme di parametri di scambio di media compatibili; i flussi di media stessi sono gestiti da un canale e da un protocollo diversi. Guardando questo esempio:

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

… si vede che l’endpoint dichiara di voler ricevere i media

  • Sull’indirizzo IP 10.11.12.13 (il parametro “c=”).

  • Sul numero di porta 15010 (dichiarato nel parametro “m=”).

  • Il tipo audio (dichiarato nel parametro “m=”).

  • Tramite protocollo RTP, con 2 possibili codec numerati rispettivamente 0 e 101, dove:

    • Il codec 0 è definito come PCMU a 8000hz.
    • il codec 101 è definito come “telefono-evento” a 8000Hz (telefono-evento è in effetti un tono DTMF).
    • in modalità bidirezionale (“a=sendrecv”).

Ulteriori letture