9. Indicating Capabilities (Fähigkeiten angeben)
9. Indicating Capabilities (Fähigkeiten angeben)
Bevor ein Agent ein Offer sendet, ist es hilfreich zu wissen, ob die Medienformate in diesem Offer für den Answerer akzeptabel wären. Bestimmte Protokolle wie SIP (Session Initiation Protocol, Sitzungsinitiierungsprotokoll) bieten Mittel zu solchen Abfragen. SDP kann in Antworten auf solche Abfragen verwendet werden, um Fähigkeiten anzuzeigen. Dieser Abschnitt beschreibt, wie eine solche SDP-Nachricht formatiert wird. Da SDP keinen Weg hat anzuzeigen, dass die Nachricht der Fähigkeitsanzeige dient, wird dies aus dem Kontext des höheren Protokolls bestimmt. Die Fähigkeit von Basis-SDP, Fähigkeiten anzuzeigen, ist sehr begrenzt. Es kann keine zulässigen Parameterbereiche oder Werte ausdrücken, und es kann nicht parallel zu einem Offer/Answer selbst erfolgen. Erweiterungen könnten solche Einschränkungen künftig adressieren.
Ein zur Angabe von Medienfähigkeiten konstruiertes SDP ist wie folgt strukturiert. Es MUSS ein gültiges SDP sein, außer dass es sowohl e=- als auch p=-Zeilen weglassen KANN. Die t=-Zeile MUSS 0 0 sein. Für jeden von der Implementierung unterstützten Medientyp MUSS eine entsprechende Medienbeschreibung dieses Typs vorhanden sein. Die Sitzungs-ID (session ID) im Ursprungsfeld MUSS für jedes zur Angabe von Medienfähigkeiten erstellte SDP eindeutig sein. Der Port MUSS auf null gesetzt sein, die Verbindungsadresse ist beliebig. Die Verwendung von Port null stellt sicher, dass ein für Fähigkeiten formatiertes SDP keine Medienstreams einrichtet, wenn es als Offer oder Answer interpretiert wird.
Die Transportkomponente der m=-Zeile gibt den Transport für diesen Medientyp an. Für jedes von der Implementierung unterstützte Medienformat dieses Typs SOLLTE ein Medienformat in der m=-Zeile aufgeführt sein. Im Fall von RTP MUSS bei dynamischen Payload-Typen ein rtpmap-Attribut vorhanden sein, um den Typ an ein bestimmtes Format zu binden. Es gibt keinen Weg, Einschränkungen anzugeben, etwa wie viele gleichzeitige Streams für einen bestimmten Codec unterstützt werden können, und so weiter.
v=0
o=carol 28908764872 28908764872 IN IP4 100.3.6.6
s=-
t=0 0
c=IN IP4 192.0.2.4
m=audio 0 RTP/AVP 0 1 3
a=rtpmap:0 PCMU/8000
a=rtpmap:1 1016/8000
a=rtpmap:3 GSM/8000
m=video 0 RTP/AVP 31 34
a=rtpmap:31 H261/90000
a=rtpmap:34 H263/90000
Abbildung 1: SDP mit Fähigkeitsangabe
Das SDP in Abbildung 1 zeigt, dass die Implementierung drei Audio-Codecs (PCMU, 1016 und GSM) und zwei Video-Codecs (H.261 und H.263) unterstützen kann.