Aller au contenu principal

5. Spécification SDP

Une description de session SDP est représentée par le type de média « application/sdp » (voir la section 8).

Une description de session SDP est entièrement sous forme textuelle utilisant le jeu de caractères ISO 10646 encodé en UTF-8. Les noms de champs SDP et les noms d'attributs utilisent uniquement le sous-ensemble US-ASCII de l'UTF-8, mais les champs de texte et les valeurs d'attributs PEUVENT utiliser le jeu de caractères ISO 10646 complet. Les champs et valeurs d'attributs utilisant le jeu de caractères UTF-8 complet ne sont jamais comparés directement, donc aucune normalisation UTF-8 n'est requise. La forme textuelle (plutôt qu'un encodage binaire tel qu'ASN.1 ou XDR) a été choisie pour améliorer la portabilité, permettre une variété de modes de transport, et permettre l'utilisation d'outils flexibles basés sur le texte pour générer et traiter les descriptions de session.

Format de description SDP

Une description de session SDP est composée de plusieurs lignes de texte au format :

<type>=<value>

<type> DOIT être exactement un caractère sensible à la casse, et <value> est du texte structuré dont le format dépend de <type>.

Structure de la description SDP

Une description de session SDP est composée d'une section de niveau session et de zéro ou plusieurs sections de niveau média. Certaines lignes de la description sont OBLIGATOIRES (REQUIRED) et certaines sont OPTIONNELLES (OPTIONAL), mais toutes DOIVENT apparaître dans l'ordre indiqué ici. Les éléments optionnels sont marqués d'un « * ».

Description de session (Session description) :

  • v= (version du protocole)
  • o= (initiateur et identifiant de session)
  • s= (nom de session)
  • i=* (informations de session)
  • u=* (URI de la description)
  • e=* (adresse électronique)
  • p=* (numéro de téléphone)
  • c=* (informations de connexion — non requises si incluses dans tous les médias)
  • b=* (zéro ou plusieurs lignes d'informations de bande passante)
  • Une ou plusieurs descriptions de temps (lignes « t= » et « r= »)
  • z=* (ajustements de fuseau horaire)
  • k=* (clé de chiffrement)
  • a=* (zéro ou plusieurs lignes d'attributs de session)
  • Zéro ou plusieurs descriptions de médias

Description de temps (Time description) :

  • t= (horaires d'activité de la session)
  • r=* (zéro ou plusieurs temps de répétition)

Description de média (Media description, si présente) :

  • m= (nom du média et adresse de transport)
  • i=* (titre du média)
  • c=* (informations de connexion — optionnelles si incluses au niveau session)
  • b=* (zéro ou plusieurs lignes d'informations de bande passante)
  • k=* (clé de chiffrement)
  • a=* (zéro ou plusieurs lignes d'attributs de média)

Exemple 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

Sous-sections

5.1 Protocol Version ("v=") (version du protocole)

v=0

Le champ « v= » indique la version du protocole de description de session. Ce mémo définit la version 0. Il n'y a pas de numéro de sous-version.

5.2 Origin ("o=") (origine)

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

Le champ « o= » indique l'initiateur de la session (son nom d'utilisateur et l'adresse de son hôte), ainsi que l'identifiant et le numéro de version de la session.

5.3 Session Name ("s=") (nom de session)

s=<session name>

Le champ « s= » est le nom textuel de la session. Chaque description de session DOIT avoir exactement un champ « s= ».

5.4 Session Information ("i=") (informations de session)

i=<session description>

Le champ « i= » fournit des informations textuelles sur la session. Chaque description de session PEUT avoir au plus un champ « i= » au niveau session, et au plus un champ « i= » par média.

5.5 URI ("u=")

u=<uri>

Le champ « u= » contient un URI pointant vers plus d'informations sur la session.

5.6 Email Address and Phone Number ("e=" and "p=") (adresse électronique et numéro de téléphone)

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

Le champ « e= » contient l'adresse électronique de la personne responsable de la conférence. Le champ « p= » contient le numéro de téléphone de la personne responsable de la conférence.

5.7 Connection Data ("c=") (données de connexion)

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

Le champ « c= » contient les informations nécessaires aux données de connexion.

5.8 Bandwidth ("b=") (bande passante)

b=<bwtype>:<bandwidth>

Le champ « b= » indique la bande passante proposée pour la session.

5.9 Timing ("t=") (temporisation)

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

La ligne « t= » spécifie les heures de début et de fin de la session.

5.10 Repeat Times ("r=") (temps de répétition)

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

La ligne « r= » spécifie les horaires de répétition d'une session récurrente.

5.11 Time Zones ("z=") (fuseaux horaires)

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

La ligne « z= » spécifie les ajustements de fuseau horaire pour compenser les changements d'heure d'été ou d'autres décalages de fuseau horaire.

5.12 Encryption Keys ("k=") (clés de chiffrement)

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

Le champ « k= » est utilisé pour transmettre des clés de chiffrement.

5.13 Attributes ("a=") (attributs)

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

Les attributs sont le principal moyen d'étendre SDP. Les attributs peuvent être définis au niveau session ou au niveau média.

5.14 Media Descriptions ("m=") (descriptions de médias)

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

Une description de média commence par une ligne « m= » et contient suffisamment d'informations pour décrire un flux de média.


Remarque : La section 5 contient de nombreux détails techniques et des définitions de syntaxe ABNF. Pour la spécification complète, veuillez consulter le document officiel RFC 4566.