5.8.1. Session-Level Parsing (セッションレベルの解析)
5.8.1. Session-Level Parsing (セッションレベルの解析)
まず, セッションレベル (Session-Level) の行が検査され解析される. これらの行は, [RFC4566] のセクション 5 で定義されるとおり, 特定の順序で, かつ特定の構文で現れなければならない. 具体的な行タイプ (例: v=, c=) は定義された順序で現れなければならないが, 同一タイプの行 (通常は a=) は任意の順序で現れてよいことに注意する.
次の非属性行は JSEP の文脈では意味を持たず, 検査後に破棄してもよい.
-
c=行は構文について検査しなければならないが, その値は [RFC8445] のセクション 5.4 で定義される ICE ミスマッチ検出にのみ用いられる. JSEP 実装は WebRTC で ICE が必須であるため, 通常この状態には遭遇しないはずである. -
i=,u=,e=,p=,t=,r=,z=, およびk=行は構文について検査しなければならないが, それ以外では値は用いられない.
残りの非属性行は次のとおり処理される.
-
v=行のバージョンは 0 でなければならない. [RFC4566] のセクション 5.1. -
o=行は [RFC4566] のセクション 5.2 のとおり解析しなければならない. -
存在する場合,
b=行は [RFC4566] のセクション 5.8 のとおり解析し, bwtype および bandwidth の値を格納しなければならない.
最後に属性行を処理する. 次のセッションレベル属性 (a=) 行には, 特定の処理を適用しなければならない.
-
すべての
a=group行は [RFC5888] のセクション 5 のとおり解析し, グループの意味論と mids を格納する. -
存在する場合, 単一の
a=ice-lite行は [RFC8839] のセクション 5.3 のとおり解析し, ice-lite の存在を示す値を格納する. -
存在する場合, 単一の
a=ice-ufrag行は [RFC8839] のセクション 5.4 のとおり解析し, ufrag 値を格納する. -
存在する場合, 単一の
a=ice-pwd行は [RFC8839] のセクション 5.4 のとおり解析し, パスワード値を格納する. -
存在する場合, 単一の
a=ice-options行は [RFC8839] のセクション 5.6 のとおり解析し, 指定されたオプションの集合を格納する. -
すべての
a=fingerprint行は [RFC8122] のセクション 5 のとおり解析し, フィンガープリントとアルゴリズム値の集合を格納する. -
存在する場合, 単一の
a=setup行は [RFC4145] のセクション 4 のとおり解析し, setup 値を格納する. -
存在する場合, 単一の
a=tls-id行は [RFC8842] のセクション 5 のとおり解析し, 属性値を格納する. -
すべての
a=identity行を解析し, 身元値を後続の検証のために格納する. [RFC8827] のセクション 5. -
すべての
a=extmap行は [RFC5285] のセクション 5 のとおり解析し, その値を格納する.
JSEP に関連しない他の属性も存在しうる. 実装は, 認識できる属性は処理すべきである. [RFC4566] のセクション 5.13 で要求されるとおり, 未知の属性行は無視しなければならない.
セッションレベルのすべての行の解析が完了すると, m= セクション内の行の処理が続く.