videocalling
Illustration of Sinalização in video calling

Sinalização

glossary.categories.technical

O processo de coordenar a comunicação entre pares WebRTC antes de estabelecer uma conexão

O que é Sinalização?

Sinalização é o processo pelo qual dois pares WebRTC trocam as informações necessárias para estabelecer uma conexão peer-to-peer direta. Antes que qualquer áudio, vídeo ou dado possa fluir entre navegadores, eles precisam concordar sobre parâmetros como codecs, resolução, endereços de rede e chaves de criptografia.

O WebRTC deliberadamente não especifica como a sinalização deve funcionar — ele deixa essa escolha para o desenvolvedor. Isso significa que você pode usar WebSockets, HTTP, ou qualquer outro mecanismo de transporte para sinalização.

O que é Trocado na Sinalização

  • Ofertas e Respostas SDP: Descrevendo capacidades de mídia (codecs suportados, resoluções, etc.)
  • Candidatos ICE: Endereços de rede potenciais para conexão (IPs locais, IPs públicos, endereços de relay)
  • Estado da Sessão: Informações sobre iniciar, pausar ou encerrar a chamada

Fluxo Típico de Sinalização

  1. Par A cria uma oferta SDP usando createOffer()
  2. Par A define essa oferta como sua descrição local
  3. Par A envia a oferta ao Par B via o servidor de sinalização
  4. Par B recebe a oferta e a define como descrição remota
  5. Par B cria uma resposta SDP usando createAnswer()
  6. Par B envia a resposta de volta ao Par A
  7. Simultaneamente, ambos os pares trocam candidatos ICE
  8. O ICE encontra o melhor caminho de conexão e a mídia começa a fluir

Transportes de Sinalização Comuns

  • WebSocket: A escolha mais popular — bidirecional, tempo real, baixa latência
  • HTTP/REST: Mais simples de implementar, mas requer polling ou Server-Sent Events
  • SIP sobre WebSocket: Usado ao fazer bridge com redes VoIP legadas

Referências