Ferramenta gratuita

Analisador de mensagens SIP.

Cole mensagens de um log, do sngrep ou do Wireshark e veja cada cabeçalho explicado, o SDP destrinchado e os problemas que costumam derrubar uma chamada.

A análise acontece no seu navegador; nada do que você cola é enviado. O texto não vai para servidor, URL nem armazenamento do navegador. Mesmo assim, use “Mascarar dados sensíveis” antes de copiar ou compartilhar a tela.

Cole uma ou várias mensagens em sequência: texto de log, do sngrep ou o “Copy as text” do Wireshark. Até 200 KB.

Usar exemplo:

7 mensagens analisadas: 0 erros, 0 pontos de atenção, 0 informações.

Resultado da análise

  • 0 erros
  • 0 atenção
  • 0 informações

Diagrama em escada

Diagrama em escada com 7 mensagens entre 192.0.2.10:5060 e 203.0.113.20:5060. Call-ID a84b4c76e66710@192.0.2.10.
  1. INVITE com SDP: 192.0.2.10:5060 para 203.0.113.20:5060
  2. 100 Trying: 203.0.113.20:5060 para 192.0.2.10:5060
  3. 180 Ringing: 203.0.113.20:5060 para 192.0.2.10:5060
  4. 200 OK com SDP: 203.0.113.20:5060 para 192.0.2.10:5060
  5. ACK: 192.0.2.10:5060 para 203.0.113.20:5060
  6. BYE: 203.0.113.20:5060 para 192.0.2.10:5060
  7. 200 OK: 192.0.2.10:5060 para 203.0.113.20:5060

INVITE #1 INVITE sip:bob@example.net SIP/2.0

2026/10/20 14:03:01.120344 · 192.0.2.10:5060 → 203.0.113.20:5060

Nenhum alerta

Resumo

Tipo
Requisição INVITE
Request-URI
sip:bob@example.net
De (From)
"Alice" sip:alice@example.com (tag 1928301774)
Para (To)
sip:bob@example.net
Call-ID
a84b4c76e66710@192.0.2.10
CSeq
314159 INVITE
Via
  1. UDP 192.0.2.10:5060 branch z9hG4bK776asdhds rport
Contact
<sip:alice@192.0.2.10:5060>
User-Agent
Exemplo Softphone 2.1
Content-Type
application/sdp
Allow
INVITE, ACK, CANCEL, BYE, OPTIONS, INFO, UPDATE
Supported
replaces, timer

SDP (descrição da mídia)

Origem (o=)
alice 2890844526 2890844526 IN IP4 192.0.2.10
Sessão (s=)
-
Conexão (c=)
IN IP4 192.0.2.10
Tempo (t=)
0 0
  • m=audio · fluxo 1 porta 49170 RTP/AVP sendrecv

    Endereço
    c=IN IP4 192.0.2.10 (da sessão)
    Codecs
    • 0 PCMU/8000
    • 8 PCMA/8000
    • 101 telephone-event/8000 fmtp 0-16
    Empacotamento
    ptime 20 ms
Cabeçalhos (12)
CabeçalhoValorO que é
ViaSIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK776asdhds;rportCaminho que a requisição percorreu, um por salto (o de cima é o mais recente). As respostas voltam por ele. O branch identifica a transação.
Max-Forwards70Quantos saltos a requisição ainda pode dar. Cada proxy diminui 1; em 0 a resposta é 483 Too Many Hops. O valor inicial recomendado é 70.
From"Alice" <sip:alice@example.com>;tag=1928301774Quem origina a requisição (identidade lógica). O tag identifica o lado de quem chama no diálogo.
To<sip:bob@example.net>Destinatário lógico. O tag, posto por quem responde, completa a identificação do diálogo.
Call-IDa84b4c76e66710@192.0.2.10Identificador único da chamada ou do registro; igual em todas as mensagens do mesmo diálogo.
CSeq314159 INVITENúmero de sequência e método. Ordena as requisições no diálogo e casa a resposta com a requisição.
Contact<sip:alice@192.0.2.10:5060>Endereço direto onde o agente quer receber as próximas requisições (ou, num REGISTER, onde está registrado).
AllowINVITE, ACK, CANCEL, BYE, OPTIONS, INFO, UPDATEMétodos que o agente aceita.
Supportedreplaces, timerExtensões que o agente entende (ex.: timer, 100rel, replaces, path).
User-AgentExemplo Softphone 2.1Software e versão de quem enviou a requisição.
Content-Typeapplication/sdpTipo do corpo da mensagem, por exemplo application/sdp.
Content-Length238Tamanho do corpo em bytes. Obrigatório em TCP/TLS; com valor errado o corpo é cortado ou a mensagem é descartada.
Texto da mensagem
INVITE sip:bob@example.net SIP/2.0
Via: SIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK776asdhds;rport
Max-Forwards: 70
From: "Alice" <sip:alice@example.com>;tag=1928301774
To: <sip:bob@example.net>
Call-ID: a84b4c76e66710@192.0.2.10
CSeq: 314159 INVITE
Contact: <sip:alice@192.0.2.10:5060>
Allow: INVITE, ACK, CANCEL, BYE, OPTIONS, INFO, UPDATE
Supported: replaces, timer
User-Agent: Exemplo Softphone 2.1
Content-Type: application/sdp
Content-Length: 238

