怎么做html网站,大理建设局网站,襄樊网站建设,做网站设计管理的专业20240603 -
引言
分析SIP协议的时候#xff0c;发现了几个问题。虽然说#xff0c;从整体上来看这个SIP的通话流程也没麻烦#xff0c;实际上从RFC的概述部分就已经基本上就已经了解了全貌。但在实际的场景中#xff0c;很多字段起到的作用就不太一样了。
虽然一开始的时…20240603 -
引言
分析SIP协议的时候发现了几个问题。虽然说从整体上来看这个SIP的通话流程也没麻烦实际上从RFC的概述部分就已经基本上就已经了解了全貌。但在实际的场景中很多字段起到的作用就不太一样了。
虽然一开始的时候在RFC中看到了一些字段比较重要但实际上因为并没有完整的去捋清楚这些内容所以额也是在碰壁之后才理解这些字段的意义。
通话过程
文章[1]中阐述了主机流程 但实际场景中可能也稍微有所不同。该文章的示例中提到了prack这个包这部分我在普通的sip通信软件中并没有发现。另外update也没有发现。
实际上这些数据包比较重要的就是影响数据包路由的字段。因为实际的环境中可能设计很多中间的设备特别是SIP代理服务器这种因为并没有深入去理解SIP的内部所以并不是非常理解各种设备。
关键字段
via
这个字段比较奇葩的地方就是他的branch部分 SIP实体在插入branch ID时必须以“ z9hG4bK”开头[2] 这一点如果没仔细看过文档可能还真会以为是随机数。
route和record-route
这个字段也是非常关键的问答[3]中提到了via和route字段 Route headers are for requests and Via headers are for responses.[3] 如果想让数据包能够正确路由那么必须保证via和route这些字段有据可查 。
路由正确
想要路由正确[4]那么就必须保证很多字段他都是匹配的。特别是当一个数据包他带有某些字段中的随机数那么返回他的时候也必须带上用以正确匹配。 比如说via字段他经过一跳之后就进行了新增所以需要按照逐跳的形式来处理。
参考
[1]VoLTE SIP Call Flow – Mobile Originating (MO) Terminating (MT) [2]SIP消息的一般格式二 [3]How do I ensure that BYE messages bypass a SIP proxy? [4]sip 消息路由