Protocolo SIP explicado: o que é e como funciona

Rene, Kabir Goel 
Protocolo SIP explicado: o que é e como funciona

SIP, o Session Initiation Protocol, é como as ligações telefônicas se estabelecem na internet. Quando um dispositivo quer ligar para outro, o SIP carrega a negociação: quem está ligando, onde o outro lado pode ser encontrado, quais codecs de áudio ambos aceitam e quando alguém desliga. A voz em si nunca viaja pelo SIP. Uma vez que os dois lados concordam, o áudio flui como um fluxo separado, quase sempre RTP.

Essa separação é a única coisa para levar deste guia: o SIP é a conversa sobre a ligação, não a ligação. Todo o resto, os métodos, os códigos de resposta, as portas, decorre disso. O guia cobre como uma ligação SIP funciona mensagem por mensagem, o que o vocabulário significa e os lugares onde o SIP aparece quando quem atende as suas ligações é um agente de voz com IA.

O que o SIP é, e o que ele não é

SIP é um protocolo de sinalização da camada de aplicação definido pelo IETF. Ele apareceu primeiro como RFC 2543 em 1999 e foi revisado como RFC 3261 em 2002, que ainda é o padrão que todo telefone SIP, PBX e operadora implementa. Seus criadores emprestaram do HTTP o modelo de requisição-resposta e a sintaxe de texto, então uma mensagem SIP é algo que você lê numa captura de pacotes sem ferramentas especiais.

Três coisas que o SIP não é:

  • Não é o áudio. O SIP negocia a sessão e sai do caminho. Voz e vídeo viajam em pacotes RTP, descritos abaixo.
  • Não é um serviço. Ninguém te vende “SIP”. O que as operadoras vendem é SIP trunking: um serviço que usa o protocolo SIP para conectar o seu sistema telefônico à rede telefônica pública.
  • Não é o único jeito de sinalizar uma ligação. O H.323 veio antes, o WebRTC cuida de ligações dentro de navegadores, e protocolos proprietários rodam dentro de apps fechados. O SIP venceu o mundo da telefonia empresarial porque é aberto, baseado em texto e simples o bastante para qualquer fornecedor implementar.

Como uma ligação SIP funciona

Uma ligação SIP é uma troca curta de requisições de texto e respostas numeradas. Aqui vai uma ligação de entrada típica, do toque ao desligar:

  1. INVITE. O lado de quem liga envia um INVITE para o endereço do chamado. O corpo carrega um bloco SDP (Session Description Protocol) listando o IP de quem liga, a porta onde ele quer receber o áudio e os codecs que ele aceita.
  2. 100 Trying. Os proxies no caminho confirmam o recebimento, para que quem liga pare de retransmitir.
  3. 180 Ringing. O dispositivo chamado está alertando o usuário. É quando quem liga ouve o tom de espera.
  4. 200 OK. O chamado atende. A resposta carrega o seu próprio bloco SDP, completando a negociação de codecs.
  5. ACK. Quem ligou confirma a resposta final. A sessão está estabelecida, e o áudio RTP começa a fluir nas duas direções.
  6. BYE. Quem desliga envia um BYE. O outro lado responde 200 OK, e a sessão termina.

No meio da ligação, qualquer lado pode enviar um novo INVITE, chamado de re-INVITE, para mudar a sessão: colocá-la em espera, adicionar vídeo ou trocar de codec. Uma requisição REFER pede ao outro lado que ligue para outro destino, e é assim que as transferências funcionam.

Aqui está como um INVITE aparece de verdade no cabo, levemente enxugado:

INVITE sip:+14155550132@sip.example.com SIP/2.0
Via: SIP/2.0/TLS client.example.com:5061;branch=z9hG4bK74bf9
Max-Forwards: 70
From: "Alice" <sip:alice@example.com>;tag=9fxced76sl
To: <sip:+14155550132@sip.example.com>
Call-ID: 3848276298220188511@client.example.com
CSeq: 1 INVITE
Contact: <sip:alice@client.example.com;transport=tls>
Content-Type: application/sdp
Content-Length: 213

v=0
o=alice 2890844526 2890844526 IN IP4 client.example.com
s=-
c=IN IP4 client.example.com
t=0 0
m=audio 40000 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000

As três últimas linhas da oferta SDP são os codecs na mesa: o payload 0 é G.711 μ-law, o payload 8 é G.711 A-law, e o payload 101 é telephone-event, o jeito fora de banda de enviar dígitos de DTMF dentro do fluxo de áudio. Uma ligação pela rede pública normalmente fecha numa das duas variantes do G.711, e é por isso que o áudio de telefone soa como soa.

Métodos SIP que vale conhecer

As requisições SIP têm nomes de métodos. Estes são os que você vai encontrar numa captura:

