WebRTC vs SIP: diferenças e casos de uso

Uma janela de navegador WebRTC e um telefone SIP de mesa conectados por uma ponte de luz brilhante, ilustrando a diferença entre os protocolos WebRTC e SIP e sua integração em uma rede de voz

WebRTC e SIP transportam voz em tempo real, mas foram projetados para mundos diferentes. O SIP surgiu da pilha de telefonia de operadoras e empresas, onde a sinalização padronizada entre fornecedores e a interconexão limpa com a PSTN são a razão de existência do protocolo. O WebRTC surgiu do navegador, onde o objetivo era permitir que duas páginas web enviassem mídia uma para a outra sem que ninguém precisasse instalar um plugin. O resultado são dois ecossistemas que se sobrepõem em capacidade, mas discordam em quase todas as decisões arquiteturais por baixo.

Este guia é uma comparação orientada à tomada de decisão. Ele aborda o que cada tecnologia realmente é, onde elas diferem na prática (sinalização, transporte, criptografia, identidade, travessia de NAT), os casos de uso em que cada uma vence e o que muda quando precisam se comunicar através de uma fronteira. Se você deseja entender a mecânica do protocolo SIP em si, o artigo complementar Fundamentos da sinalização SIP cobre os papéis e a arquitetura do protocolo em um nível mais alto, e Fluxo de chamada SIP explicado passo a passo acompanha as mensagens no fio. Este artigo assume esse conhecimento prévio e foca em como o WebRTC se compara.

Um tema que este artigo não aborda é a arquitetura completa de implementação de um gateway WebRTC-to-SIP. Esse tópico merece tratamento próprio, e um artigo dedicado à arquitetura de gateway será publicado em seguida. Aqui mantemos a discussão sobre gateway no nível necessário para tomar decisões, não para configurar uma implantação.

Termos e conceitos-chave
Um glossário de referência rápida para os termos usados ao longo deste artigo.
SIP (Protocolo de Iniciação de Sessão) é o protocolo de sinalização do IETF usado para estabelecer, modificar e encerrar sessões de voz e vídeo entre operadoras, PBXs e SBCs. Ele define as mensagens no fio, mas não transporta mídia por si só.
WebRTC (Web Real-Time Communication) é um conjunto de APIs de navegador e protocolos que permite a uma aplicação web capturar áudio, vídeo e dados e trocá-los ponto a ponto com outro navegador ou terminal compatível, com criptografia de mídia obrigatória.
ICE (Interactive Connectivity Establishment) é o framework que o WebRTC usa para descobrir e testar caminhos de rede possíveis entre dois terminais, escolhendo a melhor rota através de NATs e firewalls.
STUN (Session Traversal Utilities for NAT) é um servidor leve que informa a um terminal qual é seu IP público e porta vistos de fora, para que ele possa anunciar um endereço alcançável através do ICE.
TURN (Traversal Using Relays around NAT) é um servidor de retransmissão que transporta mídia em nome dos terminais quando caminhos diretos ponto a ponto estão bloqueados, usado como fallback quando o STUN sozinho não é suficiente.
DTLS-SRTP é o mecanismo de troca de chaves que o WebRTC usa para configurar a criptografia de mídia SRTP, realizando um handshake DTLS no próprio caminho de mídia em vez de transportar chaves na sinalização.
SRTP (Secure Real-time Transport Protocol) é a forma criptografada do RTP, fornecendo confidencialidade, autenticação de mensagens e proteção contra replay para fluxos de mídia.
RTP (Real-time Transport Protocol) é o protocolo não criptografado que transporta pacotes de áudio e vídeo em implantações SIP clássicas, rodando sobre UDP separadamente da sinalização.
SBC (Controlador de Borda de Sessão) é um elemento de rede que fica na borda entre duas redes SIP, terminando sinalização e mídia em cada lado e aplicando políticas de segurança, normalização e roteamento.
B2BUA (Back-to-Back User Agent) é uma arquitetura de SBC onde o dispositivo termina completamente o diálogo SIP de entrada e origina um novo diálogo independente na saída, dando controle total sobre ambas as pernas da chamada.
PSTN (Rede Telefônica Pública Comutada) é a rede de voz global de operadoras, comutadores e planos de numeração pela qual chamadas telefônicas comuns trafegam, acessada a partir de redes IP através de gateways.
Opus é o codec de áudio wideband que o WebRTC exige e a maioria dos navegadores usa por padrão, projetado para alta qualidade e resiliência à perda de pacotes na internet pública.
G.711 é o codec PCM narrowband que a PSTN e a maioria dos SIP Trunks usam por padrão, disponível nas variantes A-law e mu-law.

