4.1.19. addIceCandidate
4.1.19. addIceCandidate
addIceCandidate メソッドは, IceCandidate オブジェクト (セクション 3.5.2.1) を介して ICE エージェントに更新を提供します。IceCandidate の candidate フィールドが非 null の場合, IceCandidate は新しいリモート ICE 候補として扱われ, Trickle ICE に対して定義されたルールに従って現在および/または保留中のリモート記述に追加されます。それ以外の場合, IceCandidate は, [RFC8838] のセクション 14 で定義されているように, 候補終了指示として扱われます。
いずれの場合も, 提供された IceCandidate からの "m=" セクションインデックス, MID, および ufrag フィールドを使用して, IceCandidate がどの "m=" セクションおよび ICE 候補生成に属するかを判断します。これについては上記のセクション 3.5.2.1 で説明されています。候補終了指示の場合, "m=" セクションインデックスと MID フィールドの null 値は, 指示が指定された ICE 候補生成のすべての "m=" セクションに適用されることを意味すると解釈されます。ただし, 新しいリモート候補の両方のフィールドが null の場合, 以下で指定されているように, これは無効な条件として扱われなければなりません。
IceCandidate フィールドに無効な値が含まれているか, IceCandidate オブジェクトの処理中にエラーが発生した場合, 提供された IceCandidate は無視されなければならず, エラーが返されなければなりません。
それ以外の場合, 新しいリモート候補または候補終了指示が ICE エージェントに提供されます。新しいリモート候補の場合, setLocalDescription がすでに呼び出されて ICE 収集プロセスを初期化していると仮定すると, 新しい候補に接続チェックが送信されます。