O Google planeja fazer a transição da implementação WebRTC do Chrome da o formato SDP atual (chamado de “Plano B”) para um formato em conformidade com os padrões (“Plano unificado”, rascunho-ietf-rtcweb-jsep) nos próximos dois trimestres.
O plano envolve cinco fases e um recurso de API temporário.
Quem vai ser afetado
Pessoas que usam várias faixas de áudio ou de vídeo em uma única A PeerConnection terá que testar o produto no plano unificado e se adaptar de maneira adequada. Quando uma chamada for iniciada de um endpoint que não seja do Chrome e respondidas pelo Chrome, talvez a forma da oferta precise ser alterada. Pessoas que fazer uma análise SDP detalhada e cuidar dos atributos msid terá que verificar se seu código de análise assume o novo formato (a=msid). Os detalhes sobre se mudanças serão necessárias e como os aplicativos precisam ser alterados serão aplicadas dependente. Acreditamos que quase todos os aplicativos que usam e uma única faixa de vídeo por RTCPeerConnection não será afetada pela mudança.
O recurso de API
Estamos adicionando um novo recurso à RTCConfiguration do RTCPeerConnection:
enum SdpSemantics {
"plan-b",
"unified-plan"
};
partial dictionary RTCConfiguration {
SdpSemantics sdpSemantics;
}
O RTCConfiguration pode ser passado para o construtor de um RTCPeerConnection, e todas as ofertas e respostas criadas estarão no formato do Plano unificado. As chamadas para setLocalDescription e setRemoteDescription também esperam o SDP. precisam estar no formato Plano unificado; se ele estiver no formato legado do Chrome, todas, exceto a primeira faixa de áudio e a primeira de vídeo, serão ignoradas.
Há também uma sinalização de linha de comando (–enable-features=RTCUnifiedPlanByDefault no Chrome M71 e mais recentes, –enable-blink-features=RTCUnifiedPlanByDefault em versões anteriores) que permite que o valor padrão dessa sinalização seja definido como "plano unificado".
As fases
Fase 1: implementar o plano unificado
Nesta fase, o plano unificado foi desenvolvido com uma sinalização de experimentação. disponíveis desde a versão M65. Até a fase 2, era mais aconselhável testar com o Chrome Canary usando “–enable-blink-features=RTCUnifiedPlan”.
Fase 2: disponibilizar o recurso da API para todos os usuários
Lançado na versão M69 (Beta de agosto de 2018, estável em setembro de 2018)
Nesta fase, o valor padrão da flag sdpSemantics era "plan-b". Em Fase 2, as pessoas que tinham implementações que dependiam do formato SDP foram devem executar testes para ver se os aplicativos funcionam com o Plano unificado usar. Para aplicativos que suportam o Firefox, esperamos que este seja um processo exercício: faça como faria com o Firefox.
O valor padrão da flag sdpSemantics pode ser alterado em "chrome://flags". procure o recurso “WebRTC: Usar a semântica SDP do plano unificado por padrão”.
Fase 3: mudar o padrão
A data da mudança foi o M72 (Beta, dezembro de 2018, estável: janeiro de 2019).
Nesta fase, mudamos o valor padrão da flag sdpSemantics para "plano unificado". Os aplicativos que descobriram que precisavam de mais tempo para converta a flag sdpSemantics explicitamente como "plan-b" para recuperar e comportamento anterior.
Fase 4: lance o "Plano B"
Nesta fase, definir a flag sdpSemantics como "plan-b" resulta em uma exceção sendo gerados. Ele tem sido lançado no Canary do M93. Na versão M96, a exceção era distribuído em todos os canais, incluindo o Stable.
Durante essa fase, um teste de descontinuação disponível e que permitia o uso do Plano B sem a geração de exceções, O teste parou de funcionar em 25 de maio de 2022.
Fase 5: remover o "Plano B" do Chromium
Após o fim desse período, o Plano B será removido do Chrome. Neste ponto, a sinalização sdpSemantics será removida. Tentar definir como "plan-b" não vai uma exceção será gerada, mas ela não terá mais efeito.
O Plano B ainda está disponível com flags ou builds especiais, mas o a remoção de código vai acontecer no segundo semestre de 2022.
Fase 6: descontinuar e remover o "Plano B" do WebRTC
O Plano B já está marcado como descontinuado no WebRTC, mas ainda está disponível. A remoção deve acontecer em 2023.
Como preparar seu aplicativo para o plano unificado
Para informações detalhadas sobre as diferenças entre os planos B e unificado e como seu aplicativo talvez precise ser atualizado em preparação para o Plano unificado, consulte o Guia de transição para o "Plano unificado" (JavaScript)
Para apps nativos (C++), consulte o documento Como migrar seu app nativo/para dispositivos móveis para o Plano unificado.