MétodoO que faz
INVITEInicia uma sessão, ou altera uma no meio da ligação (re-INVITE)
ACKConfirma a resposta final a um INVITE
BYEEncerra a sessão
CANCELAbandona um INVITE que ainda não foi atendido
REGISTERAvisa a um registrar “estou alcançável neste endereço”
OPTIONSPergunta a um dispositivo o que ele sabe fazer, sem ligar para ele
REFERPede ao outro lado que ligue para um terceiro: a base das transferências
INFOCarrega informações no meio da ligação, uma das formas de os dígitos DTMF viajarem

Toda requisição recebe respostas com códigos de três dígitos, agrupados pelo primeiro dígito:

ClasseSignificadoExemplos
1xxProvisória100 Trying, 180 Ringing, 183 Session Progress
2xxSucesso200 OK, 202 Accepted
3xxRedirecionamento301 Moved Permanently, 302 Moved Temporarily
4xxErro do cliente401 Unauthorized, 403 Forbidden, 404 Not Found, 486 Busy Here
5xxErro do servidor500 Server Internal Error, 503 Service Unavailable
6xxFalha global603 Decline, 604 Does Not Exist Anywhere

Dois desses códigos valem o seu lugar durante o estabelecimento. Um 401 ou um 407 não é falha; é um desafio de autenticação, e espera-se que o remetente tente de novo com credenciais digest. Um 488 Not Acceptable Here significa que os dois lados não têm codec em comum: o jeito educado de uma ligação dizer que vocês nunca combinaram como codificar o áudio.

Endereços, registro e as caixas no meio do caminho

Os endereços SIP parecem endereços de e-mail: sip:alice@example.com, às vezes com uma porta ou transporte, como em sip:alice@example.com:5061;transport=tls. Um número de telefone vira uma URI SIP quando se anexa o domínio da operadora, e é por isso que sip:+14155550132@sip.example.com é um endereço completo, pronto para discar.

Como os dispositivos se movem e ficam atrás de NAT, um telefone SIP avisa à rede onde ele está: envia um REGISTER ao seu registrar, que grava “alice@example.com está neste IP no momento”. Quando chega um INVITE para a Alice, um servidor proxy consulta esse registro e encaminha a requisição para onde a Alice realmente está. Na frente da maioria das implantações reais fica um session border controller (SBC), um segurança de porta para o tráfego SIP que termina a sinalização, esconde a rede interna, aplica a política de segurança e normaliza as esquisitices que os stacks SIP de fornecedores diferentes aprontam.

SIP vs RTP vs SDP

Três protocolos dividem o trabalho de toda ligação SIP:

ProtocoloPapel
SIPSinalização: encontra o chamado, negocia a sessão, a encerra
SDPDescrição: o payload dentro das mensagens SIP que lista codecs, IPs e portas
RTPMídia: carrega o áudio ou vídeo de verdade, marcado com números de sequência e timestamps

É por isso que uma ligação pode tocar perfeitamente e entregar silêncio. A metade SIP funcionou, então os dois telefones concordam que existe uma ligação, mas a metade RTP quebrou, normalmente por causa de um firewall ou NAT que deixa a sinalização passar e derruba a mídia. Quando você depura uma ligação sem áudio, olhe o caminho da mídia, não a sinalização. A mesma separação é o que faz do jitter um problema de RTP: os campos de sequência e timestamp de cada pacote RTP, definidos pela RFC 3550, são exatamente o que um receptor mede para calculá-lo.

SIP vs VoIP vs SIP trunking

Os três termos são usados como sinônimos, e não são a mesma coisa:

TermoO que é
VoIPA ideia guarda-chuva: voz transmitida por redes IP
SIPUm protocolo de sinalização usado para estabelecer ligações VoIP
SIP trunkingUm serviço de operadora que usa SIP para conectar o seu sistema telefônico à rede telefônica pública

Se VoIP é a ideia de ligar pela internet, o SIP é a gramática que as duas pontas falam, e um tronco SIP é a assinatura que leva a sua ligação até a rede telefônica pública. O guia de SIP trunking cobre o lado do serviço: provedores, canais e configuração.

Transportes, portas e criptografia

A sinalização SIP roda sobre UDP ou TCP na porta 5060, ou sobre TLS na porta 5061. UDP é o padrão tradicional e evita o bloqueio de cabeça de fila, mas mensagens grandes fragmentam, então TCP é comum para qualquer coisa de tamanho. O TLS criptografa a sinalização e autentica a outra ponta, e é o que as operadoras esperam para qualquer coisa em produção.

O SIP puro não criptografa nada: qualquer um no caminho pode ler a sinalização, e a mídia viaja em RTP sem criptografia. A correção padrão é TLS para a sinalização mais SRTP, definido pela RFC 3711, para a mídia. As duas pontas precisam concordar, porque ativar a criptografia só de um lado é um jeito confiável de produzir ligações que conectam e não carregam áudio nenhum.