v=0
o=alice 2890844526 2890844526 IN IP4 192.0.2.10
s=-
c=IN IP4 192.0.2.10
t=0 0
m=audio 49170 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv

100 #2 SIP/2.0 100 Trying

2026/10/20 14:03:01.131877 · 203.0.113.20:5060 → 192.0.2.10:5060

Nenhum alerta

Resumo

Tipo
Resposta 100 (provisória)
De (From)
"Alice" sip:alice@example.com (tag 1928301774)
Para (To)
sip:bob@example.net
Call-ID
a84b4c76e66710@192.0.2.10
CSeq
314159 INVITE
Via
  1. UDP 192.0.2.10:5060 branch z9hG4bK776asdhds received 192.0.2.10 rport 5060
Cabeçalhos (6)
CabeçalhoValorO que é
ViaSIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK776asdhds;rport=5060;received=192.0.2.10Caminho que a requisição percorreu, um por salto (o de cima é o mais recente). As respostas voltam por ele. O branch identifica a transação.
From"Alice" <sip:alice@example.com>;tag=1928301774Quem origina a requisição (identidade lógica). O tag identifica o lado de quem chama no diálogo.
To<sip:bob@example.net>Destinatário lógico. O tag, posto por quem responde, completa a identificação do diálogo.
Call-IDa84b4c76e66710@192.0.2.10Identificador único da chamada ou do registro; igual em todas as mensagens do mesmo diálogo.
CSeq314159 INVITENúmero de sequência e método. Ordena as requisições no diálogo e casa a resposta com a requisição.
Content-Length0Tamanho do corpo em bytes. Obrigatório em TCP/TLS; com valor errado o corpo é cortado ou a mensagem é descartada.
Texto da mensagem
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK776asdhds;rport=5060;received=192.0.2.10
From: "Alice" <sip:alice@example.com>;tag=1928301774
To: <sip:bob@example.net>
Call-ID: a84b4c76e66710@192.0.2.10
CSeq: 314159 INVITE
Content-Length: 0

180 #3 SIP/2.0 180 Ringing

2026/10/20 14:03:01.402113 · 203.0.113.20:5060 → 192.0.2.10:5060

Nenhum alerta

Resumo

Tipo
Resposta 180 (provisória)
De (From)
"Alice" sip:alice@example.com (tag 1928301774)
Para (To)
sip:bob@example.net (tag a6c85cf)
Call-ID
a84b4c76e66710@192.0.2.10
CSeq
314159 INVITE
Via
  1. UDP 192.0.2.10:5060 branch z9hG4bK776asdhds received 192.0.2.10 rport 5060
