Zum Hauptinhalt springen

5.8.2. Media Section Parsing (Parsing von Medienabschnitten)

5.8.2. Media Section Parsing (Parsing von Medienabschnitten)

Wie die Zeilen auf Sitzungsebene MÜSSEN die Zeilen des Medienabschnitts (Media Section) in der in [RFC4566], Abschnitt 5 definierten spezifischen Reihenfolge und mit der spezifischen Syntax auftreten.

Die Zeile m= selbst MUSS wie in [RFC4566], Abschnitt 5.14 beschrieben geparst werden, und die Werte <media>, <port>, <proto> und <fmt> werden gespeichert.

Nach der Zeile m= MUSS für die folgenden Nicht-Attribut-Zeilen eine spezifische Verarbeitung angewendet werden:

  • Wie bei der c=-Zeile auf Sitzungsebene MUSS die c=-Zeile gemäß [RFC4566], Abschnitt 5.7 geparst werden, ihr Wert wird jedoch nicht verwendet.

  • Die Zeile b=, falls vorhanden, MUSS wie in [RFC4566], Abschnitt 5.8 spezifiziert geparst werden, und die Werte bwtype und bandwidth werden gespeichert.

Ebenso MUSS für die folgenden Attributzeilen eine spezifische Verarbeitung angewendet werden:

  • Falls vorhanden, wird eine einzelne a=ice-ufrag-Zeile wie in [RFC8839], Abschnitt 5.4 spezifiziert geparst, und der ufrag-Wert wird gespeichert.

  • Falls vorhanden, wird eine einzelne a=ice-pwd-Zeile wie in [RFC8839], Abschnitt 5.4 spezifiziert geparst, und der Passwortwert wird gespeichert.

  • Falls vorhanden, wird eine einzelne a=ice-options-Zeile wie in [RFC8839], Abschnitt 5.6 spezifiziert geparst, und die Menge der angegebenen Optionen wird gespeichert.

  • Alle a=candidate-Attribute MÜSSEN wie in [RFC8839], Abschnitt 5.1 spezifiziert geparst werden, und ihre Werte werden gespeichert.

  • Alle a=remote-candidates-Attribute MÜSSEN wie in [RFC8839], Abschnitt 5.2 spezifiziert geparst werden, ihre Werte werden jedoch ignoriert.

  • Falls vorhanden, MUSS ein einzelnes a=end-of-candidates-Attribut wie in [RFC8840], Abschnitt 8.1 spezifiziert geparst werden, und seine An- oder Abwesenheit wird markiert und gespeichert.

  • Alle a=fingerprint-Zeilen werden wie in [RFC8122], Abschnitt 5 spezifiziert geparst, und die Menge der Fingerabdruck- und Algorithmuswerte wird gespeichert.

Wenn der <proto>-Wert von m= die Verwendung von RTP anzeigt, wie in Abschnitt 5.1.2 beschrieben, MÜSSEN die folgenden Attributzeilen verarbeitet werden:

  • Der <fmt>-Wert von m= MUSS wie in [RFC4566], Abschnitt 5.14 spezifiziert geparst werden, und die einzelnen Werte werden gespeichert.

  • Alle a=rtpmap- oder a=fmtp-Zeilen MÜSSEN wie in [RFC4566], Abschnitt 6 spezifiziert geparst werden, und ihre Werte werden gespeichert.

  • Falls vorhanden, MUSS eine einzelne a=ptime-Zeile wie in [RFC4566], Abschnitt 6 beschrieben geparst werden, und ihr Wert wird gespeichert.

  • Falls vorhanden, MUSS eine einzelne a=maxptime-Zeile wie in [RFC4566], Abschnitt 6 beschrieben geparst werden, und ihr Wert wird gespeichert.

  • Falls vorhanden, MUSS eine einzelne Richtungsattributzeile (z. B. a=sendrecv) wie in [RFC4566], Abschnitt 6 beschrieben geparst werden, und ihr Wert wird gespeichert.

  • Alle a=ssrc-Attribute MÜSSEN wie in [RFC5576], Abschnitt 4.1 spezifiziert geparst werden, und ihre Werte werden gespeichert.

  • Alle a=extmap-Attribute MÜSSEN wie in [RFC5285], Abschnitt 5 spezifiziert geparst werden, und ihre Werte werden gespeichert.

  • Alle a=rtcp-fb-Attribute MÜSSEN wie in [RFC4585], Abschnitt 4.2 spezifiziert geparst werden, und ihre Werte werden gespeichert.

  • Falls vorhanden, MUSS ein einzelnes a=rtcp-mux-Attribut wie in [RFC5761], Abschnitt 5.1.3 spezifiziert geparst werden, und seine An- oder Abwesenheit wird markiert und gespeichert.

  • Falls vorhanden, MUSS ein einzelnes a=rtcp-mux-only-Attribut wie in [RFC8858], Abschnitt 3 spezifiziert geparst werden, und seine An- oder Abwesenheit wird markiert und gespeichert.

  • Falls vorhanden, MUSS ein einzelnes a=rtcp-rsize-Attribut wie in [RFC5506], Abschnitt 5 spezifiziert geparst werden, und seine An- oder Abwesenheit wird markiert und gespeichert.

  • Falls vorhanden, MUSS ein einzelnes a=rtcp-Attribut wie in [RFC3605], Abschnitt 2.1 spezifiziert geparst werden, sein Wert wird jedoch ignoriert, da diese Information bei Verwendung von ICE überflüssig ist.

  • Falls vorhanden, MÜSSEN a=msid-Attribute wie in [RFC8830], Abschnitt 3.2 spezifiziert geparst werden, und ihre Werte werden gespeichert, wobei jedes appdata-Feld ignoriert wird. Wenn keine a=msid-Attribute vorhanden sind, wird ein zufälliger msid-id-Wert für einen default-MediaStream der Sitzung generiert, falls noch nicht vorhanden, und dieser Wert wird gespeichert.

  • Alle a=imageattr-Attribute MÜSSEN wie in [RFC6236], Abschnitt 3 spezifiziert geparst werden, und ihre Werte werden gespeichert.

  • Alle a=rid-Zeilen MÜSSEN wie in [RFC8851], Abschnitt 10 spezifiziert geparst werden, und ihre Werte werden gespeichert.

  • Falls vorhanden, MUSS eine einzelne a=simulcast-Zeile wie in [RFC8853] spezifiziert geparst werden, und ihre Werte werden gespeichert.

Andernfalls, wenn der <proto>-Wert von m= die Verwendung von SCTP anzeigt, MÜSSEN die folgenden Attributzeilen verarbeitet werden:

  • Der <fmt>-Wert von m= MUSS wie in [RFC8841], Abschnitt 4.3 spezifiziert geparst werden, und der Anwendungsprotokollwert wird gespeichert.

  • Ein a=sctp-port-Attribut MUSS vorhanden sein, und es MUSS wie in [RFC8841], Abschnitt 5.2 spezifiziert geparst werden, und der Wert wird gespeichert.

  • Falls vorhanden, MUSS ein einzelnes a=max-message-size-Attribut wie in [RFC8841], Abschnitt 6 spezifiziert geparst werden, und der Wert wird gespeichert. Andernfalls den angegebenen Standardwert verwenden.

Weitere Attribute, die für JSEP nicht relevant sind, können ebenfalls vorhanden sein, und Implementierungen SOLLEN alle verarbeiten, die sie erkennen. Wie von [RFC4566], Abschnitt 5.13 gefordert, MÜSSEN unbekannte Attributzeilen ignoriert werden.