Formato SDP do plano unificado - plano de transição

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.