O que o WebRTC realmente é

WebRTC é um conjunto de APIs de navegador (e um conjunto correspondente de protocolos de rede) que permite a uma aplicação web capturar um microfone ou câmera, criptografar o fluxo e enviá-lo a outro terminal sem plugin e sem cliente instalado. O modelo mental adequado é: uma API JavaScript no navegador, uma pilha de mídia fixa por baixo e uma peça explicitamente ausente por cima.

A pilha de mídia fixa é opinativa. O transporte é UDP. A criptografia de mídia é SRTP, e é obrigatória; não existe modo sem criptografia. A troca de chaves usa DTLS-SRTP, realizada no próprio caminho de mídia. A travessia de NAT é integrada através de ICE, STUN e TURN, que juntos permitem que dois navegadores atrás de NATs separados encontrem um caminho funcional ou recorram a um relay. Os codecs são restritos a um pequeno conjunto, com Opus como padrão de áudio e VP8/VP9/H.264/AV1 no lado de vídeo.

A peça ausente é a sinalização. O WebRTC deliberadamente omite como dois terminais se encontram, trocam descrições de sessão ou aprendem os candidatos ICE um do outro. Isso fica a cargo da aplicação, que normalmente transporta as mensagens de sinalização via WebSocket, um esquema HTTP customizado ou qualquer outro canal que o desenvolvedor escolher. Esta é a maior diferença arquitetural em relação ao SIP. O SIP é um protocolo de sinalização; o WebRTC não possui nenhum.

A consequência prática é que dois navegadores rodando a mesma aplicação web podem se comunicar de ponta a ponta, mas dois navegadores rodando aplicações diferentes não podem. Não existe equivalente WebRTC a “discar qualquer URI SIP”. A federação acontece na camada de aplicação, não na camada de protocolo.

As diferenças fundamentais

A tabela a seguir resume as decisões arquiteturais de cada tecnologia. A maioria dos trade-offs nas seções seguintes remete a uma destas linhas.

SIP WebRTC
Origem IETF, 1999, interconexão de telecomunicações W3C/IETF, 2011, mídia em tempo real no navegador
Uso principal Telefonia de operadoras e empresas, acesso à PSTN Voz, vídeo e dados entre navegadores
Sinalização Definida pelo protocolo (INVITE, 200 OK, BYE) Não definida; fica a cargo da aplicação
Transporte UDP, TCP ou TLS UDP (com fallback TURN-over-TCP/TLS)
Criptografia de mídia SRTP opcional, frequentemente RTP puro SRTP obrigatório via DTLS-SRTP
Travessia de NAT Externa: SBC, ALG, tratamento de NAT remoto Integrada ao protocolo via ICE/STUN/TURN
Identidade SIP Identity, P-Asserted-Identity, STIR/SHAKEN Nenhuma na camada de protocolo; definida pela aplicação
Conjunto de codecs Orientado por operadoras (G.711, G.722, G.729, AMR, Opus) Opus e VP8/VP9/H.264/AV1 obrigatórios
Terminais Telefones IP, PBXs, gateways, SBCs, softphones Navegadores, aplicativos móveis, clientes embarcados
Federação Padronizada entre quaisquer pares compatíveis Limitada à aplicação; sem federação entre fornecedores

Onde as arquiteturas diferem na prática

A tabela é um resumo justo, mas as consequências só se tornam visíveis quando analisamos como cada decisão de design se manifesta em uma implantação real.

WebRTC não possui protocolo de sinalização

Esta é a diferença estrutural da qual tudo o mais decorre. Uma aplicação WebRTC escolhe seu próprio transporte de sinalização (tipicamente WebSocket transportando JSON), define seus próprios formatos de mensagem e roteia mensagens entre usuários através de seu próprio backend. Se a aplicação desaparece, a sinalização desaparece com ela. O SIP é o oposto. A sinalização é o padrão, e qualquer terminal compatível pode se comunicar com qualquer outro terminal compatível sem coordenação prévia com a aplicação que o construiu.

Essa propriedade é o motivo pelo qual o SIP é o protocolo de interconexão. Duas operadoras, dois fornecedores de PBX, ou um PBX e uma plataforma UCaaS hospedada podem trocar chamadas sem compartilhar código de aplicação. O WebRTC não tem equivalente.

SIP desacopla sinalização de mídia; WebRTC as une por design

