5. SDP Specification (SDP-Spezifikation)
Eine SDP-Sitzungsbeschreibung wird durch den Medientyp „application/sdp" dargestellt (siehe Abschnitt 8).
SDP-Sitzungsbeschreibungen sind vollständig in Textform unter Verwendung des ISO-10646-Zeichensatzes in UTF-8-Kodierung. SDP-Feldnamen und Attributnamen verwenden nur die US-ASCII-Teilmenge von UTF-8, aber Textfelder und Attributwerte KÖNNEN den vollständigen ISO-10646-Zeichensatz verwenden. Felder und Attributwerte, die den vollständigen UTF-8-Zeichensatz verwenden, werden niemals direkt verglichen, daher ist keine UTF-8-Normalisierung erforderlich. Die Wahl der Textform (anstelle einer binären Kodierung wie ASN.1 oder XDR) dient der Verbesserung der Portabilität, der Unterstützung verschiedener Transportmethoden und der Ermöglichung der Verwendung flexibler textbasierter Werkzeuge zur Erstellung und Verarbeitung von Sitzungsbeschreibungen.
SDP-Beschreibungsformat
Eine SDP-Sitzungsbeschreibung besteht aus mehreren Textzeilen im Format:
<type>=<value>
Dabei MUSS <type> genau ein Zeichen sein, das zwischen Groß- und Kleinschreibung unterscheidet, und <value> ist strukturierter Text, dessen Format vom <type> abhängt.
SDP-Beschreibungsstruktur
Eine SDP-Sitzungsbeschreibung besteht aus einem Sitzungsabschnitt und null oder mehr Medienabschnitten. Einige Zeilen in der Beschreibung sind ERFORDERLICH (REQUIRED), andere sind OPTIONAL, aber alle Zeilen MÜSSEN in der hier angegebenen Reihenfolge erscheinen. Optionale Elemente sind mit „*" gekennzeichnet.
Sitzungsbeschreibung (Session description):
v=(Protokollversion)o=(Urheber und Sitzungskennung)s=(Sitzungsname)i=* (Sitzungsinformationen)u=* (URI der Beschreibung)e=* (E-Mail-Adresse)p=* (Telefonnummer)c=* (Verbindungsinformationen – nicht erforderlich, wenn in allen Medien enthalten)b=* (null oder mehr Bandbreiteninformationszeilen)- Eine oder mehrere Zeitbeschreibungen (Zeilen „t=" und „r=")
z=* (Zeitzoneneinstellungen)k=* (Verschlüsselungsschlüssel)a=* (null oder mehr Sitzungsattributzeilen)- Null oder mehr Medienbeschreibungen
Zeitbeschreibung (Time description):
t=(Zeitraum, in dem die Sitzung aktiv ist)r=* (null oder mehr Wiederholungszeiten)
Medienbeschreibung (Media description, falls vorhanden):
m=(Medienname und Transportadresse)i=* (Medientitel)c=* (Verbindungsinformationen – optional, wenn auf Sitzungsebene enthalten)b=* (null oder mehr Bandbreiteninformationszeilen)k=* (Verschlüsselungsschlüssel)a=* (null oder mehr Medienattributzeilen)
SDP-Beispiel
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
Unterabschnitte
5.1 Protocol Version ("v=") (Protokollversion)
v=0
Das Feld „v=" gibt die Version des Sitzungsbeschreibungsprotokolls an. Dieses Memo definiert Version 0. Es gibt keine Nebenversion.
5.2 Origin ("o=") (Urheber)
o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>
Das Feld „o=" gibt den Urheber der Sitzung (seinen Benutzernamen und die Adresse des Benutzer-Hosts) sowie die Sitzungskennung und Versionsnummer an.
5.3 Session Name ("s=") (Sitzungsname)
s=<session name>
Das Feld „s=" ist der Textsitzungsname. Jede Sitzungsbeschreibung MUSS genau ein Feld „s=" haben.
5.4 Session Information ("i=") (Sitzungsinformationen)
i=<session description>
Das Feld „i=" liefert Textinformationen über die Sitzung. Jede Sitzungsbeschreibung kann höchstens ein Feld „i=" auf Sitzungsebene und jedes Medium kann höchstens ein Feld „i=" haben.
5.5 URI ("u=")
u=<uri>
Das Feld „u=" enthält einen URI, der auf weitere Informationen über die Sitzung verweist.
5.6 Email Address and Phone Number ("e=" and "p=") (E-Mail-Adresse und Telefonnummer)
e=<email-address>
p=<phone-number>
Das Feld „e=" enthält die E-Mail-Adresse der für die Konferenz verantwortlichen Person. Das Feld „p=" enthält die Telefonnummer der für die Konferenz verantwortlichen Person.
5.7 Connection Data ("c=") (Verbindungsdaten)
c=<nettype> <addrtype> <connection-address>
Das Feld „c=" enthält die für die Verbindungsdaten erforderlichen Informationen.
5.8 Bandwidth ("b=") (Bandbreite)
b=<bwtype>:<bandwidth>
Das Feld „b=" gibt die vorgeschlagene Sitzungsbandbreite an.
5.9 Timing ("t=") (Zeitangabe)
t=<start-time> <stop-time>
Die Zeile „t=" gibt die Start- und Stoppzeiten der Sitzung an.
5.10 Repeat Times ("r=") (Wiederholungszeiten)
r=<repeat interval> <active duration> <offsets from start-time>
Die Zeile „r=" gibt die Zeiten für wiederkehrende Sitzungen an.
5.11 Time Zones ("z=") (Zeitzonen)
z=<adjustment time> <offset> <adjustment time> <offset> ...
Die Zeile „z=" gibt Zeitzoneneinstellungen an, die zur Kompensation von Sommerzeit oder anderen Zeitzonenverschiebungen verwendet werden.
5.12 Encryption Keys ("k=") (Verschlüsselungsschlüssel)
k=<method>
k=<method>:<encryption key>
Das Feld „k=" dient zur Übermittlung von Verschlüsselungsschlüsseln.
5.13 Attributes ("a=") (Attribute)
a=<attribute>
a=<attribute>:<value>
Attribute sind das wichtigste Mittel zur Erweiterung von SDP. Attribute können auf Sitzungs- oder Medienebene definiert werden.
5.14 Media Descriptions ("m=") (Medienbeschreibungen)
m=<media> <port> <proto> <fmt> ...
Eine Medienbeschreibung beginnt mit einer Zeile „m=" und enthält ausreichende Informationen zur Beschreibung eines Medienstroms.
Hinweis: Abschnitt 5 enthält umfangreiche technische Details und ABNF-Syntaxdefinitionen. Die vollständige Spezifikation ist in der offiziellen RFC-4566-Dokumentation zu finden.