Contact
<sip:bob@203.0.113.20:5060>
Cabeçalhos (7)
CabeçalhoValorO que é
ViaSIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK776asdhds;rport=5060;received=192.0.2.10Caminho que a requisição percorreu, um por salto (o de cima é o mais recente). As respostas voltam por ele. O branch identifica a transação.
From"Alice" <sip:alice@example.com>;tag=1928301774Quem origina a requisição (identidade lógica). O tag identifica o lado de quem chama no diálogo.
To<sip:bob@example.net>;tag=a6c85cfDestinatário lógico. O tag, posto por quem responde, completa a identificação do diálogo.
Call-IDa84b4c76e66710@192.0.2.10Identificador único da chamada ou do registro; igual em todas as mensagens do mesmo diálogo.
CSeq314159 INVITENúmero de sequência e método. Ordena as requisições no diálogo e casa a resposta com a requisição.
Contact<sip:bob@203.0.113.20:5060>Endereço direto onde o agente quer receber as próximas requisições (ou, num REGISTER, onde está registrado).
Content-Length0Tamanho do corpo em bytes. Obrigatório em TCP/TLS; com valor errado o corpo é cortado ou a mensagem é descartada.
Texto da mensagem
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK776asdhds;rport=5060;received=192.0.2.10
From: "Alice" <sip:alice@example.com>;tag=1928301774
To: <sip:bob@example.net>;tag=a6c85cf
Call-ID: a84b4c76e66710@192.0.2.10
CSeq: 314159 INVITE
Contact: <sip:bob@203.0.113.20:5060>
Content-Length: 0

200 #4 SIP/2.0 200 OK

2026/10/20 14:03:04.877020 · 203.0.113.20:5060 → 192.0.2.10:5060

Nenhum alerta

Resumo

Tipo
Resposta 200 (sucesso)
De (From)
"Alice" sip:alice@example.com (tag 1928301774)
Para (To)
sip:bob@example.net (tag a6c85cf)
Call-ID
a84b4c76e66710@192.0.2.10
CSeq
314159 INVITE
Via
  1. UDP 192.0.2.10:5060 branch z9hG4bK776asdhds received 192.0.2.10 rport 5060
Contact
<sip:bob@203.0.113.20:5060>
Server
Exemplo PBX 9.0
Content-Type
application/sdp
Allow
INVITE, ACK, CANCEL, BYE, OPTIONS

SDP (descrição da mídia)

Origem (o=)
bob 1033 1033 IN IP4 203.0.113.20
Sessão (s=)
-
Conexão (c=)
IN IP4 203.0.113.20
Tempo (t=)
0 0
  • m=audio · fluxo 1 porta 31000 RTP/AVP sendrecv (padrão)

    Endereço
    c=IN IP4 203.0.113.20 (da sessão)
    Codecs
    • 8 PCMA/8000
    • 101 telephone-event/8000 fmtp 0-16
    Empacotamento
    ptime 20 ms
Cabeçalhos (10)
CabeçalhoValorO que é
ViaSIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK776asdhds;rport=5060;received=192.0.2.10Caminho que a requisição percorreu, um por salto (o de cima é o mais recente). As respostas voltam por ele. O branch identifica a transação.
From"Alice" <sip:alice@example.com>;tag=1928301774Quem origina a requisição (identidade lógica). O tag identifica o lado de quem chama no diálogo.
To<sip:bob@example.net>;tag=a6c85cfDestinatário lógico. O tag, posto por quem responde, completa a identificação do diálogo.
Call-IDa84b4c76e66710@192.0.2.10Identificador único da chamada ou do registro; igual em todas as mensagens do mesmo diálogo.
CSeq314159 INVITENúmero de sequência e método. Ordena as requisições no diálogo e casa a resposta com a requisição.
Contact<sip:bob@203.0.113.20:5060>Endereço direto onde o agente quer receber as próximas requisições (ou, num REGISTER, onde está registrado).
AllowINVITE, ACK, CANCEL, BYE, OPTIONSMétodos que o agente aceita.
ServerExemplo PBX 9.0Software e versão de quem enviou a resposta.
Content-Typeapplication/sdpTipo do corpo da mensagem, por exemplo application/sdp.
Content-Length192Tamanho do corpo em bytes. Obrigatório em TCP/TLS; com valor errado o corpo é cortado ou a mensagem é descartada.
Texto da mensagem
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK776asdhds;rport=5060;received=192.0.2.10
From: "Alice" <sip:alice@example.com>;tag=1928301774
To: <sip:bob@example.net>;tag=a6c85cf
Call-ID: a84b4c76e66710@192.0.2.10
CSeq: 314159 INVITE
Contact: <sip:bob@203.0.113.20:5060>
Allow: INVITE, ACK, CANCEL, BYE, OPTIONS
Server: Exemplo PBX 9.0
Content-Type: application/sdp
Content-Length: 192

v=0
o=bob 1033 1033 IN IP4 203.0.113.20
s=-
c=IN IP4 203.0.113.20
t=0 0
m=audio 31000 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20

ACK #5 ACK sip:bob@203.0.113.20:5060 SIP/2.0