No SIP, o caminho de sinalização e o caminho de mídia são independentes. O SIP negocia a sessão (sobre UDP, TCP ou TLS), e o RTP ou SRTP flui diretamente entre os terminais em um conjunto diferente de portas. A mídia pode seguir uma rota completamente diferente pela rede em relação à sinalização, e frequentemente segue.

No WebRTC, o caminho de mídia é totalmente especificado pela pilha de protocolo: UDP, candidatos ICE negociados através da sinalização, handshake DTLS no socket de mídia, chaves SRTP derivadas desse handshake. A sinalização é independente no sentido de que a aplicação a controla, mas o caminho de mídia é rigidamente definido e assumido de ponta a ponta entre os dois terminais PeerConnection.

Criptografia obrigatória vs criptografia opcional

A mídia WebRTC é sempre criptografada. Não há como negociar RTP puro entre dois peers WebRTC. A troca de chaves acontece através de DTLS-SRTP no socket de mídia, o que elimina a dependência da segurança na camada de sinalização para a confidencialidade das chaves.

O SIP permite mídia criptografada (SRTP, geralmente com chaves via SDES dentro de um corpo SDP que trafega sobre sinalização protegida por TLS), mas não a exige. Uma parcela considerável do tráfego de operadoras e troncos ainda se move como RTP puro porque o operador considera a rede confiável. Para mais informações sobre como a troca de chaves SRTP difere entre SDES e DTLS-SRTP, veja O que é SRTP?.

Identidade e confiança

O SIP possui mecanismos explícitos de identidade. O cabeçalho P-Asserted-Identity transporta uma identidade de chamador afirmada dentro de uma rede confiável, o cabeçalho SIP Identity (usado pelo STIR/SHAKEN) atesta criptograficamente o número do chamador, e as operadoras mantêm relações de confiança que dão significado a esses cabeçalhos. O WebRTC não possui nada disso na camada de protocolo. A identidade em uma aplicação WebRTC é o que a aplicação decidir impor, geralmente um token de login vinculado a uma conta de usuário no mesmo backend que gerencia a sinalização.

Isso importa quando o tráfego WebRTC acaba tocando a PSTN. Um framework de mitigação de robocalls como o STIR/SHAKEN é significativo dentro do SIP. Ele não é significativo para uma chamada entre dois navegadores de dois usuários da mesma aplicação.

Filosofia de travessia de NAT

O SIP assume que o operador de rede resolverá o NAT. A solução clássica é colocar um SBC na borda para que os terminais internos se registrem em um elemento de face pública que gerencia keepalives de NAT, reescrita de endereços e travessia de NAT remoto. ALGs SIP em firewalls tentam fazer algo semelhante em implantações menores, frequentemente com resultados inconsistentes.

O WebRTC assume que os próprios terminais resolverão o NAT. O ICE percorre cada par de endereços candidatos (host, server-reflexive via STUN, retransmitido via TURN), testa-os e escolhe o melhor. Um servidor TURN é o fallback quando caminhos diretos falham, e em muitas implantações de grande porte o TURN acaba transportando uma fração substancial da mídia. O benefício é que o protocolo funciona em praticamente qualquer lugar; o custo é que os operadores precisam manter infraestrutura STUN e TURN.

Casos de uso onde o SIP vence

O SIP é o protocolo indicado sempre que uma chamada precisa sair de uma organização e chegar a outra, sempre que toca a PSTN, ou sempre que um equipamento precisa interoperar com algo diferente de uma cópia de si mesmo.

  • Interconexão entre operadoras e acesso à PSTN são os casos de uso originais. Toda operadora Tier 1, todo ITSP e todo switch Class 4/5 em produção hoje fala SIP ou seu parente SIP-I.
  • Microsoft Teams Direct Routing é uma integração SIP. O Teams Phone usa sinalização SIP em direção ao SBC e SRTP no caminho de mídia, com o SBC traduzindo entre o dialeto SIP do Teams e o que a operadora entrega. A mecânica completa é abordada em O que é Teams Direct Routing?.
  • Telefonia empresarial multifornecedor depende do SIP para que um IP-PBX de um fornecedor, uma plataforma de contact center de outro e um Controlador de Borda de Sessão de um terceiro possam compartilhar troncos.
  • Implantações de IP-PBX e SIP Trunking assumem SIP de ponta a ponta. Mesmo quando os telefones de mesa são softphones e o tronco é entregue pela internet, a sinalização por baixo da aplicação é SIP.
  • Trunking de contact center em escala, incluindo BYOC para Genesys, Five9 ou NICE, usa SIP porque o lado da operadora não tem outra forma de entregar chamadas de entrada.

