《sip消息之invite》由会员分享,可在线阅读,更多相关《sip消息之invite(13页珍藏版)》请在金锄头文库上搜索。
1、SIP消息之逐项讲解,Agenda,SIP INVITESIP INVITE Message Body,SIP INVITE,INVITE sip:;transport=tcp SIP/2.0 Via: SIP/2.0/TCP 192.168.5.162;branch=z9hG4bK381ACAFC.537D4376;branched=FALSE; Max-Forwards: 69 Contact: Via: SIP/2.0/TCP 192.168.5.162:11499;ms-received-port=2992;ms-received-cid=b100 Record-Route: ;tag
2、=9B8AE5F9C759FB02F679AFD6CB71394C From: ;tag=704b1683edd4438f85a34adb6201e078;epid=d9176cec0c To: ;epid=203e516cd9 Call-ID: d455d3faf197403482154b9a319f54e0 CSeq: 1 INVITE Require: com.microsoft.rtc-multiparty Content-Type: application/sdp Content-Length: 134,SIP消息的第一部分:起始行(StartLine)本消息属于Request Li
3、ne,它所包含的信息:RequestType: 方法名就是INVITE,表示邀请其他用户加入会话Request-URI: sip:;transport=tcp, 这属于SIP URI中的“Address-of-Record(AOR)”种类。SIP Version:2.0版本号,SIP INVITE,INVITE sip:;transport=tcp SIP/2.0 Via: SIP/2.0/TCP 192.168.5.162;branch=z9hG4bK381ACAFC.537D4376;branched=FALSE; Max-Forwards: 69 Contact: Via: SIP/2.
4、0/TCP 192.168.5.162:11499;ms-received-port=2992;ms-received-cid=b100 Record-Route: ;tag=9B8AE5F9C759FB02F679AFD6CB71394C From: ;tag=704b1683edd4438f85a34adb6201e078;epid=d9176cec0c To: ;epid=203e516cd9 Call-ID: d455d3faf197403482154b9a319f54e0 CSeq: 1 INVITE Require: com.microsoft.rtc-multiparty Con
5、tent-Type: application/sdp Content-Length: 134,SIP消息的第二部分:消息头(Message Header)Via:记录了请求在SIP网络中的路由路径。最下面的Via是初始化这个请求的UA(User Agent)插入的;上面的Via都是在这个路由路径上的Proxy们插入的。Via头域就是用来指示如何将响应沿原路返回到UA的。,SIP INVITE,INVITE sip:;transport=tcp SIP/2.0 Via: SIP/2.0/TCP 192.168.5.162;branch=z9hG4bK381ACAFC.537D4376;branc
6、hed=FALSE; Max-Forwards: 69 Contact: Via: SIP/2.0/TCP 192.168.5.162:11499;ms-received-port=2992;ms-received-cid=b100 Record-Route: ;tag=9B8AE5F9C759FB02F679AFD6CB71394C From: ;tag=704b1683edd4438f85a34adb6201e078;epid=d9176cec0c To: ;epid=203e516cd9 Call-ID: d455d3faf197403482154b9a319f54e0 CSeq: 1
7、INVITE Require: com.microsoft.rtc-multiparty Content-Type: application/sdp Content-Length: 134,SIP消息的第二部分:消息头(Message Header)Max-Forwards:最大转发数,用来限制一个SIP请求消息所能经过的实体的最大数目。如果消息拷贝中包含一个Max-Forwards字段,代理服务器必须将其减一。如果消息拷贝中不含Max-Forwards字段,代理服务器必须加入该字段,其值应该为70。如果请求消息中包含Max-Forwards字段,且其值为零,则SIP实体不得转发,并且返回48
8、3(Too Many Hops)响应。,SIP INVITE,INVITE sip:;transport=tcp SIP/2.0 Via: SIP/2.0/TCP 192.168.5.162;branch=z9hG4bK381ACAFC.537D4376;branched=FALSE; Max-Forwards: 69 Contact: Via: SIP/2.0/TCP 192.168.5.162:11499;ms-received-port=2992;ms-received-cid=b100 Record-Route: ;tag=9B8AE5F9C759FB02F679AFD6CB71394
9、C From: ;tag=704b1683edd4438f85a34adb6201e078;epid=d9176cec0c To: ;epid=203e516cd9 Call-ID: d455d3faf197403482154b9a319f54e0 CSeq: 1 INVITE Require: com.microsoft.rtc-multiparty Content-Type: application/sdp Content-Length: 134,SIP消息的第二部分:消息头(Message Header)From Tag,To Tag,和Call-ID构成了dialog信息,可以唯一标识
10、一个dialog。在本次呼叫(Call)中的所有请求和响应将使用同样dialog信息。Call-ID的构成:伪随机数字+”+主机名或者IP地址,SIP INVITE,INVITE sip:;transport=tcp SIP/2.0 Via: SIP/2.0/TCP 192.168.5.162;branch=z9hG4bK381ACAFC.537D4376;branched=FALSE; Max-Forwards: 69 Contact: Via: SIP/2.0/TCP 192.168.5.162:11499;ms-received-port=2992;ms-received-cid=b10
11、0 Record-Route: ;tag=9B8AE5F9C759FB02F679AFD6CB71394C From: ;tag=704b1683edd4438f85a34adb6201e078;epid=d9176cec0c To: ;epid=203e516cd9 Call-ID: d455d3faf197403482154b9a319f54e0 CSeq: 1 INVITE Require: com.microsoft.rtc-multiparty Content-Type: application/sdp Content-Length: 134,SIP消息的第二部分:消息头(Messa
12、ge Header)CSeq: Command Sequence Number用于标识事务并对事务排序。由一个序列号和请求方法组成。呼叫开始时初始化CSeq。非REGISTER请求的CSeq,序列号值可以是一个任意的32位无符号整数。CSeq按照各自方向严格单向按1递增。CSeq能够区分某个请求是新请求还是重发的请求。,SIP INVITE,INVITE sip:;transport=tcp SIP/2.0 Via: SIP/2.0/TCP 192.168.5.162;branch=z9hG4bK381ACAFC.537D4376;branched=FALSE; Max-Forwards: 6
13、9 Contact: Via: SIP/2.0/TCP 192.168.5.162:11499;ms-received-port=2992;ms-received-cid=b100 Record-Route: ;tag=9B8AE5F9C759FB02F679AFD6CB71394C From: ;tag=704b1683edd4438f85a34adb6201e078;epid=d9176cec0c To: ;epid=203e516cd9 Call-ID: d455d3faf197403482154b9a319f54e0 CSeq: 1 INVITE Require: com.microsoft.rtc-multiparty Content-Type: application/sdp Content-Length: 134,SIP消息的第二部分:消息头(Message Header)Contact: 包含的SIP/SIPS URI是UA希望用来接收请求的地址,后续请求可以用它来联系到当前UA。如果代理服务器没有插入Record-Route字段来希望自己留在后续请求消息的传输路径上,那么可以忽略这些代理服务器,后续请求直接用Contact字段的URI来通讯。当Contact中包含一个显示名称时,带有所有的URI参数的URI应该放入尖括号中。,