2026/10/20 14:03:04.881250 · 192.0.2.10:5060 → 203.0.113.20:5060

Nenhum alerta

Resumo

Tipo
Requisição ACK
Request-URI
sip:bob@203.0.113.20:5060
De (From)
"Alice" sip:alice@example.com (tag 1928301774)
Para (To)
sip:bob@example.net (tag a6c85cf)
Call-ID
a84b4c76e66710@192.0.2.10
CSeq
314159 ACK
Via
  1. UDP 192.0.2.10:5060 branch z9hG4bK8ad21f rport
Cabeçalhos (7)
CabeçalhoValorO que é
ViaSIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK8ad21f;rportCaminho que a requisição percorreu, um por salto (o de cima é o mais recente). As respostas voltam por ele. O branch identifica a transação.
Max-Forwards70Quantos saltos a requisição ainda pode dar. Cada proxy diminui 1; em 0 a resposta é 483 Too Many Hops. O valor inicial recomendado é 70.
From"Alice" <sip:alice@example.com>;tag=1928301774Quem origina a requisição (identidade lógica). O tag identifica o lado de quem chama no diálogo.
To<sip:bob@example.net>;tag=a6c85cfDestinatário lógico. O tag, posto por quem responde, completa a identificação do diálogo.
Call-IDa84b4c76e66710@192.0.2.10Identificador único da chamada ou do registro; igual em todas as mensagens do mesmo diálogo.
CSeq314159 ACKNúmero de sequência e método. Ordena as requisições no diálogo e casa a resposta com a requisição.
Content-Length0Tamanho do corpo em bytes. Obrigatório em TCP/TLS; com valor errado o corpo é cortado ou a mensagem é descartada.
Texto da mensagem
ACK sip:bob@203.0.113.20:5060 SIP/2.0
Via: SIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bK8ad21f;rport
Max-Forwards: 70
From: "Alice" <sip:alice@example.com>;tag=1928301774
To: <sip:bob@example.net>;tag=a6c85cf
Call-ID: a84b4c76e66710@192.0.2.10
CSeq: 314159 ACK
Content-Length: 0

BYE #6 BYE sip:alice@192.0.2.10:5060 SIP/2.0

2026/10/20 14:03:31.004512 · 203.0.113.20:5060 → 192.0.2.10:5060

Nenhum alerta

Resumo

Tipo
Requisição BYE
Request-URI
sip:alice@192.0.2.10:5060
De (From)
sip:bob@example.net (tag a6c85cf)
Para (To)
"Alice" sip:alice@example.com (tag 1928301774)
Call-ID
a84b4c76e66710@192.0.2.10
CSeq
231 BYE
Via
  1. UDP 203.0.113.20:5060 branch z9hG4bKnashds10
Cabeçalhos (7)
CabeçalhoValorO que é
ViaSIP/2.0/UDP 203.0.113.20:5060;branch=z9hG4bKnashds10Caminho que a requisição percorreu, um por salto (o de cima é o mais recente). As respostas voltam por ele. O branch identifica a transação.
Max-Forwards70Quantos saltos a requisição ainda pode dar. Cada proxy diminui 1; em 0 a resposta é 483 Too Many Hops. O valor inicial recomendado é 70.
From<sip:bob@example.net>;tag=a6c85cfQuem origina a requisição (identidade lógica). O tag identifica o lado de quem chama no diálogo.
To"Alice" <sip:alice@example.com>;tag=1928301774Destinatário lógico. O tag, posto por quem responde, completa a identificação do diálogo.
Call-IDa84b4c76e66710@192.0.2.10Identificador único da chamada ou do registro; igual em todas as mensagens do mesmo diálogo.
CSeq231 BYENúmero de sequência e método. Ordena as requisições no diálogo e casa a resposta com a requisição.
Content-Length0Tamanho do corpo em bytes. Obrigatório em TCP/TLS; com valor errado o corpo é cortado ou a mensagem é descartada.
Texto da mensagem
BYE sip:alice@192.0.2.10:5060 SIP/2.0
Via: SIP/2.0/UDP 203.0.113.20:5060;branch=z9hG4bKnashds10
Max-Forwards: 70
From: <sip:bob@example.net>;tag=a6c85cf
To: "Alice" <sip:alice@example.com>;tag=1928301774
Call-ID: a84b4c76e66710@192.0.2.10
CSeq: 231 BYE
Content-Length: 0

