sip信令跟踪工具sngrep
概述
在VOIP的使用过程中,最常见的问题就是信令不通和语音质量问题。
通常的问题跟踪手段包括日志分析、抓包分析。
抓包的工具有wireshark、tcpdump等等,如果是只针对sip信令的抓包,则sngrep更专业好用。
sngrep对SIP抓包的专业性体现在:
- 实时抓取,实时展示。
- 可以作为sip PCAP查看器。
- 对sip信令中的任意字段设置过滤器。
- 对一个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媒体流,用来跟踪定位问题。
空空如常
求真得真
sip信令跟踪工具sngrep的更多相关文章
- SIP信令跟踪工具HOMER
概述 HOMER是一款100%开源的针对SIP/VOIP/RTC的抓包工具和监控工具. HOMER是一款强大的.运营商级.可扩展的数据包和事件捕获系统,是基于HEP/EEP协议的VoIP/RTC监控应 ...
- 推荐windows下的日志跟踪工具:SnakeTail
用过Linux的同学都知道,在Linux中要实时跟踪日志文件那是非常的方便,Tail.Less都可以做到. 开启动态跟踪后,程序会监视文件修改,从而不断刷新出最新的内容,对于线上运维特别有用. 今 ...
- 项目管理和缺陷跟踪工具Redmine
官网: http://www.redmine.org/ http://demo.redmine.org/ 下载: http://www.redmine.org/projects/redmine/wik ...
- PLSQL_性能优化效能跟踪工具SQL Trace分析(案例)
2014-06-25 Created By BaoXinjian
- readmine项目管理和缺陷跟踪工具
官方网站:http://www.redmine.org/演示地址:http://demo.redmine.org/下载地址:http://www.redmine.org/projects/redmin ...
- 分享两个网址,一个是使用mssql自带的跟踪工具和分析工具
http://www.cnblogs.com/Fooo/archive/2013/02/19/2916789.html 使用mssql自带的跟踪工具和分析工具 http://blog.csdn.net ...
- 服务跟踪sleuth和可视化跟踪工具Zipkin
一.增加配置 在Order工程中添加配置 <dependency> <groupId>org.springframework.cloud</groupId> < ...
- 谷歌开源漏洞跟踪工具 Monorail 存在跨站点搜索漏洞
一名安全研究员表示,在谷歌开源漏洞跟踪工具 Monorail 中找到一个漏洞,可被用于执行跨站点搜索 (XS-Search) 攻击. Monorail 用于检查和 Chromium 相关项目中的问题, ...
- 【多线程】死锁与Java栈跟踪工具
今天面试有一道题,写一个死锁的程序,自己也是短路了,没写出来,回来写下. 死锁常见的情况是A线程持有a锁.阻塞于b锁,B线程持有b锁,阻塞于a锁,形成一个循环阻塞的状态. import java.ut ...
随机推荐
- Sentry Web 性能监控 - Metrics
系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...
- 全局CSS样式表
看api手册使用即可 1.按钮和图片 2.表格.表单 表单的lable作用就是点击前面的文字可以聚焦到对应的输入框中
- msf宏钓鱼
kali下载python脚本,生成rtf文件: 下载脚本:git clone https://github.com/bhdresh/CVE-2017-8759.git 生成rtf文件: python ...
- Java-枚举(Enum)
1.枚举概述 枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常熟.当一个变量有几种固定可能的取值时,就可以将其定义为枚举类型. 1.1 声明枚举 Java中枚举是一个特殊的类,使用enum关 ...
- .Net core 的热插拔机制的深入探索,以及卸载问题求救指南.
.Net core 的热插拔机制的深入探索,以及卸载问题求救指南. 一.依赖文件*.deps.json的读取. 依赖文件内容如下.一般位于编译生成目录中 { "runtimeTarget&q ...
- hadoop集群搭建详细教程
本文针对hadoop集群的搭建过程给予一个详细的介绍. 参考视频教程:https://www.bilibili.com/video/BV1tz4y127hX?p=1&share_medium= ...
- 433MHZ SPI模块使用心得
最近使用了433MHZ的模块进行了一个通讯项目,选用的是SX1208模块,对接了RTOS和Linux两个操作系统,使用心得如下: 1. 首先要拿来datasheet看一遍,通揽一下它的功能.可以得到一 ...
- sql查询字段语句
SELECT * from jd_content where 景点简介 like '%东城%'
- echsop设置伪静态
1.后台商店设置-基本设置-URL重写开启 2.修改httpd.conf文件 AllowOverride None 改为 AllowOverride AllLoadModule rewrite_mod ...
- Java基础系列(8)- 数据类型
数据类型 强类型语言 要求变量的使用合乎规定,所有的变量都必须先定义才能使用.Java是强类型语言. 弱类型语言 变量定义比较随意,比如"12"+3,可以是int型123,也可以是 ...