5.8.2. Media Section Parsing (メディアセクションの解析)
5.8.2. Media Section Parsing (メディアセクションの解析)
セッションレベルの行と同様に, メディアセクション (Media Section) の行は, [RFC4566] のセクション 5 で定義される特定の順序と特定の構文で現れなければならない.
m= 行自体は [RFC4566] のセクション 5.14 の記述に従って解析し, <media>, <port>, <proto>, および <fmt> の値を格納しなければならない.
m= 行の後に, 次の非属性行に特定の処理を適用しなければならない.
-
セッションレベルの
c=行と同様に,c=行は [RFC4566] のセクション 5.7 に従って解析しなければならないが, その値は用いられない. -
存在する場合,
b=行は [RFC4566] のセクション 5.8 のとおり解析し, bwtype および bandwidth の値を格納しなければならない.
次の属性行にも特定の処理を適用しなければならない.
-
存在する場合, 単一の
a=ice-ufrag行は [RFC8839] のセクション 5.4 のとおり解析し, ufrag 値を格納する. -
存在する場合, 単一の
a=ice-pwd行は [RFC8839] のセクション 5.4 のとおり解析し, パスワード値を格納する. -
存在する場合, 単一の
a=ice-options行は [RFC8839] のセクション 5.6 のとおり解析し, 指定されたオプションの集合を格納する. -
すべての
a=candidate属性は [RFC8839] のセクション 5.1 のとおり解析し, その値を格納しなければならない. -
すべての
a=remote-candidates属性は [RFC8839] のセクション 5.2 のとおり解析しなければならないが, その値は無視する. -
存在する場合, 単一の
a=end-of-candidates属性は [RFC8840] のセクション 8.1 のとおり解析し, その有無をフラグして格納しなければならない. -
すべての
a=fingerprint行は [RFC8122] のセクション 5 のとおり解析し, フィンガープリントとアルゴリズム値の集合を格納する.
m= の <proto> 値が RTP の使用を示す場合 (セクション 5.1.2 の記述), 次の属性行を処理しなければならない.
-
m=の<fmt>値は [RFC4566] のセクション 5.14 のとおり解析し, 個々の値を格納しなければならない. -
すべての
a=rtpmapまたはa=fmtp行は [RFC4566] のセクション 6 のとおり解析し, その値を格納しなければならない. -
存在する場合, 単一の
a=ptime行は [RFC4566] のセクション 6 の記述に従って解析し, その値を格納しなければならない. -
存在する場合, 単一の
a=maxptime行は [RFC4566] のセクション 6 の記述に従って解析し, その値を格納しなければならない. -
存在する場合, 単一の方向属性行 (例:
a=sendrecv) は [RFC4566] のセクション 6 の記述に従って解析し, その値を格納しなければならない. -
すべての
a=ssrc属性は [RFC5576] のセクション 4.1 のとおり解析し, その値を格納しなければならない. -
すべての
a=extmap属性は [RFC5285] のセクション 5 のとおり解析し, その値を格納しなければならない. -
すべての
a=rtcp-fb属性は [RFC4585] のセクション 4.2 のとおり解析し, その値を格納しなければならない. -
存在する場合, 単一の
a=rtcp-mux属性は [RFC5761] のセクション 5.1.3 のとおり解析し, その有無をフラグして格納しなければならない. -
存在する場合, 単一の
a=rtcp-mux-only属性は [RFC8858] のセクション 3 のとおり解析し, その有無をフラグして格納しなければならない. -
存在する場合, 単一の
a=rtcp-rsize属性は [RFC5506] のセクション 5 のとおり解析し, その有無をフラグして格納しなければならない. -
存在する場合, 単一の
a=rtcp属性は [RFC3605] のセクション 2.1 のとおり解析しなければならないが, ICE 使用時はこの情報は冗長であるためその値は無視する. -
存在する場合,
a=msid属性は [RFC8830] のセクション 3.2 のとおり解析し, 任意のappdataフィールドは無視してその値を格納しなければならない.a=msid属性がない場合, セッション用のdefaultMediaStream に対してランダムな msid-id 値を (まだなければ) 生成し, その値を格納する. -
すべての
a=imageattr属性は [RFC6236] のセクション 3 のとおり解析し, その値を格納しなければならない. -
すべての
a=rid行は [RFC8851] のセクション 10 のとおり解析し, その値を格納しなければならない. -
存在する場合, 単一の
a=simulcast行は [RFC8853] のとおり解析し, その値を格納しなければならない.
そうでなく, m= の <proto> 値が SCTP の使用を示す場合, 次の属性行を処理しなければならない.
-
m=の<fmt>値は [RFC8841] のセクション 4.3 のとおり解析し, アプリケーションプロトコル値を格納しなければならない. -
a=sctp-port属性が存在しなければならず, [RFC8841] のセクション 5.2 のとおり解析し, その値を格納しなければならない. -
存在する場合, 単一の
a=max-message-size属性は [RFC8841] のセクション 6 のとおり解析し, その値を格納しなければならない. そうでなければ, 指定されたデフォルトを用いる.
JSEP に関連しない他の属性も存在しうる. 実装は, 認識できる属性は処理すべきである. [RFC4566] のセクション 5.13 で要求されるとおり, 未知の属性行は無視しなければならない.