Tutorial: Como Usar O Protocolo Sip Com A Webrtc

Se você quer saber como usar o protocolo SIP com a WebRTC, provavelmente possui uma estrutura SIP e está buscando uma maneira de interligá-la com pontos habilitados para WebRTC. Também é possível que você já tenha um aplicativo web e esteja buscando uma forma de interligá-lo com seu telefone. Em qualquer um dos casos, o…

Leonardo Ferreira5 minatualizado 7 de nov.

Se você quer saber como usar o protocolo SIP com a WebRTC, provavelmente possui uma estrutura SIP e está buscando uma maneira de interligá-la com pontos habilitados para WebRTC. Também é possível que você já tenha um aplicativo web e esteja buscando uma forma de interligá-lo com seu telefone. Em qualquer um dos casos, o objetivo é o mesmo – interconexão. É disso que se trata o protocolo SIP.

Antes de podermos responder à pergunta principal, ou seja, como usar o protocolo SIP com a WebRTC, precisamos entender claramente o que é SIP. Vejamos uma abordagem técnica esclarecedora logo a seguir.

O que é SIP e como o protocolo funciona?

O Protocolo de Iniciação de Sessão (SIP) existe desde a década de 90. É um protocolo de sinalização baseado em texto usado para gerenciar sessões de mídia entre dois pontos finais conectados por IP.

O SIP é frequentemente usado em comunicações de Voz sobre IP (VoIP). Essas comunicações, por sua vez, vem impulsionando um crescimento bastante significativo em termos do que o SIP pode fazer. O que começou como uma especificação relativamente simples é agora uma coleção ampla de RFCs, propostas e extensões.

Isso pode soar complicado, mas a base do SIP é bastante simples. Sua estrutura é muito semelhante ao HTTP. Cada mensagem SIP consiste em uma série de cabeçalhos, cada uma em sua própria linha, seguido por um corpo de mensagem.

O corpo da mensagem SIP usa algo chamado Session Description Protocol – Protocolo de Descrição da Sessão (SDP) – que é usado em algumas mensagens SIP para descrever informações sobre os fluxos de mídia que eventualmente fluirão entre os dois pontos finais, como o número e tipo de fluxo (por exemplo: áudio ou vídeo) e quais codificações são permitidas (por exemplo: G.711, Opus, VP8 ou H.264).

Em uma configuração de chamada típica, duas mensagens SDP são enviadas – uma oferta e uma resposta. O iniciador de chamadas envia a oferta primeiro, descrevendo o quanto puder sobre a sessão e as capacidades/desejos do lado da oferta. O receptor de chamadas, então, envia uma resposta que inclui informações sobre suas próprias capacidades/desejos dentro do contexto do que foi oferecido. Se tudo correr bem, os dois pontos estarão conectados e começarão a enviar e receber dados.

Agora você já tem o conhecimento técnico necessário para saber como usar o protocolo SIP com a WebRTC, mas antes vamos entender como um está relacionado ao outro.

O que o protocolo SIP tem a ver com a WebRTC?

A WebRTC está naturalmente relacionada ao protocolo SIP.

Como o SIP, a WebRTC destina-se a suportar a criação de sessões de mídia entre dois pontos finais conectados por IP. Como o SIP, as conexões usam o Real-time Transport Protocol – Protocolo de Transporte em Tempo Real (RTP) – para pacotes no plano de mídia quando a sinalização está completa. Como o SIP, a WebRTC também utiliza SDP.

No entanto, a WebRTC difere do protocolo SIP em dois aspectos:

A WebRTC não exige o uso de mensagens SIP no plano de sinalização. Na verdade, a WebRTC não toma qualquer decisão sobre o uso de SIP ou qualquer outro protocolo de sinalização. A sinalização real (envio/recebimento) das mensagens SDP é feita pelo aplicativo. O SIP, por outro lado, define um formato de mensagem muito específico que deve ser usado para encapsular e enviar mensagens SDP para fins de configuração de chamadas.

A WebRTC exige o uso de alguns recursos SIP opcionais no plano de mídia: o uso de codecs específicos, o uso do perfil SRTP para criptografia e autenticação, o uso do Datagram Transport Layer Security (DTLS) para gerar chaves utilizadas pelo SRTP e o uso de Interactive Connectivity Establishment e Session Traversal Utilities para NAT e Traversal Using Relays para a passagem de rede.

Deixando de lado todos os argumentos sobre essas diferenças serem boas ou não, elas existem e por isso temos que trabalhar com elas. Vamos dar uma olhada nos dois planos a seguir para entender, enfim, como usar o protocolo SIP com a WebRTC.

Plano de sinalização

Partindo do pressuposto de que a infraestrutura SIP existente não vai mudar para um protocolo de sinalização diferente, a WebRTC vai ter que aprender a se comunicar com o protocolo SIP.

Existem duas maneiras de conseguir isso:

  • Usando o SIP como pilha de sinalização para o seu aplicativo habilitado para WebRTC.
  • Usando outra solução de sinalização para o seu aplicativo habilitado para WebRTC, mas adicionando um gateway de sinalização para traduzir entre um e outro.

Qual opção é melhor para você? Isso depende muito da sua infraestrutura existente e dos seus planos de expansão. Considere as seguintes questões:

  • Você possui uma infraestrutura SIP existente?
  • Você tem uma unidade de encaminhamento seletivo (SFU) ou uma unidade de controle multiponto (MCU) para ajudar a dimensionar suas conexões WebRTC?
  • Sua aplicação web já usa um sistema como WebSync ou XMPP para comunicações de texto em tempo real?
  • Em que plataformas seu aplicativo é executado?
  • Você tem uma pilha de sinalização SIP que funciona nessas plataformas?

O caminho certo para você dependerá fortemente dessas respostas.

Plano de mídia

Se você ainda não possui uma infraestrutura SIP existente, então a escolha certa pode ser simplesmente escolher uma tecnologia SIP compatível com WebRTC.

Muitos gateways SIP (por exemplo, FreeSWITCH) e serviços de trunking SIP (por exemplo, Voxbone) podem ser configurados para usar DTLS/ICE e os codecs exigidos pela WebRTC.

Se você já possui uma infraestrutura SIP existente, talvez seja necessário adicionar um Session Border Controller (SBC) que possa atuar como um gateway de mídia entre a WebRTC e os pontos finais VoIP. Se você tiver um SFU/MCU ajudando você a reduzir as conexões WebRTC, o servidor de mídia poderá atuar como esse gateway.

Novamente, o caminho certo para você pode exigir uma discussão e uma avaliação de sua infraestrutura e suas necessidades.

Considerações finais

Esperamos que esse tutorial tenha ajudado você a entender como usar o protocolo SIP com a WebRTC. Se você não tem certeza do caminho a seguir, deixe nossa equipe de profissionais guiá-lo!

Entre em contato hoje mesmo com os consultores da Omnismart para discutir suas necessidades e tire o maior proveito dessas tecnologias.

Tagstelefonia IPtecnologia de comunicaçãoVoIPprotocolo SIPAPIs WebRTCAplicações WebRTCComunicação baseada em navegadorComunicação em tempo realConfiguração SIPConfigurar SIP com WebRTCDesenvolvimento de aplicações VoIPDesenvolvimento WebRTC

Fale com um especialista

Preencha seus dados para receber um contato.

CompartilharLinkedInXWhatsApp
Carregando comentarios...