Format SDP Unified Plan - rencana transisi

Google berencana untuk mentransisikan penerapan WebRTC Chrome dari format SDP saat ini (disebut “Rencana B”) dengan format yang sesuai standar (“Paket Terpadu”, draf-ietf-rtcweb-jsep) selama beberapa kuartal ke depan.

Rencana ini melibatkan 5 fase, dan satu fitur API sementara.

Siapa yang akan terpengaruh

Orang yang menggunakan beberapa trek audio atau beberapa trek video pada satu trek PeerConnection harus menguji produk mereka berdasarkan Rencana Terpadu, dan beradaptasi sebagaimana mestinya. Jika panggilan dimulai dari endpoint non-Chrome dan dibalas oleh Chrome, bentuk penawaran mungkin perlu diubah. Orang yang melakukan penguraian SDP terperinci dan memperhatikan atribut {i>msid<i} harus memeriksa kode penguraiannya akan mengambil format baru (a=msid). Detail tentang apakah perubahan diperlukan dan bagaimana aplikasi perlu diubah dependen. Kami berpikir bahwa hampir semua aplikasi yang hanya menggunakan satu audio dan satu trek video per RTCPeerConnection tidak akan terpengaruh oleh perubahan ini.

Fitur API

Kami menambahkan satu fitur baru ke RTCConfiguration RTCPeerConnection:

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


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

RTCConfiguration dapat diteruskan ke konstruktor RTCPeerConnection, dan semua penawaran serta jawaban yang dibuat akan dalam format Paket Terpadu. Panggilan ke setLocalDescription dan setRemoteDescription juga akan meminta SDP berada dalam format Rencana Terpadu; jika menggunakan format Chrome lama, semua kecuali trek audio pertama dan trek video pertama akan diabaikan.

Ada juga penanda baris perintah (–enable-features=RTCUnifiedPlanByDefault di Chrome M71 dan yang lebih baru, –enable-blink-features=RTCUnifiedPlanByDefault di versi sebelumnya) yang memungkinkan nilai default flag ini ditetapkan ke “rencana terpadu”.

Fase

Tahap 1: Menerapkan Rencana Terpadu

Pada fase ini, Rencana Terpadu dikembangkan di balik tanda eksperimentasi yang tersedia sejak M65. Sampai tahap 2, sebaiknya lakukan pengujian dengan Chrome Canary hingga tahap 2 menggunakan “–enable-blink-features=RTCUnifiedPlan”.

Tahap 2: Membuat fitur API tersedia secara umum

Dirilis di M69 (beta Agustus 2018, stabil September 2018)

Pada fase ini, nilai default flag sdpSemantics adalah “plan-b”. Di beberapa Tahap 2, orang-orang yang memiliki implementasi yang bergantung pada format SDP diharapkan menjalankan pengujian untuk melihat apakah aplikasi mereka berfungsi ketika Unified Plan diluncurkan gunakan. Untuk aplikasi yang mendukung Firefox, kami mengharapkan ini menjadi seperti yang Anda lakukan untuk Firefox.

Nilai default tanda sdpSemantics dapat diubah di “chrome://flags”; cari fitur “WebRTC: Use Unified Plan SDP Semantics by default”.

Fase 3: Mengganti default

Tanggal untuk peralihan adalah M72 (beta Desember 2018, stabil Januari 2019).

Pada fase ini, kita mengubah nilai default flag sdpSemantics menjadi “rencana terpadu”. Aplikasi yang menemukan bahwa mereka membutuhkan lebih banyak waktu untuk mengonversi tanda sdpSemantics secara eksplisit ke “plan-b” untuk memulihkan perilaku sebelumnya.

Tahap 4: Membuat “Rencana B”

Dalam fase ini, menyetel tanda sdpSemantics ke "plan-b" menghasilkan pengecualian yang ditampilkan. Fungsi ini telah ditampilkan di Canary dari M93. Mulai M96, pengecualian semua saluran, termasuk Stabil.

Selama fase ini, Uji Coba Penghentian Penggunaan tersedia yang diizinkan menggunakan Rencana B tanpa penambahan pengecualian tetapi uji coba berhenti berfungsi pada 25 Mei 2022.

Tahap 5: Menghapus “Rencana B” dari Chromium

Setelah uji coba berakhir, Paket B akan dihapus dari Chrome. Pada tahap ini, flag sdpSemantics akan dihapus. Mencoba menyetelnya ke "plan-b" tidak akan menampilkan pengecualian, tetapi tidak akan lagi berpengaruh.

Paket B masih tersedia dengan flag khusus atau build khusus tetapi penghapusan kode akan dilakukan pada Semester 2 2022.

Tahap 6: Menghentikan penggunaan dan menghapus ”Rencana B” dari WebRTC

Paket B sudah ditandai sebagai tidak digunakan lagi di WebRTC, tetapi paket tersebut masih tersedia. Penghapusan harus dilakukan pada tahun 2023.

Mempersiapkan Aplikasi Anda untuk Rencana Terpadu

Untuk informasi terperinci tentang perbedaan Rencana B dan Rencana Terpadu serta bagaimana aplikasi mungkin perlu diperbarui sebagai persiapan untuk rencana Terpadu, lihat Panduan Transisi “Rencana Terpadu” (JavaScript)

Untuk aplikasi native (C++), lihat dokumen “Memigrasikan aplikasi native/seluler ke Unified Plan”