sip 时序图_呼叫中心使用技巧之 sngrep捕获sip数据包

安装请参考 https://github.com/irontec/sngrep/wiki/Building

一、演示使用centos7安装配置

git clone git@github.com:irontec/sngrep.git –depth=1

cd sngrep/

./bootstrap.sh

报错缺少依赖 直接安装依赖即可

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

脚本执行成功

你可以将以下标志传递给. /configure 以启用某些功能

配置标志功能

–with-openssl 添加OpenSSL支持来解析捕获的消息( 请求。 libssl )

–with-gnutls 添加GnuTLS支持来解析捕获的消息( 请求。 gnutls )

–with-pcre 在正则表达式字段中添加Perl兼容的正规表达式 支持

–enable-unicode 添加 Ncurses/unicode支持( 要求。 libncursesw5 )

–enable-ipv6 启用IPv6数据包捕获支持。

–enable-eep 启用EEP数据包发送/接收支持。

./configure

执行成功

make && make install

二、运行sngrep

呼叫列表窗口

空格选中呼叫流 ,回车进入

呼叫流窗口

CSeq简单的呼叫流着色消息

通过请求/响应着色消息的多个呼叫流的组合视图

点击回车进入调用原始窗口

空格选中两条消息流,回车进入消息差异窗口

F8设置

列表选择

F7滤镜对话框

F2保存对话框

统计

sngrep 参数

-h --help:显示帮助信息

-V --version:显示版本信息

-d --device:指定抓包的网卡

-I --input:从pacp文件中解析sip包

-O --output:输出捕获的包到pacp文件中

-c --calls:仅显示邀请消息

-r --rtp:捕获RTP数据包有效载荷捕获rtp包

-l --limit:限制捕获对话的数量

-i --icase:使大小写不敏感

-v --invert:颠倒(不太明白)

-N --no-interface:不显示sngrep界面,仅捕获

-q --quiet:不要在***面模式下打印捕获的对话框

-D --dump-config:打印活动的配置设置并退出

-f --config:从文件中读取配置

-R --rotate:达到捕获限制时轮换呼叫。

-H --eep-send:荷马sipcapture网址(udp:XXXX:XXXX)

-L --eep-listen:监听封装的数据包(udp:XXXX:XXXX)

-k --keyfile:RSA私钥文件解密捕获的数据包

抓取INVITE请求的包:

sngrep ^INVITE

抓取REGISTER请求的包:

sngrep ^REGISTER

抓取OPTIONS请求的包:

sngrep ^OPTIONS

捕获端口5060上的所有SIP数据包:

sngrep port 5060

使用sngrep查看来自pcap文件的SIP数据包,并使用过滤器:

sngrep -I file.pcap host 192.168.1.1 and port 5060

或实时捕获,将数据包保存到新文件:

sngrep -d eth0 -O save.pcap port 5060 and udp

三、页面

sngrep有四个页面,每个页面都有一些不同的快捷键。

呼叫列表页面

呼叫流程页面

原始呼叫信息页面

信息对比页面

呼叫列表页面

快捷键

• 箭头键:在列表中移动,除上下箭头还可以使用j,k来移动光标

• 输入:显示当前或所选对话框的消息流

• 答:自动滚动到新电话,自动滚动到新的电话

• F2或S:将所选/所有对话框保存到PCAP文件,保存对话框到pacp文件

• F3或/或TAB:输入显示过滤器。该过滤器将应用于列表中的文本行,进入搜索

• F4或x:显示当前选择的对话框和其相关的一个。回到第一个SIP消息上

• F5:清除通话清单,清空通话清单

• F6或r:以原始文本显示所选对话框的消息,显示原始的sip消息

• F7或f:显示高级过滤器对话框显示高级过滤弹窗

• F9或l:如果启用,则打开/关闭地址解析

• F10或t:选择显示的列,显示或隐藏侧边sip消息栏

呼叫列表页面还能够显示两个弹窗,按f可以显示高级过滤配置

按t可以显示,自定义呼叫列选项弹窗

呼叫流程页面

快捷键

键绑定:

• 方向键:浏览消息

• 输入:显示当前的原始消息(以便您可以复制有效负载)

• F2或d:显示sdp消息,f2的某个模式变为时序图更紧凑