200 #7 SIP/2.0 200 OK

2026/10/20 14:03:31.010877 · 192.0.2.10:5060 → 203.0.113.20:5060

Nenhum alerta

Resumo

Tipo
Resposta 200 (sucesso)
De (From)
sip:bob@example.net (tag a6c85cf)
Para (To)
"Alice" sip:alice@example.com (tag 1928301774)
Call-ID
a84b4c76e66710@192.0.2.10
CSeq
231 BYE
Via
  1. UDP 203.0.113.20:5060 branch z9hG4bKnashds10
Cabeçalhos (6)
CabeçalhoValorO que é
ViaSIP/2.0/UDP 203.0.113.20:5060;branch=z9hG4bKnashds10Caminho que a requisição percorreu, um por salto (o de cima é o mais recente). As respostas voltam por ele. O branch identifica a transação.
From<sip:bob@example.net>;tag=a6c85cfQuem origina a requisição (identidade lógica). O tag identifica o lado de quem chama no diálogo.
To"Alice" <sip:alice@example.com>;tag=1928301774Destinatário lógico. O tag, posto por quem responde, completa a identificação do diálogo.
Call-IDa84b4c76e66710@192.0.2.10Identificador único da chamada ou do registro; igual em todas as mensagens do mesmo diálogo.
CSeq231 BYENúmero de sequência e método. Ordena as requisições no diálogo e casa a resposta com a requisição.
Content-Length0Tamanho do corpo em bytes. Obrigatório em TCP/TLS; com valor errado o corpo é cortado ou a mensagem é descartada.
Texto da mensagem
SIP/2.0 200 OK
Via: SIP/2.0/UDP 203.0.113.20:5060;branch=z9hG4bKnashds10
From: <sip:bob@example.net>;tag=a6c85cf
To: "Alice" <sip:alice@example.com>;tag=1928301774
Call-ID: a84b4c76e66710@192.0.2.10
CSeq: 231 BYE
Content-Length: 0

Como ler

Anatomia de uma mensagem SIP.

O SIP é texto, como o HTTP: linha inicial, cabeçalhos, uma linha em branco e, se houver, o corpo.

A linha inicial diz o que a mensagem é. Numa requisição, traz o método, a Request-URI e a versão:INVITE sip:bob@example.com SIP/2.0. Numa resposta, a versão, o código de 3 dígitos e a frase:SIP/2.0 180 Ringing. Os códigos se agrupam por centena: 1xx provisórias, 2xx sucesso, 3xx redirecionamento, 4xx erro do cliente, 5xx erro do servidor e 6xx falha global.

Depois vêm os cabeçalhos, um por linha no formato Nome: valor. Um cabeçalho pode continuar na linha de baixo se ela começar com espaço (dobra de linha), e vários têm forma compacta de uma letra: v é Via,f From, t To, i Call-ID, m Contact, c Content-Type el Content-Length (RFC 3261, seção 7.3.3).

Uma linha em branco separa os cabeçalhos do corpo. Em chamadas, o corpo costuma ser um SDP (RFC 4566): a linha c= diz para qual IP mandar o áudio, cada m= abre um fluxo com porta, perfil e a lista de payload types, e os a=rtpmap dizem qual codec é cada número. A negociação segue o modelo de oferta e resposta da RFC 3264: quem responde escolhe entre os codecs oferecidos e pode recusar um fluxo com porta 0.

Para o detalhe de cada parte, leia o artigo Estrutura do Protocolo SIP e SIP URI no blog.

Referência

Cabeçalhos que mais importam.

O analisador explica todos os cabeçalhos conhecidos; estes são os que você vai olhar primeiro.