Um aviso que sobreviveu a todas as décadas do SIP: não exponha um endpoint SIP aberto. Scanners varrem a internet atrás da porta 5060 minutos depois de ela aparecer, procurando troncos que façam ligações de graça. Autentique os remetentes com credenciais digest, libere só os IPs de sinalização da sua operadora, ou os dois.

Onde o SIP encontra um agente de voz

Se você coloca um agente de voz com IA na rede telefônica, o SIP é o protocolo trabalhando nas duas pontas da ligação: a operadora entrega ligações de entrada à plataforma de agentes como INVITEs SIP, e a plataforma devolve ligações de saída e transferências pelo mesmo caminho. Alguns detalhes de protocolo deixam de ser curiosidade no momento em que esse stack é seu:

  • Transferências são REFERs. Quando o agente passa quem ligou para uma pessoa, a plataforma envia um SIP REFER pedindo à operadora que toque um novo destino. Um REFER puro é uma transferência direta; torná-la assistida, em que a pessoa ouve o contexto primeiro, é trabalho do agente antes de o REFER sair.
  • As teclas têm três transportes. Os dígitos DTMF podem viajar em banda como áudio, fora de banda como eventos telephone-event da RFC 4733 (o payload 101 do INVITE acima), ou dentro de mensagens SIP INFO. Uma incompatibilidade entre o que o telefone envia e o que o agente escuta é o motivo pelo qual menus de “disque 1” engolem dígitos em silêncio.
  • A mídia é 8 kHz. Ligações telefônicas negociam G.711, então o reconhecimento de fala do agente vê áudio de banda estreita, queira ou não. Teste com áudio de telefone de verdade antes de ajustar qualquer outra coisa; o guia do G.711 cobre o que o codec corta.
  • Ligações de navegador são outro mundo. O WebRTC tem o seu próprio modelo agnóstico de sinalização, criptografia obrigatória e buffers de jitter adaptativos. O guia WebRTC vs WebSocket mapeia as diferenças para agentes de voz que vivem num navegador em vez da rede telefônica.

Na Cartesia, os Managed Agents aceitam ligações do seu próprio tronco SIP via TCP ou TLS, com a criptografia de mídia SRTP em disabled, allowed ou required, e autenticam ligações de entrada com credenciais digest ou uma lista de IPs autorizados. As transferências saem como SIP REFERs para números de telefone ou URIs SIP. A integração de SIP trunking (Inglês) mostra como apontar uma operadora para o endpoint SIP da Cartesia, e o guia de SIP trunking cobre a configuração por completo, incluindo os campos da API e a tabela de falhas.

Guias relacionados

Perguntas frequentes

O que é o protocolo SIP?

SIP, o Session Initiation Protocol, é o protocolo de sinalização padrão para iniciar, alterar e encerrar sessões em tempo real sobre redes IP, na maioria das vezes chamadas de voz e vídeo. O SIP carrega apenas a conversa sobre a chamada: quem liga para quem, quais codecs usar e quando desligar. O áudio em si viaja separado, normalmente sobre RTP.

O que significa SIP?

SIP significa Session Initiation Protocol. É um padrão do IETF, publicado primeiro como RFC 2543 em 1999 e revisado como RFC 3261 em 2002, que continua sendo a referência que todo telefone SIP, PBX e operadora implementa.

SIP e VoIP são a mesma coisa?

Não. VoIP é o termo guarda-chuva para voz transmitida por redes IP, e o SIP é um protocolo de sinalização dentro dele. Quase todos os sistemas telefônicos empresariais modernos usam SIP para sinalização, mas VoIP também pode rodar sobre protocolos mais antigos como H.323 ou, no navegador, WebRTC.

Como funciona uma ligação SIP?

Quem liga envia uma requisição INVITE, o telefone chamado toca e atende com um 200 OK, quem ligou confirma com um ACK, e o áudio começa a fluir em pacotes RTP. Qualquer um dos lados encerra a ligação com um BYE, que o outro confirma com um 200 OK final.

Qual porta o SIP usa?

O SIP escuta na porta 5060 para sinalização UDP ou TCP sem criptografia, e na porta 5061 para SIP sobre TLS. O áudio da ligação usa portas UDP separadas e negociadas para o RTP, escolhidas durante o estabelecimento da chamada e diferentes a cada ligação.

O SIP é seguro?

Pode ser, mas nada no SIP puro é criptografado. Sistemas em produção rodam SIP sobre TLS na porta 5061, criptografam o áudio com SRTP e autenticam os remetentes com credenciais digest ou listas de IPs autorizados. Um endpoint SIP aberto na internet pública será encontrado por scanners em poucos minutos.