メインコンテンツまでスキップ

5.2.2. Subsequent Offers (後続オファー)

5.2.2. Subsequent Offers (後続オファー)

createOffer が 2 回目 (またはそれ以降) に呼び出された場合, またはローカル記述が既にインストールされた後に呼び出された場合, 処理は初期オファーとは多少異なります。

前のオファーが setLocalDescription を使用して適用されていない場合, つまり PeerConnection がまだ "stable" 状態にある場合, 初期オファーを生成するステップに従わなければなりませんが, 以下の制限に従います:

  • "o=" 行のフィールドは同じままでなければなりませんが, <session-version> フィールドは例外で, オファーが前回の createOffer 呼び出しの出力と異なる可能性がある場合, createOffer の各呼び出しで 1 ずつ増加しなければなりません; 実装は毎回 <session-version> を増加させることを選択してもかまいません。

前のオファーが setLocalDescription を使用して適用されたが, リモート側からの対応するアンサーがまだ適用されていない場合, つまり PeerConnection がまだ "have-local-offer" 状態にある場合, 上記の "stable" 状態のステップに従ってオファーが生成されますが, 以下の例外があります:

  • "s=" および "t=" 行は同じままでなければなりません。
  • 各 "a=mid" 行は同じままでなければなりません。
  • 各 "a=ice-ufrag" および "a=ice-pwd" 行は同じままでなければなりません, ただし ICE 構成が変更されたか IceRestart オプションが指定された場合を除きます。
  • まだ存在する RtpTransceiver については, "a=rid" 行は同じままでなければなりません。
  • まだ存在する RtpTransceiver については, 任意の "a=simulcast" 行は同じままでなければなりません。