Via
Um por salto, o mais recente em cima. As respostas fazem o caminho de volta por ele. O branch (sempre começando com z9hG4bK) identifica a transação; received e rport mostram o endereço que o servidor realmente viu, essencial com NAT.
From e To
Quem chama e quem é chamado. O tag do From é posto por quem chama; o do To, por quem responde. Call-ID mais os dois tags identificam o diálogo.
Call-ID
Igual em todas as mensagens da mesma chamada. É o filtro mais útil para separar uma chamada num log cheio.
CSeq
Número e método. Cresce a cada nova requisição no diálogo; a resposta repete o CSeq da requisição que responde. ACK e CANCEL usam o mesmo número do INVITE.
Contact
Onde o agente quer receber as próximas requisições. Um Contact com IP privado atrás de NAT é a causa clássica de BYE que não chega e de chamada que cai em 32 segundos.
Max-Forwards
Começa em 70 e cada proxy tira 1. Valor baixo no destino indica laço de roteamento; em 0 a resposta é 483 Too Many Hops.
Content-Type e Content-Length
Tipo e tamanho do corpo. Com application/sdp, o corpo descreve a mídia. Content-Length errado corta o SDP ou faz a mensagem ser descartada, principalmente em TCP.
WWW-Authenticate e Authorization
Desafio Digest (realm, nonce, algorithm, qop) no 401 ou 407 e a resposta do cliente na requisição repetida. Nunca compartilhe o Authorization sem mascarar.

Depuração

O que olhar quando a chamada falha.

Um roteiro rápido, na ordem em que os problemas costumam aparecer.

  1. Separe a chamada pelo Call-ID e confira a sequência: INVITE, 100, 180 ou 183, 200, ACK. Faltou o ACK depois do 200 OK? O Contact ou o Record-Route do 200 provavelmente aponta para um endereço que quem chama não alcança.
  2. Procure IP privado no Via, no Contact e no c= do SDP. Sem received e rport no Via, ou com o c= num endereço interno, o sintoma é resposta que não volta, áudio de um lado só ou chamada que cai depois de uns 30 segundos.
  3. Leia o código da resposta final. 401 e 407 são desafios normais de autenticação; 403 é credencial ou permissão; 404 e 484, número errado; 486 e 600, ocupado; 488 e 606, codec incompatível. Consulte atabela de códigos de resposta SIP para os demais.
  4. Compare os codecs oferecidos no INVITE com os aceitos na resposta. Payload type dinâmico (96 a 127) sem a=rtpmap, ou só G.729 de um lado e só G.711 do outro, terminam em 488.
  5. Confira Content-Length, CSeq e branch. Um corpo cortado, um CSeq que não casa com a requisição ou um branch sem z9hG4bK mostram um equipamento ou uma configuração fora da RFC 3261.
  6. Max-Forwards baixo no destino denuncia laço entre proxies ou entre PBX e operadora.

Dúvidas

Perguntas frequentes.

O texto que eu colo é enviado para algum lugar?

Não. Toda a análise roda em JavaScript no seu navegador. O texto não vai para servidor, não entra na URL e não é guardado no navegador. A página só registra, de forma anônima, quantas mensagens e quantos alertas foram analisados, nunca o conteúdo.

De onde posso copiar as mensagens?

De qualquer lugar que mostre a mensagem como texto: a tela de mensagem do sngrep, logs do Asterisk (sip set debug on / pjsip set logger on), do Kamailio, do OpenSIPS e do FreeSWITCH (sofia global siptrace on), ou o Wireshark. No Wireshark, Copy › …as Printable Text sobre a camada SIP dá a mensagem exata; o Copy as text da árvore também funciona, mas sem conferir o Content-Length.

Por que o analisador reclama do Content-Length se a chamada funcionou?

Logs costumam trocar CRLF por LF, cortar linhas ou juntar mensagens. O analisador aceita CRLF ou LF, mas se o tamanho declarado não bate com nenhum dos dois, vale olhar a captura original: se o valor for menor que o corpo, o receptor ignora o que sobra; se for maior, em UDP a mensagem é descartada e em TCP o receptor fica esperando bytes que não vêm (RFC 3261, seção 18.3).

O que o botão de mascarar oculta?

Números de telefone nas URIs e nos nomes de exibição (fica só o final), senha em URI, os campos response, nonce, cnonce e opaque do Authorization, chaves SRTP (inline: do a=crypto) e o ice-pwd. O tamanho de cada trecho é mantido, então a conferência do Content-Length continua valendo.

Quando aparece o diagrama em escada?

Quando você cola duas ou mais mensagens com o mesmo Call-ID. Se as linhas de endereço do sngrep vierem junto (data, origem -> destino), o diagrama usa os IPs reais; sem elas, deduz os dois lados pelo Via.

Quer dominar o SIP?

Introdução ao SIP e Wireshark básico para VoIP

Do INVITE ao BYE, com NAT, SDP e autenticação na prática. Veja também os outros cursos da EDCA.

Conhecer o curso