Blog
VoIP

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.

SipPulse - Equipe Técnica4 de maio de 20258 min de leitura
Compartilhar
Captura e Análise de Pacotes SIP com Wireshark e Homer

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 SIP
  • sip.Method == "INVITE" - apenas INVITEs (inicio de chamada)
  • sip.Method == "REGISTER" - apenas registros de endpoints
  • sip.Status-Code >= 400 - apenas respostas de erro (4xx, 5xx, 6xx)
  • sip.Call-ID == "abc123@host" - filtra por uma chamada especifica
  • rtp - 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

  1. O softswitch, SBC ou proxy SIP envia copias das mensagens SIP para o Homer via HEP (UDP, porta 9060 por padrao).
  2. O Homer armazena as mensagens em um banco de dados (PostgreSQL ou MySQL).
  3. 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

  1. Capture sempre com timestamp preciso (-tt no tcpdump).
  2. Inclua tanto o trafego SIP quanto o RTP nas capturas de troubleshooting.
  3. Rotule e armazene capturas com data, hora e descricao do problema.
  4. Em producao, implante Homer com HEP integrado ao SipPulse SBC e SoftSwitch para captura continua sem impacto no desempenho.
  5. Proteja os arquivos de captura, pois podem conter dados sensiveis (senhas em REGISTER, por exemplo).
  6. Use os logs integrados do SipPulse como primeira linha de investigacao antes de recorrer a captura de pacotes na rede.

Referencias

#SIP#Wireshark#Homer#troubleshooting#VoIP

Artigos Relacionados