5.8.1. Session-Level Parsing
5.8.1. Session-Level Parsing
D'abord, les lignes au niveau session (Session-Level) sont vérifiées et analysées. Ces lignes DOIVENT apparaître dans un ordre spécifique et avec une syntaxe spécifique, tels que définis dans [RFC4566], section 5. Notez que si les types de lignes particuliers (par ex. v=, c=) DOIVENT apparaître dans l'ordre défini, les lignes du même type (généralement a=) peuvent apparaître dans n'importe quel ordre.
Les lignes non-attribut suivantes n'ont pas de sens dans le contexte JSEP et PEUVENT être ignorées une fois vérifiées.
-
La ligne
c=DOIT être vérifiée syntaxiquement, mais sa valeur sert uniquement à la détection d'incohérence ICE, comme défini dans [RFC8445], section 5.4. Notez que les implémentations JSEP ne devraient jamais rencontrer cette condition car ICE est requis pour WebRTC. -
Les lignes
i=,u=,e=,p=,t=,r=,z=etk=DOIVENT être vérifiées syntaxiquement, mais leurs valeurs ne sont pas utilisées autrement.
Les autres lignes non-attribut sont traitées comme suit :
-
La ligne
v=DOIT avoir une version 0, comme spécifié dans [RFC4566], section 5.1. -
La ligne
o=DOIT être analysée comme spécifié dans [RFC4566], section 5.2. -
La ligne
b=, si présente, DOIT être analysée comme spécifié dans [RFC4566], section 5.8, et les valeurs bwtype et bandwidth stockées.
Enfin, les lignes d'attribut sont traitées. Un traitement spécifique DOIT être appliqué aux lignes d'attribut (a=) suivantes au niveau session :
-
Toute ligne
a=groupest analysée comme spécifié dans [RFC5888], section 5, et la sémantique du groupe ainsi que les mids sont stockés. -
Si présente, une seule ligne
a=ice-liteest analysée comme spécifié dans [RFC8839], section 5.3, et une valeur indiquant la présence d'ice-lite est stockée. -
Si présente, une seule ligne
a=ice-ufragest analysée comme spécifié dans [RFC8839], section 5.4, et la valeur ufrag est stockée. -
Si présente, une seule ligne
a=ice-pwdest analysée comme spécifié dans [RFC8839], section 5.4, et la valeur du mot de passe est stockée. -
Si présente, une seule ligne
a=ice-optionsest analysée comme spécifié dans [RFC8839], section 5.6, et l'ensemble des options spécifiées est stocké. -
Toute ligne
a=fingerprintest analysée comme spécifié dans [RFC8122], section 5, et l'ensemble des valeurs d'empreinte et d'algorithme est stocké. -
Si présente, une seule ligne
a=setupest analysée comme spécifié dans [RFC4145], section 4, et la valeur setup est stockée. -
Si présente, une seule ligne
a=tls-idest analysée comme spécifié dans [RFC8842], section 5, et la valeur d'attribut est stockée. -
Toute ligne
a=identityest analysée et les valeurs d'identité sont stockées pour vérification ultérieure, comme spécifié dans [RFC8827], section 5. -
Toute ligne
a=extmapest analysée comme spécifié dans [RFC5285], section 5, et leurs valeurs sont stockées.
D'autres attributs sans rapport avec JSEP peuvent aussi être présents, et les implémentations DEVRAIENT traiter ceux qu'elles reconnaissent. Comme l'exige [RFC4566], section 5.13, les lignes d'attribut inconnues DOIVENT être ignorées.
Une fois toutes les lignes au niveau session analysées, le traitement continue avec les lignes des sections m=.