Unified Plan SDP-Format – Umstellungsplan

Google plant in den nächsten Quartalen, die WebRTC-Implementierung von Chrome vom aktuellen SDP-Format („Plan B“) auf das Standardformat „Unified Plan“ (entwurf-ietf-rtcweb-jsep) umzustellen.

Der Plan umfasst fünf Phasen und eine vorübergehende API-Funktion.

Wer ist betroffen?

Nutzer, die mehrere Audiotracks oder mehrere Videotracks in einer PeerConnection verwenden, müssen ihr Produkt im Unified Plan testen und sich entsprechend anpassen. Falls ein Anruf von einem Nicht-Chrome-Endpunkt initiiert und von Chrome beantwortet wird, muss sich möglicherweise die Angebotsform ändern. Nutzer, die ein ausführliches SDP-Parsing durchführen und sich über msid-Attribute kümmern, müssen prüfen, ob ihr Parsing-Code das neue Format (a=msid) erkennt. Die Einzelheiten, ob Änderungen erforderlich sind und wie die Anwendungen geändert werden müssen, sind von der Anwendung abhängig. Wir sind der Meinung, dass fast alle Anwendungen, die nur ein einzelnes Audio und einen einzelnen Videotrack pro RTCPeerConnection verwenden, von der Änderung nicht betroffen sind.

API-Funktion

Wir fügen der RTCPeerConnection-Funktion eine RTC-Funktion hinzu:

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


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

Die RTCConfiguration kann an den Konstruktor einer RTCPeerConnection übergeben werden. Alle Angebote und Antworten werden im Format "Unified Plan" erstellt. Bei Aufrufen von setLocalDescription und setRemoteDescription wird ebenfalls erwartet, dass der SDP das Unified Plan-Format hat. Wenn er das alte Chrome-Format aufweist, werden alle bis auf den ersten Audio- und der erste Videotrack ignoriert.

Mit dem Befehlszeilen-Flag „-enable-features=RTCUnifiedPlanByDefault in Chrome M71 und höher –enable-blink-features=RTCUnifiedPlanByDefault“ in früheren Versionen kann der Standardwert dieses Flags auf „Unify-Plan“ festgelegt werden.

Phasen

Phase 1: Implementierung des einheitlichen Plans

In dieser Phase wurde der einheitliche Plan hinter einem Test-Flag entwickelt, das seit M65 verfügbar ist. Bis zu Phase 2 war es sinnvoll, den Test mit Chrome Canary über „-enable-blink-features=RTCUnifiedPlan“ durchzuführen.

Phase 2: API-Funktion allgemein verfügbar machen

Verfügbar in M69 (Beta: August 2018, stabile September 2018)

In dieser Phase war der Standardwert des sdpSemantics-Flags "plan-b". In Phase 2 sollten Nutzer, die Implementierungen hatten, die vom SDP-Format abhängig waren, Tests durchführen, um festzustellen, ob ihre Anwendungen beim einheitlichen Plan verwendet werden. Bei Anwendungen, die Firefox unterstützen, ist die Übung sehr einfach:

Der Standardwert des Flags „sdpSemantics“ kann in „chrome://flags“ geändert werden. Suchen Sie dazu die Funktion „WebRTC: Use Unified Plan SDP Semantics by default“.

Phase 3: Standardeinstellungen ändern

Das Datum der Umstellung war M72 (Beta: Dezember 2018 und stabiler Januar 2019).

In dieser Phase haben wir den Standardwert des sdpSemantics-Flags in „unify-plan“ geändert. Anwendungen, die erkannten, dass mehr Zeit für die Konvertierung benötigt wurde, setzen das sdpSemantics-Flag explizit auf „plan-b“, um das vorherige Verhalten wiederherzustellen.

Phase 4: Den Plan „B“ übernehmen

In dieser Phase wird durch das Festlegen des Flags „sdpSemantics“ auf „plan-b“ eine Ausnahme ausgelöst. Sie wurde von M93 auf die Kanarische Halbinsel werfen. Seit M96 wurde die Ausnahme in allen Kanälen ausgelöst, einschließlich der stabilen Version.

In dieser Phase war ein Testzeitraum verfügbar, der die Verwendung von Plan B ohne das Ausnahmeverhalten ermöglichte. Die Testversion funktionierte jedoch am 25. Mai 2022 nicht mehr.

Phase 5: Entfernen Sie „Plan B“ aus Chromium.

Nach Ablauf des Testzeitraums wird Tarif B aus Chrome entfernt. An dieser Stelle wird das Flag „sdpSemantics“ entfernt. Der Versuch, den Wert auf „plan-b“ festzulegen, führt nicht zu einer Ausnahme, hat aber keine Auswirkung mehr.

Plan B ist weiterhin nach speziellen Flags oder speziellen Builds verfügbar, aber der vollständige Code wird im zweiten Halbjahr 2022 entfernt.

Phase 6: Plan B in WebRTC einstellen und entfernen

Plan B ist bereits in WebRTC als veraltet markiert, aber er ist noch verfügbar. 2023 sollte sie wieder entfernt werden.

Anwendung für den einheitlichen Plan vorbereiten

Ausführliche Informationen zu den Unterschieden zwischen Plan B und Unified Plan und dazu, wie Ihre Anwendung möglicherweise in Vorbereitung auf den einheitlichen Plan aktualisiert werden muss, finden Sie im Leitfaden zur Umstellung auf den einheitlichen Plan (JavaScript).

Informationen zu nativen C++-Anwendungen finden Sie im Dokument „Native/mobile Anwendungen zu Unified Plan migrieren“.