Captura e Análise de Pacotes SIP com Wireshark e Homer
Aprenda a capturar e analisar pacotes SIP usando Wireshark, sngrep e Homer. Veja exemplos práticos de problemas comuns visíveis em traces de rede.

Por que captura de pacotes e essencial
Em operacoes VoIP, quando algo da errado, os logs do softswitch nem sempre contam a historia completa. A captura de pacotes permite ver exatamente o que foi transmitido na rede: cada mensagem SIP, cada pacote RTP, cada resposta de erro. Para ISPs, contact centers e operadoras, dominar a analise de pacotes e uma habilidade fundamental para resolver problemas de forma rapida e definitiva.
A boa noticia e que a plataforma SipPulse foi projetada para facilitar o troubleshooting de sinalizacao SIP, oferecendo logging e trace integrados, alem de integracao nativa com ferramentas de captura como o Homer.
Wireshark: a referencia para analise SIP
O Wireshark e a ferramenta mais completa para analise de protocolos de rede, incluindo SIP e RTP. Ele pode ler capturas feitas localmente ou importar arquivos pcap de servidores remotos.
Filtros essenciais para SIP
Use estes filtros de exibicao (display filters) para focar no trafego relevante:
sip- exibe apenas pacotes SIPsip.Method == "INVITE"- apenas INVITEs (inicio de chamada)sip.Method == "REGISTER"- apenas registros de endpointssip.Status-Code >= 400- apenas respostas de erro (4xx, 5xx, 6xx)sip.Call-ID == "abc123@host"- filtra por uma chamada especificartp- exibe apenas pacotes RTP (media)rtcp- exibe apenas pacotes RTCP (relatorios de qualidade)
Visualizacao de call flow
O Wireshark possui uma funcionalidade nativa para visualizar o fluxo de uma chamada SIP. Acesse em Telephony > SIP Flows ou Telephony > VoIP Calls. Essa visualizacao mostra a sequencia de mensagens SIP entre os endpoints em formato de diagrama de escada (ladder diagram), facilitando a identificacao de onde a chamada falha.
Analise de RTP
Para analisar a qualidade do audio, use Telephony > RTP > RTP Streams. O Wireshark mostra estatisticas de jitter, perda de pacotes e delta entre pacotes para cada stream RTP. Voce pode ate reproduzir o audio capturado para ouvir o problema.
sngrep: analise SIP no terminal
O sngrep e uma ferramenta de linha de comando que captura e exibe trafego SIP em tempo real no terminal. Ele e extremamente util para troubleshooting rapido em servidores de producao onde nao ha interface grafica:
sngrep -d eth0 port 5060
O sngrep exibe as mensagens SIP em formato de call flow diretamente no terminal, permitindo navegar entre chamadas, ver o conteudo completo de cada mensagem e filtrar por Call-ID, From, To ou metodo SIP.
Instale via gerenciador de pacotes: apt install sngrep (Debian/Ubuntu) ou yum install sngrep (CentOS/RHEL).
Troubleshooting integrado com SipPulse SBC e SoftSwitch
Antes de recorrer a ferramentas externas de captura, a plataforma SipPulse oferece capacidades integradas de troubleshooting que resolvem a maioria dos cenarios do dia a dia.
Logging e trace no SipPulse SBC
O SipPulse SBC, com suporte a ate 4000 chamadas simultaneas e disponivel nas variantes UNI, NNI e NNI-CC, oferece logging detalhado de todas as transacoes SIP que passam pelo equipamento. Como o SBC esta posicionado na borda da rede, ele captura tanto o lado de entrada (upstream) quanto o lado de saida (downstream) de cada chamada, permitindo comparar as mensagens SIP em ambos os lados e identificar rapidamente onde ocorre a falha.
O suporte a TLS/SRTP no SipPulse SBC tambem permite inspecionar a sinalizacao de chamadas criptografadas diretamente nos logs do equipamento, algo que ferramentas de captura passiva como tcpdump nao conseguem fazer sem acesso as chaves privadas.
CDRs detalhados no SipPulse SoftSwitch
O SipPulse SoftSwitch, com capacidade de ate 1000 CAPS e operando como Class 4 e Class 5, gera CDRs completos que incluem codigos de resposta SIP, duracao, codec negociado e metricas de qualidade. Esses registros permitem identificar padroes de falha (por rota, horario, destino) sem precisar capturar pacotes na rede.
Homer / SIPCAPTURE: captura em producao com integracao SipPulse
Para ambientes de producao com alto volume de chamadas, capturar com tcpdump ou Wireshark nao escala. O Homer (SIPCAPTURE) resolve esse problema com uma arquitetura distribuida baseada no protocolo HEP (Homer Encapsulation Protocol).
Como funciona
- O softswitch, SBC ou proxy SIP envia copias das mensagens SIP para o Homer via HEP (UDP, porta 9060 por padrao).
- O Homer armazena as mensagens em um banco de dados (PostgreSQL ou MySQL).
- A interface web permite buscar chamadas por numero, Call-ID, data/hora e visualizar o call flow.
Integracao nativa SipPulse + Homer via HEP
O SipPulse SBC e o SipPulse SoftSwitch sao construidos sobre OpenSIPS, que suporta o protocolo HEP nativamente. Isso significa que a integracao com o Homer e direta e nao requer agentes ou probes adicionais na rede. Basta configurar o envio de HEP nos produtos SipPulse para que todas as mensagens SIP sejam automaticamente espelhadas para o Homer.
Na pratica, a configuracao envolve apenas habilitar o modulo proto_hep do OpenSIPS e definir o endereco do servidor Homer. O SipPulse SBC e o SoftSwitch ja incluem essa capacidade, tornando a implantacao do Homer significativamente mais simples do que com plataformas que exigem captura externa via port mirroring ou agentes separados.
Vantagens do Homer com SipPulse
- Sem impacto no trafego de producao: o HEP envia copias, nao intercepta o trafego original.
- Busca retroativa: como todas as mensagens sao armazenadas, e possivel investigar problemas que ocorreram horas ou dias atras.
- Correlacao de sessoes: o Homer correlaciona mensagens do SipPulse SBC e SoftSwitch em uma unica visualizacao de call flow, mostrando a chamada de ponta a ponta.
- Integracao nativa: OpenSIPS (o motor por tras dos produtos SipPulse) suporta HEP nativamente, sem necessidade de probes ou agentes adicionais.
- Visibilidade completa: combinando os logs integrados dos produtos SipPulse com a captura do Homer, operadoras tem visibilidade total sobre a sinalizacao SIP em toda a infraestrutura.
tcpdump: captura remota
Quando voce precisa capturar trafego em um servidor remoto para analisar localmente no Wireshark, use o tcpdump:
tcpdump -i eth0 -w /tmp/captura.pcap port 5060 or portrange 10000-20000
Este comando captura todo o trafego SIP (porta 5060) e RTP (portas 10000-20000). Transfira o arquivo pcap para a sua estacao de trabalho e abra no Wireshark.
Para capturas longas, limite o tamanho do arquivo com -c (numero de pacotes) ou -G (rotacao por tempo):
tcpdump -i eth0 -w /tmp/captura_%Y%m%d_%H%M%S.pcap -G 3600 -c 100000 port 5060
Problemas comuns visiveis em traces
401/407 - Falha de autenticacao
Sequencia: INVITE > 407 Proxy Authentication Required > ACK > INVITE (com credenciais) > 401 Unauthorized. Indica senha incorreta ou usuario nao cadastrado. Verifique as credenciais no softswitch. No SipPulse SoftSwitch, os logs detalham o motivo exato da rejeicao de autenticacao.
503 - Service Unavailable
O softswitch ou SBC retorna 503 quando nao consegue processar a chamada (sobrecarga, rotas indisponiveis, licencas esgotadas). No SipPulse SBC, verifique o nivel de utilizacao (o equipamento suporta ate 4000 chamadas simultaneas) e a disponibilidade das rotas configuradas.
Audio unidirecional (one-way audio)
No trace, observe o SDP do INVITE e do 200 OK. Se os enderecos IP no campo c= do SDP sao enderecos privados (10.x, 172.16-31.x, 192.168.x), o problema e de NAT. O RTP esta sendo enviado para um IP que nao e alcancavel pelo outro lado. O SipPulse SBC resolve esse problema de forma nativa, realizando NAT traversal automatico para sinalizacao e media. O suporte a WebRTC e STIR/SHAKEN no SBC tambem aborda cenarios modernos de travessia de NAT.
Codec mismatch
Compare a lista de codecs no SDP do INVITE com a resposta no 200 OK. Se nao ha codec em comum, a chamada sera rejeitada com 488 Not Acceptable Here. O SipPulse SBC pode ser configurado para realizar transcodificacao entre codecs, eliminando problemas de incompatibilidade entre diferentes redes.
Timeout e chamadas sem resposta
Se o INVITE e enviado mas nao ha resposta (nem 100 Trying), o problema pode ser de conectividade de rede, firewall bloqueando a porta SIP ou o servidor de destino fora do ar. Use ping e traceroute para verificar a conectividade. Os logs do SipPulse SBC mostram claramente quais INVITEs nao receberam resposta e para qual destino foram enviados.
Boas praticas de captura
- Capture sempre com timestamp preciso (
-ttno tcpdump). - Inclua tanto o trafego SIP quanto o RTP nas capturas de troubleshooting.
- Rotule e armazene capturas com data, hora e descricao do problema.
- Em producao, implante Homer com HEP integrado ao SipPulse SBC e SoftSwitch para captura continua sem impacto no desempenho.
- Proteja os arquivos de captura, pois podem conter dados sensiveis (senhas em REGISTER, por exemplo).
- Use os logs integrados do SipPulse como primeira linha de investigacao antes de recorrer a captura de pacotes na rede.
Referencias
- Wireshark: https://www.wireshark.org/
- sngrep: https://github.com/irontec/sngrep
- Homer / SIPCAPTURE: https://sipcapture.org/
- HEP Protocol: https://github.com/sipcapture/HEP
- RFC 3261 - SIP: https://datatracker.ietf.org/doc/html/rfc3261
- tcpdump: https://www.tcpdump.org/
Artigos Relacionados

Redundância e Alta Disponibilidade em Plataformas de Voz
Entenda as estratégias de redundância e alta disponibilidade para plataformas de voz e como o SipPulse SoftSwitch e SBC implementam arquiteturas carrier-grade com failover transparente.

Como Escolher um SBC para a Sua Operação de Voz
Entenda o papel do Session Border Controller na sua rede de voz e aprenda a escolher o SBC certo com base em capacidade, protocolo e modelo de implantação.

Dimensionamento de Canais de Voz: Erlang, CPS e Capacity Planning
Aprenda a usar a fórmula de Erlang B, calcular CPS e dimensionar corretamente canais de voz, servidores de mídia e largura de banda para sua operação VoIP.