5.8.2. Media Section Parsing
5.8.2. Media Section Parsing
Comme les lignes au niveau session, les lignes de section média (Media Section) DOIVENT apparaître dans l'ordre spécifique et avec la syntaxe spécifique définis dans [RFC4566], section 5.
La ligne m= elle-même DOIT être analysée comme décrit dans [RFC4566], section 5.14, et les valeurs <media>, <port>, <proto> et <fmt> stockées.
Après la ligne m=, un traitement spécifique DOIT être appliqué aux lignes non-attribut suivantes :
-
Comme pour la ligne
c=au niveau session, la lignec=DOIT être analysée selon [RFC4566], section 5.7, mais sa valeur n'est pas utilisée. -
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.
Un traitement spécifique DOIT aussi être appliqué aux lignes d'attribut suivantes :
-
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é. -
Tout attribut
a=candidateDOIT être analysé comme spécifié dans [RFC8839], section 5.1, et ses valeurs stockées. -
Tout attribut
a=remote-candidatesDOIT être analysé comme spécifié dans [RFC8839], section 5.2, mais ses valeurs sont ignorées. -
Si présent, un seul attribut
a=end-of-candidatesDOIT être analysé comme spécifié dans [RFC8840], section 8.1, et sa présence ou absence est marquée et stockée. -
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 la valeur <proto> de m= indique l'utilisation de RTP, comme décrit en section 5.1.2, les lignes d'attribut suivantes DOIVENT être traitées :
-
La valeur
<fmt>dem=DOIT être analysée comme spécifié dans [RFC4566], section 5.14, et les valeurs individuelles stockées. -
Toute ligne
a=rtpmapoua=fmtpDOIT être analysée comme spécifié dans [RFC4566], section 6, et ses valeurs stockées. -
Si présente, une seule ligne
a=ptimeDOIT être analysée comme décrit dans [RFC4566], section 6, et sa valeur stockée. -
Si présente, une seule ligne
a=maxptimeDOIT être analysée comme décrit dans [RFC4566], section 6, et sa valeur stockée. -
Si présente, une seule ligne d'attribut de direction (par ex.
a=sendrecv) DOIT être analysée comme décrit dans [RFC4566], section 6, et sa valeur stockée. -
Tout attribut
a=ssrcDOIT être analysé comme spécifié dans [RFC5576], section 4.1, et ses valeurs stockées. -
Tout attribut
a=extmapDOIT être analysé comme spécifié dans [RFC5285], section 5, et ses valeurs stockées. -
Tout attribut
a=rtcp-fbDOIT être analysé comme spécifié dans [RFC4585], section 4.2, et ses valeurs stockées. -
Si présent, un seul attribut
a=rtcp-muxDOIT être analysé comme spécifié dans [RFC5761], section 5.1.3, et sa présence ou absence est marquée et stockée. -
Si présent, un seul attribut
a=rtcp-mux-onlyDOIT être analysé comme spécifié dans [RFC8858], section 3, et sa présence ou absence est marquée et stockée. -
Si présent, un seul attribut
a=rtcp-rsizeDOIT être analysé comme spécifié dans [RFC5506], section 5, et sa présence ou absence est marquée et stockée. -
Si présent, un seul attribut
a=rtcpDOIT être analysé comme spécifié dans [RFC3605], section 2.1, mais sa valeur est ignorée, car cette information est superflue avec ICE. -
Si présents, les attributs
a=msidDOIVENT être analysés comme spécifié dans [RFC8830], section 3.2, et leurs valeurs stockées, en ignorant tout champappdata. S'il n'y a aucun attributa=msid, une valeur msid-id aléatoire est générée pour un MediaStreamdefaultde la session, si elle n'existe pas déjà, et cette valeur est stockée. -
Tout attribut
a=imageattrDOIT être analysé comme spécifié dans [RFC6236], section 3, et ses valeurs stockées. -
Toute ligne
a=ridDOIT être analysée comme spécifié dans [RFC8851], section 10, et ses valeurs stockées. -
Si présente, une seule ligne
a=simulcastDOIT être analysée comme spécifié dans [RFC8853], et ses valeurs stockées.
Sinon, si la valeur <proto> de m= indique l'utilisation de SCTP, les lignes d'attribut suivantes DOIVENT être traitées :
-
La valeur
<fmt>dem=DOIT être analysée comme spécifié dans [RFC8841], section 4.3, et la valeur du protocole d'application stockée. -
Un attribut
a=sctp-portDOIT être présent, et il DOIT être analysé comme spécifié dans [RFC8841], section 5.2, et la valeur stockée. -
Si présent, un seul attribut
a=max-message-sizeDOIT être analysé comme spécifié dans [RFC8841], section 6, et la valeur stockée. Sinon, utiliser la valeur par défaut spécifiée.
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.