Onde existe um plano de numeração, uma operadora ou um PBX, o SIP é a resposta.

Casos de uso onde o WebRTC vence

A força do WebRTC está em alcançar o usuário sem pedir que ele instale nada. Em qualquer cenário onde o terminal é um navegador, um dispositivo do cliente que o operador não controla, ou uma aplicação móvel que precisa de uma pilha de mídia pequena e previsível, o WebRTC tende a ser a escolha certa.

  • Softphones baseados em navegador para funcionários internos ou agentes remotos eliminam completamente o problema do cliente desktop. Uma URL e um login são a única superfície de implantação.
  • Click-to-call em páginas de marketing conecta um visitante do site a uma fila de vendas ou suporte sem software de discagem no lado do visitante.
  • Desktops de agente de contact center no navegador permitem que os agentes atendam chamadas dentro da mesma aba do CRM em que trabalham o dia todo, eliminando um cliente softphone separado.
  • Suporte ao vivo com voz e vídeo para clientes se integra diretamente em aplicativos móveis e fluxos web; os usuários não precisam trocar de contexto para iniciar uma chamada.
  • Aplicações de colaboração interna (a categoria ampla que inclui Google Meet, Discord, o cliente web do Zoom) usam WebRTC porque o custo de distribuir um cliente nativo para cada participante de uma reunião é inaceitável.
  • Cenários de onboarding com baixa fricção como consultas de telemedicina, assessoria financeira ou plataformas de entrevista se beneficiam do acesso sem instalação para a parte voltada ao cliente.

O padrão comum é que um lado da conversa é uma pessoa na internet aberta que não deve ser solicitada a instalar software. O WebRTC é o protocolo projetado para esse lado.

Quando precisam se comunicar

A maioria das implantações do mundo real é mista. Um softphone baseado em navegador precisa alcançar a PSTN. Um cliente web de contact center precisa rotear chamadas de entrada de um SIP Trunk. Um widget click-to-call precisa entrar em uma fila servida por um ACD tradicional. Nesses pontos os dois mundos precisam se encontrar, e quatro elementos precisam ser traduzidos na fronteira.

Sinalização é a primeira tradução. O lado WebRTC fala o que a aplicação escolheu (comumente WebSocket transportando SIP-over-WebSocket conforme RFC 7118, ou um protocolo JSON proprietário). O lado SIP fala SIP padrão sobre UDP, TCP ou TLS. Um gateway termina ambos e faz o mapeamento entre eles.

Criptografia de mídia é a segunda. O WebRTC exige DTLS-SRTP. O lado SIP pode entregar SRTP com chaves via SDES, ou RTP puro. O gateway termina o handshake DTLS em direção ao navegador e re-chaveia a mídia na outra perna usando o que o peer SIP requer.

Codec é a terceira. Navegadores usam Opus por padrão; a PSTN e a maioria dos SIP Trunks usam G.711 por padrão. Se ambos os lados suportam um codec comum, a chamada passa; caso contrário, o gateway faz transcodificação ou rejeita a chamada. A transcodificação Opus-para-G.711 não é gratuita; ela requer capacidade de DSP de hardware em plataformas como o ProSBC (o add-on TSBC-HW-TRANS).

Travessia de NAT é a quarta. O lado WebRTC executa ICE contra o endereço alcançável do gateway. O lado SIP não faz isso; o gateway termina o ICE na perna do navegador e apresenta um terminal SIP/RTP estático para a operadora ou PBX.

Um SBC no estilo B2BUA é o encaixe arquitetural correto para essa fronteira porque termina completamente ambas as pernas e dá ao operador controle total sobre cada cabeçalho, codec e contexto criptográfico. Um SIP proxy não consegue fazer esse trabalho; as pernas são diferentes demais. Um artigo dedicado à arquitetura de gateway cobrirá os detalhes de implementação (tradução de sinalização, terminação de ICE, posicionamento de transcodificação, escalabilidade).

Onde o ProSBC se encaixa

O ProSBC é um SBC B2BUA em software que termina o lado SIP de implantações onde o tráfego WebRTC chega upstream. O papel típico é a perna SIP-para-operadora (ou SIP-para-PBX): o gateway voltado ao WebRTC entrega uma sessão SIP normalizada ao ProSBC, e o ProSBC lida com interoperabilidade de operadora, terminação TLS e SRTP em direção ao tronco, normalização de cabeçalhos SIP para o lado PSTN e ocultação de topologia entre a nuvem e a operadora.

