統合プランの SDP の形式 - 移行計画

今後数四半期の間に、Chrome の WebRTC 実装を現在の SDP 形式(「プラン B」から)の標準準拠形式(「統合プラン」、draft-ietf-rtcweb-jsep)に移行する予定です。

この計画には 5 つのフェーズと 1 つの一時的な API 機能が含まれています。

影響を受けるユーザー

1 つの PeerConnection で複数の音声トラックまたは複数の動画トラックを使用する場合は、統合プランでプロダクトをテストし、それに応じて適応させる必要があります。Chrome 以外のエンドポイントから通話が開始され、Chrome から応答があった場合は、特典の形式を変更する必要があります。詳細な SDP 解析を行い、msid 属性に関心を持つユーザーは、解析コードが新しい形式(a=msid)を取得することを確認する必要があります。変更が必要かどうか、およびアプリの変更方法の詳細は、アプリケーションによって異なります。RTCPeerConnection ごとに 1 つの音声と 1 つの動画トラックのみを使用するほとんどのアプリは、この変更の影響を受けないと考えられます。

API 機能

RTCPeerConnection の RTCConfiguration に、以下の新機能が追加されました。

enum SdpSemantics {
  "plan-b",
  "unified-plan"
};


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

RTCConfiguration は、RTCPeerConnection のコンストラクタに渡すことができます。作成されたすべてのオファーと回答は、Unified Plan 形式になります。 また、setLocalDescription と setRemoteDescription の呼び出しでは、SDP が Unified Plan 形式であることも求められます。以前の Chrome 形式になっている場合は、最初の音声トラックと最初の動画トラックを除くすべては無視されます。

このフラグのデフォルト値を「unified-plan」に設定できるようにするコマンドライン フラグ(Chrome M71 以降の場合は –enable-features=RTCUnifiedPlanByDefault、以前のバージョンでは –enable-blink-features=RTCUnifiedPlanByDefault)もあります。

フェーズ

フェーズ 1: 統合プランの実装

このフェーズでは、統合プランは M65 以降で利用可能なテストフラグに基づいて開発されてきました。フェーズ 2 までは、「–enable-blink-features=RTCUnifiedPlan」を使用して Chrome Canary でテストするのが最も合理的でした。

フェーズ 2: API 機能の一般提供を開始する

M69 でリリース(ベータ版、2018 年 8 月、安定版 2018 年 9 月)

このフェーズでは、sdpSemantics フラグのデフォルト値は「plan-b」でした。フェーズ 2 では、SDP 形式に依存する実装を持つユーザーは、統合プランの使用時にアプリケーションの動作確認テストが期待されました。Firefox をサポートするアプリケーションについては、Firefox の場合と同様に、非常にシンプルな演習を行うことができます。

sdpSemantics フラグのデフォルト値は「chrome://flags」で変更できます。「WebRTC: Use Unified Plan SDP Semantics in default」を参照してください。

フェーズ 3: デフォルトを切り替える

切り替え日は M72(ベータ版 2018 年 12 月、安定版 2019 年 1 月)でした。

このフェーズでは、sdpSemantics フラグのデフォルト値を「unified-plan」に変更しました。以前の動作を回復するには、sdpSemantics フラグを明示的に「plan-b」に設定して、変換に時間がかかるとわかったアプリケーションです。

フェーズ 4: 「プラン B」をスローする

このフェーズでは、sdpSemantics フラグを &plant;plan-b に設定すると、例外がスローされます。M93 から Canary をスローしています。M96 の時点では、Stable を含むすべてのチャンネルで例外がスローされていました。

このフェーズでは、非推奨トライアルを利用しました。このトライアルでは、例外 B をスローすることなくプラン B を使用できましたが、トライアルは 2022 年 5 月 25 日に機能しなくなりました。

フェーズ 5: Chromium から「Plan B」を削除する

試用期間が終了すると、プラン B が Chrome から削除されます。この時点で、sdpSemantics フラグは削除されます。「plan-b」に設定しようとすると、例外はスローされませんが、効果はなくなります。

プラン B は特別なフラグまたは特別なビルドでも引き続き使用できますが、コードの完全な削除は 2022 年下半期に行われます。

フェーズ 6: WebRTC の「Plan B」のサポートを終了して削除する

プラン B はすでに WebRTC でサポート終了としてマークされていますが、引き続き利用できます。削除は 2023 年に行われる予定です。

統合プランに向けたアプリケーションの準備

プラン B と統合プランの違いと、統合プランに備える際のアプリケーションの更新方法の詳細については、「統合プラン」移行ガイド(JavaScript)をご覧ください。

ネイティブ(C++)アプリケーションの場合は、統合環境へのネイティブ/モバイル アプリケーションの移行に関するドキュメントをご覧ください。