- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用标准文档
SIP 进阶
wireshark 使用及实例分
析
文案大全
实用标准文档
一、 SIP 会话概念:
Call-ID :一个会话的唯一标识
CSeq:对应一个序号 +请求方法,例如 60 INVITE ,对应的响应也需要和这个 CSeq 一致,每
次不同的事务 CSeq都需要 +1,uac 和 uas 独立计算
Branch :会话中一个事务的唯一标识,一个事务简单说就是请求 + 响应,按标准必须以
z9hG4bK 开头,一般来说所有的请求的 Branch 都是不一样的,除了两个特殊的: CANCEL和
针对非 2xx 响应的 ACK需要和其取消的请求有一致的 Branch
From tag :会话中 uac 标识
To tag :会话中 uas 标识
以 call_id.pcapng 中的例子讲解:
1. [Call-ID] 从最初的 INVITE 到最后 BYE结束通话,整个算同一个会话,所以这中间的其
他请求( I 帧请求和 Session Timer 更新也是包含在这个会话当中)和响应都是同一个
Call-ID :
2. [Branch] 初始 INVITE 、uas 响应的 100/422 、uac 的 ACK确认是一个事务, Branch 应该
一样,这里 ACK因为是对 422 (非2xx )响应的,所以 Branch 也一致
接下来的 INVITE 、uas 响应的 180/200 是一个事务,而 ACK是针对 200ok (2xx )的,所以
是一个单独的 Branch
会话过程中的 INFO 和 UPDATE和对应的响应都是不同的 Branch ,最后的 BYE和 200 又是一
次事务,整个会话结束
3. [From tag&To tag] 整个会话过程中 From tag 和 To tag 都是唯一的
4. [Cseq]uac 和 uas 的 CSeq独立计算
文案大全
实用标准文档
二、wireshark 使用技巧
1. column 设置
我认为以下的 column 信息是必要的
2. 颜色规则
不同的协议,不同的服务器可以用颜色区分,按各自喜好设置
3. 数据过滤
ip.addr/ip.src/ip.dst
eth.addr/eth.src/eth.dst
udp.port/udp.srcport/udp.dstport
sip.Via.branch/sip.Call-ID/sip.CSeq/sip.Method
rtp.p_type/rtp.ssrc
文案大全
实用标准文档
4. Follow TCP/UDP Stream
5. Decode As
文案大全
实用标准文档
6. Preference-->Protocols
SSL
H.264 payload
RTP EVENT
文案大全
实用标准文档
三、实例分析(信令部分)
1. 连续两个新的事务请求( reinvite_transaction.pcap )
事务 1 的 CSeq为 107 INVITE ,事务 2 的 CSeq为 108 INVITE ,处理事务必须是按顺序来,
事务 1 未处理完成,所以处理事务 2 的响应 500 Internal Server Error ,并告知 Warning:
399 GS "Previous INVITE is not completed or terminated" ,响应和请求的匹配关系需
要通过
Call-ID 和 CSeq来判断
2. 多个会话和事务的区分( transaction.pacpng )
数据中包含了多个会话,其中注册以及后面的重注册算同一会话,可以按条件 sip.Call-ID
== "85953958
文档评论(0)