Como realizar coleta de evidências com SNGREP

Este documento visa mostrar como realizar captura de uma chamada contendo a sinalização(SIP) e áudio(RTP). Evidências em um chamado técnico de VoIP são essenciais para uma análise completa e precisa, garantindo uma resolução eficaz de problemas e a manutenção da qualidade do serviço de comunicação.

Isso inclui análise de pacotes SIP para identificar problemas de sinalização, bem como a captura de pacotes RTP para examinar a qualidade e integridade do áudio transmitido.

 

Para ambientes com mais de 1.000 chamadas simultâneas o comando SNGREP não é indicado, recomendamos realizar a captura pelo tcpdump ou ngrep salvando diretamente em um arquivo sem exibição em tela

 

Rodar o sngrep por muito tempo pode consumir recursos do servidor, causando impacto em outros serviços.

Para observar esse comportamento, você pode abrir outro terminal e utilizar o comando htop para monitorar o ambiente durante a captura:

htop

Caso você feche o acesso ssh sem sair do sngrep ele ficará rodando em segundo plano e consumindo recursos de forma indevida:

image-20240328-132349.png

Para encerrar o sngrep em segundo plano identifique os processos com:

ps -ef | grep sngrep -------------> listar os processos kill -9 123456 123456 123456 -----> encerrar os processos listados
image-20240328-132945.png

 

 

Em cenários com fluxo baixo de chamadas podemos utilizar o SNGREP, ele tem alguns parâmetros que podem ser utilizados em conjunto para aplicar filtros ou capturar o RTP junto da sinalização:

Exemplos:

sngrep -------------> Captura toda sinalização sip (ex. options, register...) sem RTP sngrep -c ----------> Captura somente chamadas sngrep -r ----------> Captura os pacotes RTP (audio da chamada) sngrep 8540 --------> Captura toda sinalização que contem o número como origem ou destino

É possível fazer uma combinação de parâmetros:

sngrep -rc 8540 ----> Captura o audio(RTP), somente chamadas, filtrando pelo número 8549

 

No exemplo abaixo a captura foi feita com os seguintes parâmetros:

sngrep -rc 3510

Note que ao filtrar por 3510 capturou toda sinalização onde tem esse número no início, meio ou fim da origem ou do destino.

image-20240328-135525.png

Com a sinalização aberta no sngrep aperte F2 para mostrar o SDP e F3 para mostrar o RTP.

image-20240328-141144.png

 

Após selecionar a sinalização desejada aperte F2 para salvar a captura:

image-20240328-140000.png

Atenção ao salvar o arquivo: Para chamadas onde o objetivo é capturar o áudio é necessário utilizar o parâmetro “-r” e salvar SIP+RTP.

Também é possível realizar filtros com a captura em execução apertando F3:

image-20240328-140259.png

 

Abrindo uma captura com o sngrep:

É possível abrir um arquivo pcap pelo sngrep após salva-lo.

sngrep -rI /caminho/do/arquivo.pcap

 

Cenários com mais de um servidor RTP:

Para cenários onde há mais de um servidor RTP no mesmo grupo, recomendamos que seja criado um grupo isolado contendo somente o servidor RTP que roda no proxy onde será feita a captura (é necessário ter o serviço de rtp rodando no mesmo servidor).

Isso irá garantir que o áudio passe pelo mesmo servidor onde a sinalização está passando e seja capturado pelo sngrep:

image-20240328-141833.png

Após criar o novo grupo ajuste no profile do assinante:

image-20240328-142154.png

Isso garantirá que consiga capturar o áudio com a sinalização.

 

Dica:

Analise as opções disponíveis em cada tela e navegue entre elas dentro do Sngrep para aprender mais.

Aperte F1 em cada tela para ver o “help”:

image-20240328-154024.png
image-20240328-154340.png

 

Ao abrir uma captura marcando ela com espaço e apertando enter as opções mudam:

image-20240328-154432.png

 

 

 

SIPPulse Routing and Billing Solutions for SIP