Format SDP Unified Plan - rencana transisi

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

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 PeerConnection harus menguji produk mereka di Paket Terpadu, dan beradaptasi dengan sesuai. Jika panggilan dimulai dari endpoint non-Chrome dan dibalas oleh Chrome, bentuk penawaran mungkin harus berubah. Orang yang melakukan penguraian SDP mendetail dan memperhatikan atribut msid harus memastikan bahwa kode penguraian mereka menggunakan format baru (a=msid). Detail terkait apakah perubahan akan diperlukan dan bagaimana aplikasi perlu diubah akan bergantung pada aplikasi. Menurut kami, hampir semua aplikasi yang hanya menggunakan satu audio dan satu trek video per RTCPeerConnection tidak akan terpengaruh oleh perubahan tersebut.

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 menggunakan format Paket Terpadu. Panggilan ke setLocalDescription dan setRemoteDescription juga akan memperkirakan SDP berupa format Rencana Terpadu; jika menggunakan format Chrome lama, semua kecuali trek audio pertama dan trek video pertama akan diabaikan.

Ada juga tanda command line (–enable-features=RTCUnifiedPlanByDefault di Chrome M71 dan yang lebih baru, –enable-blink-features=RTCUnifiedPlanByDefault di versi sebelumnya) yang memungkinkan nilai default tanda ini ditetapkan ke “paket terpadu”.

Fase

Tahap 1: Menerapkan Rencana Terpadu

Pada fase ini, Paket Terpadu dikembangkan di balik flag eksperimen yang tersedia sejak M65. Hingga fase 2, sebaiknya lakukan pengujian dengan Chrome Canary menggunakan “–enable-blink-features=RTCUnifiedPlan”.

Tahap 2: Menjadikan fitur API tersedia secara umum

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

Pada fase ini, nilai default flag sdpSemantics adalah "plan-b". Pada Fase 2, orang yang memiliki implementasi yang bergantung pada format SDP diharapkan menjalankan pengujian untuk melihat apakah aplikasi mereka berfungsi saat Paket Terpadu sedang digunakan. Untuk aplikasi yang mendukung Firefox, kami berharap ini menjadi latihan yang sangat sederhana: lakukan seperti yang Anda lakukan untuk Firefox.

Nilai default flag sdpSemantics dapat diubah di "chrome://flags"; cari fitur "WebRTC: Use Unified Plan SDP Semantics secara default".

Tahap 3: Mengalihkan default

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

Pada tahap ini, kami mengubah nilai default flag sdpSemantics menjadi "unify-plan". Aplikasi yang mendapati bahwa mereka memerlukan lebih banyak waktu untuk mengonversi menetapkan flag sdpSemantics secara eksplisit menjadi "plan-b" untuk memulihkan perilaku sebelumnya.

Tahap 4: Menampilkan “Rencana B”

Pada fase ini, menyetel flag sdpSemantics ke "plan-b" menghasilkan pengecualian yang dilempar. Gambar dilempar dari Canary dari M93. Mulai M96, pengecualian ditampilkan di semua saluran, termasuk Stabil.

Selama tahap ini, tersedia Uji Coba Penghentian yang memungkinkan penggunaan Paket B tanpa 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 memunculkan pengecualian, tetapi tidak akan berpengaruh lagi.

Rencana B masih tersedia di balik tanda khusus atau build khusus, tetapi akan dihapus sepenuhnya pada H2 tahun 2022.

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

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

Menyiapkan Aplikasi untuk Rencana Terpadu

Untuk mengetahui informasi mendetail tentang perbedaan Paket B dan Rencana Terpadu dan bagaimana aplikasi Anda 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 Paket Terpadu”