sip信令跟蹤工具sngrep

 

概述

在VOIP的使用過程中,最常見的問題就是信令不通和語音品質問題。

通常的問題跟蹤手段包括日誌分析、抓包分析。

抓包的工具有wireshark、tcpdump等等,如果是只針對sip信令的抓包,則sngrep更專業好用。

sngrep對SIP抓包的專業性體現在:

  1. 實時抓取,實時展示。
  2. 可以作為sip PCAP查看器。
  3. 對sip信令中的任意欄位設置過濾器。
  4. 對一個dialog的sip信令自動關聯。

 

環境

centos6,centos7

 

安裝

依賴庫

yum install ncurses-devel make libpcap-devel pcre-devel openssl-devel git gcc autoconf automake

 

 

yum源

vi  /etc/yum.repos.d/irontec.repo

[irontec]

name=Irontec RPMs repository

baseurl=http://packages.irontec.com/centos/$releasever/$basearch/

 

安裝

rpm --import http://packages.irontec.com/public.key

yum install sngrep

 

命令幫助 

[root@localhost ~]# sngrep --help

Usage: sngrep [-hVcivNqrD] [-IO pcap_dump] [-d dev] [-l limit] [-B buffer] [-LHE capture_url] [<match expression>] [<bpf filter>]

 

    -h --help            This usage

    -V --version         Version information

    -d --device          Use this capture device instead of default

    -I --input           Read captured data from pcap file

    -O --output          Write captured data to pcap file

    -B --buffer          Set pcap buffer size in MB (default: 2)

    -c --calls           Only display dialogs starting with INVITE

    -r --rtp             Capture RTP packets payload

    -l --limit           Set capture limit to N dialogs

    -i --icase           Make <match expression> case insensitive

    -v --invert          Invert <match expression>

    -N --no-interface    Don't display sngrep interface, just capture

    -q --quiet           Don't print captured dialogs in no interface mode

    -D --dump-config     Print active configuration settings and exit

    -f --config          Read configuration from file

    -F --no-config       Do not read configuration from default config file

    -R --rotate          Rotate calls when capture limit have been reached

    -H --eep-send        Homer sipcapture url (udp:X.X.X.X:XXXX)

    -L --eep-listen      Listen for encapsulated packets (udp:X.X.X.X:XXXX)

-E --eep-parse       Enable EEP parsing in captured packets

 

測試

指定網卡br0抓包

sngrep –d br0

 

主介面,展示所有抓取的sip信令,按照dialog展示

 

  

上下選擇某一個dialog,enter進入查看信令細節,本圖是一個註冊過程的信令

 

  

本圖是一個呼叫dialog的完整信令交互展示

 

  

總結

sngrep是一個非常好用的sip呼叫跟蹤工具,還有很多的細節和使用方法有待開發。

比如我們可以在sip server上對指定號碼抓取呼叫信令和rtp媒體流,用來跟蹤定位問題。

 


 

空空如常

求真得真