SIP: definição e exemplo na prática
Resposta curta: SIP (Session Initiation Protocol), definido na RFC 3261, é o protocolo de sinalização que estabelece, modifica e encerra chamadas de voz sobre redes IP.
Em inglês: SIP (Session Initiation Protocol)
O que é SIP?
SIP (Session Initiation Protocol) é o protocolo que abre, controla e encerra chamadas VoIP. Ele faz o papel da sinalização da telefonia tradicional: avisa que há uma ligação, faz o destino tocar, informa o atendimento e marca o fim. O SIP é definido na RFC 3261 e usa mensagens de texto parecidas com as do HTTP, enviadas normalmente pela porta 5060.
As requisições SIP se chamam métodos. Os mais usados são INVITE (iniciar uma chamada), ACK (confirmar a resposta final), BYE (encerrar), CANCEL (desistir antes do atendimento), REGISTER (registrar um telefone ou tronco) e OPTIONS (consultar se o outro lado responde).
Cada requisição recebe respostas numeradas em seis classes: 1xx provisórias, como 180 Ringing; 2xx sucesso, como 200 OK; 3xx redirecionamento; 4xx erro do lado de quem chamou ou do destino, como 486 Busy Here; 5xx falha do servidor, como 503; e 6xx falha global. A resposta final de uma chamada é a que melhor diz o que aconteceu. A lista completa está em códigos SIP.
SDP
O SIP não carrega áudio. Ele leva, dentro do INVITE e da resposta, uma descrição da mídia em SDP (Session Description Protocol), da RFC 4566, hoje substituída pela RFC 8866. O SDP diz o IP e a porta onde cada lado espera receber o RTP e quais codecs aceita. Um lado oferece, o outro responde, e a voz passa a correr pelo caminho combinado.
Na prática
Uma chamada bem-sucedida troca estas mensagens:
| Passo | De | Mensagem |
|---|---|---|
| 1 | Quem liga | INVITE com SDP |
| 2 | Destino | 100 Trying |
| 3 | Destino | 180 Ringing |
| 4 | Destino | 200 OK com SDP |
| 5 | Quem liga | ACK |
| 6 | Qualquer lado | BYE |
| 7 | O outro lado | 200 OK |
Se o destino estiver ocupado, o passo 4 vira 486 Busy Here e a resposta pode trazer no cabeçalho Reason a causa Q.850 17, usuário ocupado, conforme a RFC 6432.
Como o Monitor usa isso
O Monitor lê a resposta SIP final e a causa Q.850 de toda chamada de teste. Com os dois, o incidente diz se o destino recusou, se a rede falhou ou se o número não existe. Veja monitoramento de troncos SIP.
Perguntas frequentes
Qual a diferença entre SIP e RTP?
O SIP é a sinalização: diz quem liga para quem, se o destino toca, se atende e quando a chamada termina. O RTP transporta o áudio. Os dois seguem caminhos e portas diferentes, por isso uma chamada pode ser atendida no SIP e mesmo assim ficar sem voz, quando o RTP é bloqueado ou desviado no caminho.
O que é a causa Q.850 numa resposta SIP?
É um código numérico herdado da telefonia ISDN que explica por que a chamada terminou, como 16 para desligamento normal ou 17 para usuário ocupado. Muitas operadoras o enviam no cabeçalho Reason da resposta SIP, conforme a RFC 6432. Ele completa o código SIP, que às vezes é genérico demais para diagnosticar a falha.