sngrep 是一款专业的sip抓包工具,且可以解析tcpdump抓出来的包。
sip协议(会话初始协议),是一种多媒体通信协议;
sip协议的消息主体(报文部分)一般使用的是SDP消息格式。
RTP是一种数据传输协议
tcpdunmp的基本抓包命令:tcpdump -s 0 -i eth0 udp -w outbound_m_22.pcap
-i指定了网卡-w抓包后的文件名
sngrep也存在抓包命令,但是没有具体用过。这里记录几个用过的命令
sngrep -d eth0指定网卡抓包,仅抓通过网卡eth0的信息;sngrep -I in.pcap用sngrep打开用tcpdump打开的抓包sngrep -d eth0 -r使用-r参数抓取的信息包含rtp流
前台使用sngrep
注: sngrep需单独安装,这里不描述安装过程
在命令行输入sngrep,进入到主页面

最下面的一行展示了一些用法介绍
Esc退出当前工具Enter进入了消息详情space选中当前数据,再次点击取消选择F1进入帮助页面F2保存符合条件列(比如选中的列,符合筛选条件的列等)F3进入搜索页面,可以按条件进行搜索F4将选中行的信息在一个屏幕内进行拼接展示F5清除当前页面的内容F7进行筛选条件的设置F10自定义设置需要展示的列
保存文件

扩展拼接展示

自定义设置需要展示的列之后的效果

请求详情页面

最下面的一行展示了一些用法介绍
Esc返回上一层Enter上下滑动,选择消息后,点击进入了消息详情space选中当前数据,滑动再次选择一条数据,会将这两条的数据进行对比F1进入帮助页面F2显示SDP消息格式的一些信息。包括: 地址信息,每天类型,占用端口,编码方式,频率等信息F3打开RTP流的信息,展示了当前rtp流的编码,媒体传输数量,双方端口号,若是正在进行的会话。会显示是否有数据流传输F4回到第一个消息s修改地址栏是否展示地址端口F6以Raw格式展示协议c进行颜色的调整9向左移动报文,0向右移动报文- SDP文本信息中,
a=sendrecv表示消息是有效的;a=inacative表示消息是无效的; - 媒体端口是0,也表示消息是无效的;
a=rtpmap:101 telephone-event/16000表示按键信息,但是sngrep不会展示按键信息;=rtpmap:18 G729/8000协商的一种编码信息
数据对比

响应页面

附件
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 | 不接受 |
sngrep使用教程
本文介绍了sngrep这款专业的SIP抓包工具的使用方法,包括基本命令、操作指南及如何解析TCPdump抓取的数据包。同时提供了SIP请求与响应消息类型的详细解释。
7572

被折叠的 条评论
为什么被折叠?



