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
注: 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 | 不接受 |