Formato SDP per piano unificato - Piano di transizione

Google ha in programma di eseguire la transizione dell'implementazione WebRTC di Chrome dall'attuale formato SDP (piano B) a un formato conforme allo standard ("Piano unificato", bozza-ietf-rtcweb-jsep) nel corso dei prossimi due trimestri.

Il piano prevede cinque fasi e una funzionalità API temporanea.

Chi sarà interessato

Gli utenti che utilizzano più tracce audio o più tracce video in un'unica sessione di peerpeer devono testare il prodotto in base al piano unificato e adattarlo di conseguenza. Nel caso in cui una chiamata venga avviata da un endpoint non Chrome e risponda a Chrome, la forma dell'offerta potrebbe cambiare. Gli utenti che eseguono analisi dettagliate dei file SDP e si interessano degli attributi msid dovranno verificare che il proprio codice di analisi rilevi il nuovo formato (a=msid). I dettagli relativi alle eventuali modifiche necessarie e alle modalità di modifica delle app dipendono dall'applicazione. Riteniamo che quasi tutte le applicazioni che utilizzano un solo audio e una sola traccia video per RTCPeerConnection non saranno interessate dalla modifica.

La funzionalità API

Stiamo aggiungendo una nuova funzionalità alla configurazione RTC di RTCPeerConnection:

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


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

La RTCConfiguration può essere trasmessa al costruttore di una RTCPeerConnection, mentre tutte le offerte e le risposte create saranno in formato Piano unificato. Le chiamate a setLocalDescription e setRemoteDescription si aspettano anche in formato Unified Plan; se sono nel formato Chrome precedente, verranno ignorate tutte le tracce tranne la prima e la prima traccia video.

C'è anche un flag della riga di comando (–enable-features=RTCUnifiedPlanByDefault in Chrome M71 e versioni successive, –enable-blink-features=RTCUnifiedPlanByDefault nelle versioni precedenti) che consente di impostare il valore predefinito di questo flag su "unified-plan".

Le fasi

Fase 1. Implementa il piano unificato

In questa fase, il piano unificato è stato sviluppato in base a un flag di sperimentazione disponibile da M65. Fino alla fase 2, era saggio eseguire test con Chrome Canary tramite "-enable-blink-features=RTCUnifiedPlan".

Fase 2: rendi disponibile pubblicamente la funzionalità API

Rilasciato in M69 (beta agosto 2018, stabile di settembre 2018)

In questa fase, il valore predefinito del flag sdpSemantics era "plan-b". Nella fase 2, le persone che avevano implementazioni che facevano affidamento sul formato SDP dovevano eseguire i test per vedere se le loro applicazioni funzionano quando è in uso il piano unificato. Per le applicazioni che supportano Firefox, ci aspettiamo che questo sia un esercizio molto semplice, proprio come faresti per Firefox.

Il valore predefinito del flag sdpSemantics può essere modificato in "chrome://flags"; cerca la funzionalità "WebRTC: utilizza la semantica SDP del piano unificato per impostazione predefinita".

Fase 3: modifica l'impostazione predefinita

La data del passaggio era M72 (beta dicembre 2018, stabile di gennaio 2019).

In questa fase abbiamo modificato il valore predefinito del flag sdpSemantics in "unified-plan". Le applicazioni che hanno scoperto di aver bisogno di più tempo per generare una conversione hanno esplicitamente impostato il flag sdpSemantics in "plan-b" per recuperare il comportamento precedente.

Fase 4: realizza il piano “Piano B”

In questa fase, l'impostazione del flag sdpSemantics su "plan-b" comporta un'eccezione. È stato lanciato in Canary 93. A partire dalla versione M96, l'eccezione riguardava tutti i canali, incluso il canale stabile.

Durante questa fase era disponibile una prova di ritiro che consentiva l'utilizzo del piano B senza la eccezione dell'eccezione, ma il 25 maggio 2022 la prova ha smesso di funzionare.

Fase 5. Rimuovi "Piano B" da Chromium

Al termine del periodo di prova, il Piano B verrà rimosso da Chrome. A questo punto, il flag sdpSemantics verrà rimosso. Il tentativo di impostarlo su "plan-b" non genererà un'eccezione, ma non avrà più alcun effetto.

Il piano B è ancora disponibile dietro flag speciali o build speciali, ma la rimozione completa del codice avverrà nella seconda metà del 2022.

Fase 6. Ritiro e rimozione del piano "Plan B" da WebRTC

Il piano B è già contrassegnato come ritirato in WebRTC, ma è ancora disponibile. La rimozione dovrebbe avvenire nel 2023.

Preparazione della richiesta per il piano unificato

Per informazioni dettagliate sulle differenze tra il piano B e il piano unificato e su come potrebbe essere necessario aggiornare l'applicazione per prepararti al piano unificato, consulta la guida alla transizione (JavaScript) del "piano unificato".

Per le applicazioni native (C++), consulta il documento "Migrazione dell'applicazione nativa/per dispositivi mobili al piano unificato"