• F3或t:显示或关闭sip侧边栏

• F4或x:回到顶部

• F5或s:每个ip地址仅显示一列

• F6或R:显示原始的sip消息

• F7或c:更改颜色模式,有的颜色模式很容易让人无法区分当前查看的sip消息是哪一个,所以需要更改颜色模式

• F9或l:如果启用,则打开/关闭地址解析

• 9和0:增加或减少侧边栏的宽度

• T:重绘侧边栏

• D:仅显示带有sdp的消息

• 空格键:选择一个sip消息,再次找个sip消息,然后就会进入对比模式

原始sip消息界面

消息对比界面

在呼叫列表页面上按空格键输入一个消息,然后选择另外一个sip消息后,再次按空格键,就可以进入消息对比页面

分析媒体问题

使用sngrep -r可以用来捕获媒体流,默认不加-r则只能显示信令。

在呼叫流程页面,点击F3,可以动态的查看媒体流的情况。在分析语音问题时,这是非常方便的分析工具。

ngrep使用注意点

• 如果不要抓取的sngrep抓包,否则sgrep会占用非常多的内存。如果必须抓取的包,则使用tcpdump。

• 某些情况下,sngrep会丢包

• 某些情况下,sngrep会什么包都抓包不到,注意此时很可能要使用-d去指定抓包的网卡

• 如果ABC分别是三台独立虚拟机的SIP服务器,在B上抓包只能分析AB,和BC直接的流量。sngrep只能捕获本机网卡的接收和发送的流量。

• 如果您需要记录所有的sip消息,并展示。可以考虑使用siphub,或者homer。

附件
sip信令的格式及状态码参考文章: https://www.cnblogs.com/11sgXL/p/13553517.html

请求消息类型及含义

请求消息 消息含义
INVITE

发起会话请求,邀请用户加入一个会话,会话描述含于消息体中。对于两方呼叫来说,主叫方在会话描述中指示其能够接受的媒体类型及其参数。 被叫方必需在成功响应消息的消息体中指明其希望接受哪些媒体,还可以指示其行将发送的媒体。如果收到的是关于参加会议的邀请,被叫方可以根据 Call-ID或者会话描述中的标识确定用户已经加入该会议,并返回成功响应消息。

ACK证实已收到对于 INVITE 请求的最终响应。该消息仅和 INVITE 消息配套使用。
BYE释放已建立的呼叫
CANCEL取消尚未完成的呼叫请求,对于已完成的请求(即已收到最终响应的请求)则没有影响。
REGISTER向SIP网络服务器登记用户位置信息 → 即注册认证
OPTIONS查询服务器的能力

 


状态码    消息功能
1xx    信息响应(呼叫进展响应)0 表示已经接受到请求消息,正在对其进行处理
100    试呼叫
180    振铃
181    呼叫正在前转
182    排队
2xx    成功响应 表示请求已经被成功接收、处理并被成功接受
200    OK
3xx    重定向响应 表示需要采取进一步动作,以完成该请求消息
300    多重选择
301    永久迁移
302    临时迁移
303    见其他
305    使用代理
380    代换服务
4xx    客户出错 表示请求消息中包含语法错误或者SIP服务器不能完成对该请求消息的处理
400    错误请求
401    无权
402    要求付款
403    禁止
404    没有发现
405    不允许的方法
406    不接受
407    要求代理权
408    请求超时
410    消失
413    请求实体太大
414    请求URI太大
415    不支持的媒体类型
416    不支持的URI方案
420    分机无人接听
421    要求转机
423    间隔太短
480    暂时无人接听
481    呼叫腿/事务不存在
482    相环探测
483    调频太高
484    地址不完整
485    不清楚
486    线路忙
487    中止请求
488    此处不接受
491    待处理请求
493    难以辨认
5xx    服务器出错 表示SIP服务器故障不能完成对正确消息的处理
500    内部服务器错误
501    没实现的
502    无效网关
503    不提供此服务
504    服务器超时
505    SIP版本不支持
513    消息太长
6xx    全局故障 表示请求不能在任何SIP服务器上实现
600    全忙
603    拒绝
604    都不存在
606    不接受


————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_39768762/article/details/111849436

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值