Passa al contenuto principale

5. SDP Specification (Specifica SDP)

Una descrizione di sessione SDP è rappresentata dal tipo di media "application/sdp" (vedere la Sezione 8).

Le descrizioni di sessione SDP sono interamente in forma testuale e usano il set di caratteri ISO 10646 con codifica UTF-8. I nomi dei campi SDP e i nomi degli attributi usano solo il sottoinsieme US-ASCII di UTF-8, ma i campi testuali e i valori degli attributi POSSONO usare l'intero set di caratteri ISO 10646. I campi e i valori degli attributi che usano l'intero set UTF-8 non vengono mai confrontati direttamente, quindi non è richiesta la normalizzazione UTF-8. La forma testuale, invece di una codifica binaria come ASN.1 o XDR, è stata scelta per aumentare la portabilità, supportare diversi metodi di trasporto e permettere l'uso di strumenti testuali flessibili per generare ed elaborare descrizioni di sessione.

Formato della descrizione SDP

Una descrizione di sessione SDP consiste in più righe di testo nel formato:

<type>=<value>

Dove <type> DEVE essere esattamente un carattere sensibile alle maiuscole e minuscole, e <value> è testo strutturato il cui formato dipende da <type>.

Struttura della descrizione SDP

Una descrizione di sessione SDP è composta da una sezione a livello di sessione e da zero o più sezioni a livello di media. Alcune righe della descrizione sono OBBLIGATORIE (REQUIRED), altre sono FACOLTATIVE (OPTIONAL), ma tutte le righe DEVONO apparire nell'ordine indicato qui. Gli elementi facoltativi sono contrassegnati con "*".

Descrizione di sessione (Session description):

  • v= (versione del protocollo)
  • o= (originatore e identificatore della sessione)
  • s= (nome della sessione)
  • i=* (informazioni sulla sessione)
  • u=* (URI della descrizione)
  • e=* (indirizzo e-mail)
  • p=* (numero di telefono)
  • c=* (informazioni di connessione - non richieste se presenti in tutti i media)
  • b=* (zero o più righe di informazioni sulla larghezza di banda)
  • Una o più descrizioni temporali (righe "t=" e "r=")
  • z=* (aggiustamenti di fuso orario)
  • k=* (chiave di cifratura)
  • a=* (zero o più righe di attributi di sessione)
  • Zero o più descrizioni di media

Descrizione temporale (Time description):

  • t= (periodo in cui la sessione è attiva)
  • r=* (zero o più tempi di ripetizione)

Descrizione di media (Media description, se presente):

  • m= (nome del media e indirizzo di trasporto)
  • i=* (titolo del media)
  • c=* (informazioni di connessione - facoltative se presenti a livello di sessione)
  • b=* (zero o più righe di informazioni sulla larghezza di banda)
  • k=* (chiave di cifratura)
  • a=* (zero o più righe di attributi di media)

Esempio SDP

v=0
o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5
s=SDP Seminar
i=A Seminar on the session description protocol
u=http://www.example.com/seminars/sdp.pdf
[email protected] (Jane Doe)
c=IN IP4 224.2.17.12/127
t=2873397496 2873404696
a=recvonly
m=audio 49170 RTP/AVP 0
m=video 51372 RTP/AVP 99
a=rtpmap:99 h263-1998/90000

Sottosezioni

5.1 Protocol Version ("v=") (Versione del protocollo)

v=0

Il campo "v=" indica la versione del Session Description Protocol. Questo memo definisce la versione 0. Non esiste un numero di versione secondaria.

5.2 Origin ("o=") (Origine)

o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>

Il campo "o=" indica l'originatore della sessione, cioè il suo nome utente e l'indirizzo dell'host utente, oltre all'identificatore di sessione e al numero di versione.

5.3 Session Name ("s=") (Nome della sessione)

s=<session name>

Il campo "s=" è il nome testuale della sessione. Ogni descrizione di sessione DEVE avere uno e un solo campo "s=".

5.4 Session Information ("i=") (Informazioni sulla sessione)

i=<session description>

Il campo "i=" fornisce informazioni testuali sulla sessione. Ogni descrizione di sessione può avere al massimo un campo "i=" a livello di sessione, e ogni media può avere al massimo un campo "i=".

5.5 URI ("u=")

u=<uri>

Il campo "u=" contiene un URI che punta a ulteriori informazioni sulla sessione.

5.6 Email Address and Phone Number ("e=" and "p=") (Indirizzo e-mail e numero di telefono)

e=<email-address>
p=<phone-number>

Il campo "e=" contiene l'indirizzo e-mail della persona responsabile della conferenza. Il campo "p=" contiene il numero di telefono della persona responsabile della conferenza.

5.7 Connection Data ("c=") (Dati di connessione)

c=<nettype> <addrtype> <connection-address>

Il campo "c=" contiene le informazioni richieste per i dati di connessione.

5.8 Bandwidth ("b=") (Larghezza di banda)

b=<bwtype>:<bandwidth>

Il campo "b=" indica la larghezza di banda suggerita per la sessione.

5.9 Timing ("t=") (Tempi)

t=<start-time> <stop-time>

La riga "t=" specifica gli orari di inizio e fine della sessione.

5.10 Repeat Times ("r=") (Tempi di ripetizione)

r=<repeat interval> <active duration> <offsets from start-time>

La riga "r=" specifica i tempi per le sessioni ricorrenti.

5.11 Time Zones ("z=") (Fusi orari)

z=<adjustment time> <offset> <adjustment time> <offset> ...

La riga "z=" specifica aggiustamenti di fuso orario usati per compensare l'ora legale o altre variazioni di offset del fuso orario.

5.12 Encryption Keys ("k=") (Chiavi di cifratura)

k=<method>
k=<method>:<encryption key>

Il campo "k=" è usato per comunicare chiavi di cifratura.

5.13 Attributes ("a=") (Attributi)

a=<attribute>
a=<attribute>:<value>

Gli attributi sono il principale meccanismo per estendere SDP. Possono essere definiti a livello di sessione o a livello di media.

5.14 Media Descriptions ("m=") (Descrizioni di media)

m=<media> <port> <proto> <fmt> ...

Una descrizione di media inizia con una riga "m=" e contiene informazioni sufficienti a descrivere un flusso multimediale.


Nota: la Sezione 5 contiene numerosi dettagli tecnici e definizioni di sintassi ABNF. Per la specifica completa, vedere la documentazione ufficiale di RFC 4566.