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

4.1.8. createOffer

4.1.8. createOffer

createOffer メソッドは, [RFC3264] に従ったオファーを含む SDP のブロブを生成します。これには, この PeerConnection に追加されたメディアの説明, この実装でサポートされているコーデック, RTP, および RTCP オプション, ICE エージェントによって収集された候補など, セッションでサポートされている構成が含まれます。生成されたオファーに対する追加の制御を提供するために, オプションパラメータを指定できます。このオプションパラメータにより, アプリケーションは接続を再確立する目的で ICE 再起動をトリガーできます。

初期オファーでは, 生成された SDP にはセッションに必要なすべての機能が含まれます (デフォルトでサポートされているが必要でない機能は省略される場合があります)。各 SDP 行について, SDP の生成は, 指定された SDP 行を定義する仕様から初期オファーを生成するために定義されたプロセスに従います。初期オファー生成の正確な処理については, 以下のセクション 5.2.1 で詳しく説明されています。

セッションが確立された後に createOffer が呼び出された場合, createOffer は, セッションに加えられた変更 (RtpTransceiver の追加または停止, ICE 再起動の要求など) に基づいて現在のセッションを変更するオファーを生成します。既存の各ストリームについて, 各 SDP 行の生成は, 指定された SDP 行を指定する RFC から更新されたオファーを生成するために定義されたプロセスに従わなければなりません。新しい各ストリームについて, SDP の生成は, 上記のように初期オファーを生成するプロセスに従わなければなりません。変更が行われていない場合, または要求された変更の影響を受けない SDP 行の場合, オファーには最後のオファー/アンサー交換でネゴシエートされたパラメータのみが含まれます。後続のオファー生成の正確な処理については, 以下のセクション 5.2.2 で詳しく説明されています。

createOffer によって生成されたセッション記述は, setLocalDescription によってすぐに使用できなければなりません。システムのリソースが制限されている場合 (有限数のデコーダーなど), createOffer は, setLocalDescription がそれらのリソースを取得しようとするときに成功するように, システムの現在の状態を反映するオファーを返すべきです。

このメソッドを呼び出すと, 新しい ICE 資格情報の生成などが行われる場合がありますが, PeerConnection 状態を変更したり, 候補収集をトリガーしたり, メディアの流れの開始または停止を引き起こしたりすることはありません。具体的には, オファーは適用されず, setLocalDescription が呼び出されるまで保留中のローカル記述にはなりません。