Nessa perna, o ProSBC fornece TLS 1.3 para sinalização SIP e SRTP (retransmissão ou conversão RTP-para-SRTP) para mídia, com configuração de transporte e criptografia por grupo de tronco. O motor de manipulação de cabeçalhos SIP lida com as diferenças entre o que um CPaaS ou gateway WebRTC produz e o que uma operadora espera receber.

O ProSBC por si só pode realizar transcodificação para codecs G.711 A-law e mu-law. Para suporte a mais codecs, o ProSBC trabalha em conjunto com uma unidade de hardware TSBC-HW-TRANS para garantir que todos os sistemas alcancem negociação e tradução de codec em tempo real para cada chamada.

O ProSBC não inclui um registrar SIP integrado e não é o produto adequado para a perna voltada ao WebRTC em si. O gateway voltado ao navegador (um servidor de aplicação ou um gateway WebRTC como Janus ou Kamailio com o módulo WebSocket) fica na frente. O ProSBC fica atrás dele, no lado SIP.

Perguntas frequentes

O WebRTC está substituindo o SIP?

Não. O WebRTC está substituindo plugins de navegador e instaladores proprietários de softphone no lado do usuário final de aplicações de voz e vídeo. O SIP continua sendo o protocolo que operadoras, PBXs e SBCs usam para interconexão, e não tem substituto realista nesse papel. A maioria das implantações modernas usa ambos: WebRTC para a borda voltada ao usuário, SIP para tudo que está por trás.

O WebRTC pode se conectar diretamente à PSTN?

Não por conta própria. Um terminal WebRTC não possui relacionamento com operadora, plano de numeração nem formato de sinalização que a PSTN compreenda. Um gateway traduz a sessão WebRTC em uma chamada SIP e a entrega a uma operadora (ou a um SBC na frente de uma operadora). Do ponto de vista da operadora, a chamada parece uma chamada SIP comum.

Preciso de um SBC se estou usando WebRTC?

Se a implantação é puramente entre navegadores dentro de uma única aplicação, não. Se a implantação alcança um SIP Trunk, um PBX, a PSTN, Microsoft Teams Direct Routing, ou qualquer peer SIP externo, então sim; o SBC lida com o lado SIP da fronteira (criptografia, normalização, ocultação de topologia, controles antifraude). O lado WebRTC é tipicamente gerenciado por um servidor de aplicação ou um gateway WebRTC na frente do SBC.

O SIP é seguro em comparação com o WebRTC?

O SIP pode ser tão seguro quanto o WebRTC; simplesmente não é obrigado a ser. Uma implantação SIP usando TLS na sinalização e SRTP na mídia (o padrão para Teams Direct Routing e a maioria das interconexões modernas de operadoras) é criptograficamente comparável ao WebRTC. A diferença é que o WebRTC não possui modo sem criptografia, enquanto o SIP permite RTP puro para operadores que consideram a rede subjacente confiável.

Qual é a diferença entre a sinalização WebRTC e a sinalização SIP?

A sinalização SIP é definida pelo protocolo: um conjunto fixo de métodos (INVITE, ACK, BYE, etc.), formatos de cabeçalho e códigos de resposta que qualquer terminal compatível pode trocar com qualquer outro. A sinalização WebRTC não é definida; a aplicação escolhe o transporte (geralmente WebSocket) e o formato da mensagem (frequentemente JSON, às vezes SIP-over-WebSocket). O resultado prático é que qualquer terminal SIP pode se comunicar com qualquer outro terminal SIP, enquanto duas aplicações WebRTC não podem trocar chamadas a menos que compartilhem uma pilha de sinalização.

Conecte WebRTC e SIP com o ProSBC

O ProSBC gerencia o lado SIP de qualquer implantação que combina WebRTC e infraestrutura de voz tradicional: terminação de operadora, SRTP e TLS, normalização de cabeçalhos SIP entre o gateway WebRTC e a operadora, e ocultação de topologia entre a nuvem e o tronco. Ele roda em AWS, Azure, VMware, KVM/Proxmox ou bare metal, com configuração por grupo de tronco para transporte, criptografia e roteamento.

Para implantações que precisam de transcodificação Opus para G.711 na fronteira SIP, a unidade de transcodificação de hardware TSBC-HW-TRANS se conecta ao ProSBC. Para preços e opções de implantação, a página de preços do ProSBC lista as tarifas atuais por sessão.

Inicie seu teste gratuito de 30 dias ou solicite uma consultoria de implantação pelo formulário acima.