Birleştirilmiş Plan SDP biçimi - geçiş planı

Google, önümüzdeki birkaç çeyrekte Chrome'un WebRTC uygulamasını mevcut SDP biçiminden ("B Planı" olarak adlandırılır) standartlara uygun bir biçime ("Birleştirilmiş Plan", draft-ietf-rtcweb-jsep) geçirmeyi planlıyor.

Plan 5 aşama ve bir geçici API özelliği içerir.

Etkilenenler

Tek bir PeerConnection'da birden fazla ses parçası veya birden fazla video parçası kullananların ürünlerini Birleşik Plan kapsamında test etmeleri ve buna göre uyum sağlamaları gerekir. Chrome dışında bir uç noktadan başlatılan ve Chrome tarafından yanıtlanan bir çağrının olması durumunda teklifin biçiminin değiştirilmesi gerekebilir. Ayrıntılı SDP ayrıştırması yapan ve msid özellikleriyle ilgilenen kullanıcıların, ayrıştırma kodlarının yeni biçimi (a=msid) aldığını kontrol etmesi gerekir. Değişiklik gerekip gerekmediği ve uygulamaların nasıl değiştirilmesi gerektiğiyle ilgili ayrıntılar uygulamaya bağlıdır. RTCPeerConnection başına yalnızca tek bir ses ve tek bir video parçası kullanan neredeyse tüm uygulamaların bu değişiklikten etkilenmeyeceğini düşünüyoruz.

API özelliği

RTCPeerConnection'ın RTCConfiguration özelliğine yeni bir özellik ekliyoruz:

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


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

RTCConfiguration, bir RTCPeerConnection'ın kurucusuna iletilebilir ve oluşturulan tüm teklifler ve yanıtlar Birleşik Plan biçiminde olur. setLocalDescription ve setRemoteDescription çağrılarında SDP'nin Unified Plan biçiminde olması da beklenir. Eski Chrome biçimindeyse ilk ses parçası ve ilk video parçası dışındaki tüm parçalar yoksayılır.

Ayrıca, bu işaretin varsayılan değerinin "unified-plan" olarak ayarlanmasına olanak tanıyan bir komut satırı işareti de vardır (Chrome M71 ve sonraki sürümlerde –enable-features=RTCUnifiedPlanByDefault, önceki sürümlerde –enable-blink-features=RTCUnifiedPlanByDefault).

Aşamalar

1. Aşama: Birleşik Plan'ı uygulama

Bu aşamada Birleşik Plan, M65'ten beri kullanılabilen bir deneme işareti altında geliştiriliyordu. 2. aşamaya kadar, "–enable-blink-features=RTCUnifiedPlan" seçeneğini kullanarak Chrome Canary ile test etmek en iyi seçenekti.

2. Aşama: API özelliğini genel kullanıma sunma

M69'da yayınlandı (Ağustos 2018'de beta, Eylül 2018'de kararlı)

Bu aşamada, sdpSemantics işaretinin varsayılan değeri "plan-b" idi. 2. Aşama'da, SDP biçimine dayalı uygulamaları olan kullanıcıların, Birleşik Plan kullanılırken uygulamalarının çalışıp çalışmadığını görmek için testler çalıştırması bekleniyordu. Firefox'u destekleyen uygulamalarda bu işlemin çok basit olacağını umuyoruz. Firefox'ta yaptığınız gibi işlem yapmanız yeterlidir.

sdpSemantics işaretinin varsayılan değeri "chrome://flags" adresinde değiştirilebilir. "WebRTC: Varsayılan olarak birleşik plan SDP semantiğini kullan" özelliğini bulun.

3. Aşama: Varsayılan ayarı değiştirin

Geçiş tarihi M72 idi (Aralık 2018'de beta, Ocak 2019'da kararlı).

Bu aşamada, sdpSemantics işaretinin varsayılan değerini "unified-plan" olarak değiştirdik. Dönüşüm için daha fazla zamana ihtiyaç duyduklarını fark eden uygulamalar, önceki davranışı kurtarmak amacıyla sdpSemantics işaretini açıkça "plan-b" olarak ayarladı.

4. Aşama: "B Planı"nı atın

Bu aşamada, sdpSemantics işaretinin "plan-b" olarak ayarlanması bir istisna atılmasına neden olur. M93'ten beri Canary'da bu sorunla karşılaşıyoruz. M96'dan itibaren istisna, kararlı sürüm dahil tüm kanallarda ortaya çıkıyordu.

Bu aşamada, istisna atlamadan B planını kullanmaya olanak tanıyan bir Destek Sonu Deneme Sürümü mevcuttu ancak deneme sürümü 25 Mayıs 2022'de çalışmayı durdurdu.

5. Aşama: "Plan B"yi Chromium'dan kaldırın

Deneme süresi sona erdikten sonra B planı Chrome'dan kaldırılır. Bu noktada sdpSemantics işareti kaldırılır. "plan-b" olarak ayarlamaya çalıştığınızda istisna oluşmaz ancak artık hiçbir etkisi olmaz.

Plan B, özel işaretler veya özel derlemeler üzerinden hâlâ kullanılabilir ancak kodun tamamı 2022'nin 2. yarısında kaldırılacaktır.

6. Aşama: "B Planı"nın desteğini sonlandırma ve WebRTC'den kaldırma

Plan B, WebRTC'de desteği sonlandırılmış olarak işaretlenmiş olsa da hâlâ kullanılabilir. Kaldırma işlemi 2023'te yapılacak.

Uygulamanızı Birleşik Plan İçin Hazırlama

B Planı ile Birleştirilmiş Plan arasındaki farklar ve Birleştirilmiş Plan'a hazırlanırken uygulamanızın nasıl güncellenmesi gerektiği hakkında ayrıntılı bilgi için "Birleştirilmiş Plan" Geçiş Kılavuzu'na (JavaScript) bakın.

Yerel (C++) uygulamalar için "Yerel/mobil uygulamanızı Birleşik Plan'a taşıma" başlıklı dokümana bakın.