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.
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.
Com a sinalização aberta no sngrep aperte F2 para mostrar o SDP e F3 para mostrar o RTP.
Após selecionar a sinalização desejada aperte F2 para salvar a captura:
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:
Abrindo uma captura com o sngrep:
É possível abrir um arquivo pcap pelo sngrep após salva-lo.
sngrep -I /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:
Após criar o novo grupo ajuste no profile do assinante:
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”:
Ao abrir uma captura marcando ela com espaço e apertando enter as opções mudam: