Format SDP ujednoliconego planu – plan przejścia

Google planuje w ciągu najbliższych kilku kwartałów przenieść wdrożenie WebRTC w Chrome z obecnego formatu SDP (zwanego „Planem B”) do formatu zgodnego ze standardem („Ujednolicony plan”, „robat-ietf-rtcweb-jsep”).

Abonament składa się z 5 etapów i 1 przejściowej funkcji interfejsu API.

Kogo to dotyczy

Osoby używające wielu ścieżek audio lub wielu ścieżek wideo w jednym PeerConnection muszą przetestować swój produkt w ramach ujednoliconego planu i dostosować się do niego. Jeśli połączenie zostanie zainicjowane z punktu końcowego innego niż Chrome i zostanie odebrane przez Chrome, forma oferty może ulec zmianie. Osoby, które szczegółowo analizują pliki SDP i zajmują się atrybutami msid, muszą sprawdzić, czy ich kod analizy pobiera nowy format (a=msid). Szczegóły dotyczące tego, czy trzeba będzie wprowadzić zmiany i jak trzeba je wprowadzić, będą zależały od aplikacji. Sądzimy, że ta zmiana nie wpłynie na prawie wszystkie aplikacje, które używają tylko 1 dźwięku i jednej ścieżki wideo na RTCPeerConnection.

Funkcja interfejsu API

Dodajemy jedną nową funkcję do RTCConfiguration konfiguracji RTCPeerConnection:

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


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

Wartość RTCConfiguration można przekazać do konstruktora połączenia RTCPeerConnection, a wszystkie oferty i odpowiedzi są w formacie ujednoliconego planu. Wywołania setLocalDescription i setRemoteDescription będą także miały format ujednoliconego planu. Jeśli jest on w starszym formacie Chrome, wtedy wszystkie ścieżki audio oraz pierwsza ścieżka wideo zostaną zignorowane.

Istnieje też flaga wiersza polecenia (–enable-features=RTCUnifiedPlanByDefault w Chrome M71 i nowszych wersjach – --enable-blink-features=RTCUnifiedPlanByDefault w starszych wersjach), która pozwala ustawić wartość domyślną tej flagi na „unified-plan”.

Fazy

Etap 1. Wdrożenie ujednoliconego planu

W ramach tej fazy generowaliśmy ujednolicony plan, wykorzystując flagę eksperymentu dostępną od wersji M65. Do czasu, aż doszło do etapu 2, najlepiej było przeprowadzić testy w Chrome Canary za pomocą „-enable-blink-features=RTCUnifiedPlan”.

Etap 2. Udostępnienie funkcji interfejsu API

Data wydania: M69 (wersja beta, sierpień 2018 r., stabilna wrzesień 2018 r.)

Na tym etapie domyślną wartością flagi sdpSemantics była „plan-b”. W drugiej fazie osoby korzystające z formatów zależnych od formatu SDP powinny wykonać testy, aby sprawdzić, czy ich aplikacje działają w ramach ujednoliconego abonamentu. W przypadku aplikacji obsługujących Firefoksa oczekujemy, że korzystanie z tej funkcji będzie bardzo proste.

Domyślną wartość flagi sdpSemantics można zmienić na „chrome://flags”. Poszukaj funkcji „WebRTC: Use Unified Plan SDP Semantics domyślnie”.

Etap 3. Przełącz domyślny

Data przeniesienia to M72 (wersja beta grudzień 2018, stabilna styczeń 2019).

Na tym etapie zmieniliśmy domyślną wartość flagi sdpSemantics na „ujednolicony plan”. Aplikacje, które odkryły, że potrzebują więcej czasu na konwersję, powinny ustawić flagę sdpSemantics wyraźnie na „plan-b”, by przywrócić wcześniejsze zachowanie.

Etap 4. Odrzucanie „Planu B”

Na tym etapie ustawienie flagi sdpSemantics na „"plan-b"” powoduje zgłoszenie wyjątku. W Canary rzucił czapkę z wersji M93. Od wersji M96 wyjątek dotyczy wszystkich kanałów, w tym wersji stabilnych.

Na tym etapie dostępna była wersja próbna, która pozwalała na korzystanie z planu B bez wyjątku, ale wersja próbna przestała działać 25 maja 2022 r.

Etap 5. Usuń „Plan B” z Chromium

Po zakończeniu okresu próbnego abonament B zostanie usunięty z Chrome. W tym momencie flaga sdpSemantics zostanie usunięta. Próba ustawienia go jako „"plan-b&quot” nie spowoduje wyjątku, ale nie przyniesie żadnego efektu.

Plan B jest nadal dostępny za pomocą specjalnych flag lub specjalnych kompilacji, ale pełne usunięcie kodu nastąpi w drugiej połowie 2022 r.

Etap 6. Wycofywanie „Planu B” z WebRTC

Plan B jest już oznaczony jako wycofany w WebRTC, ale nadal jest dostępny. Usunięcie powinno nastąpić w 2023 r.

Przygotowanie aplikacji do ujednoliconego planu

Szczegółowe informacje o różnicach między planem B a abonamentem ujednoliconym oraz o tym, jak może być konieczne zaktualizowanie aplikacji, aby przygotować się do ujednoliconego planu, znajdziesz w przewodniku na temat przejścia na ujednolicony abonament (JavaScript).

Informacje o aplikacjach natywnych (C++) znajdziesz w artykule Migracja aplikacji natywnej lub mobilnej do ujednoliconego abonamentu.