5.8.1. Session-Level Parsing (Parsing auf Sitzungsebene)
5.8.1. Session-Level Parsing (Parsing auf Sitzungsebene)
Zuerst werden die Zeilen auf Sitzungsebene (Session-Level) geprüft und geparst. Diese Zeilen MÜSSEN in einer bestimmten Reihenfolge und mit einer bestimmten Syntax auftreten, wie in [RFC4566], Abschnitt 5 definiert. Obwohl die konkreten Zeilentypen (z. B. v=, c=) in der definierten Reihenfolge auftreten MÜSSEN, können Zeilen desselben Typs (typischerweise a=) in beliebiger Reihenfolge vorkommen.
Die folgenden Nicht-Attribut-Zeilen sind im JSEP-Kontext bedeutungslos und KÖNNEN nach der Prüfung verworfen werden.
-
Die Zeile
c=MUSS syntaktisch geprüft werden, ihr Wert wird jedoch nur zur ICE-Mismatch-Erkennung verwendet, wie in [RFC8445], Abschnitt 5.4 definiert. JSEP-Implementierungen sollten diesen Zustand nicht antreffen, da ICE für WebRTC erforderlich ist. -
Die Zeilen
i=,u=,e=,p=,t=,r=,z=undk=MÜSSEN syntaktisch geprüft werden, ihre Werte werden aber sonst nicht verwendet.
Die übrigen Nicht-Attribut-Zeilen werden wie folgt verarbeitet:
-
Die Zeile
v=MUSS die Version 0 haben, wie in [RFC4566], Abschnitt 5.1 angegeben. -
Die Zeile
o=MUSS wie in [RFC4566], Abschnitt 5.2 spezifiziert geparst werden. -
Die Zeile
b=, falls vorhanden, MUSS wie in [RFC4566], Abschnitt 5.8 spezifiziert geparst werden, und die Werte bwtype und bandwidth werden gespeichert.
Schließlich werden die Attributzeilen verarbeitet. Für die folgenden Attributzeilen (a=) auf Sitzungsebene MUSS eine spezifische Verarbeitung angewendet werden:
-
Alle
a=group-Zeilen werden wie in [RFC5888], Abschnitt 5 spezifiziert geparst, und die Gruppensemantik sowie die mids werden gespeichert. -
Falls vorhanden, wird eine einzelne
a=ice-lite-Zeile wie in [RFC8839], Abschnitt 5.3 spezifiziert geparst, und ein Wert, der die Anwesenheit von ice-lite anzeigt, wird gespeichert. -
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=fingerprint-Zeilen werden wie in [RFC8122], Abschnitt 5 spezifiziert geparst, und die Menge der Fingerabdruck- und Algorithmuswerte wird gespeichert. -
Falls vorhanden, wird eine einzelne
a=setup-Zeile wie in [RFC4145], Abschnitt 4 spezifiziert geparst, und der setup-Wert wird gespeichert. -
Falls vorhanden, wird eine einzelne
a=tls-id-Zeile wie in [RFC8842], Abschnitt 5 spezifiziert geparst, und der Attributwert wird gespeichert. -
Alle
a=identity-Zeilen werden geparst und die Identitätswerte für eine spätere Verifikation gespeichert, wie in [RFC8827], Abschnitt 5 spezifiziert. -
Alle
a=extmap-Zeilen werden wie in [RFC5285], Abschnitt 5 spezifiziert geparst, und ihre Werte werden gespeichert.
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.
Sobald alle Zeilen auf Sitzungsebene geparst wurden, wird die Verarbeitung mit den Zeilen in m=-Abschnitten fortgesetzt.