文/张阳,本文来源于微信公众号:网优小谈(wireless_talk)
注册的目的是信息登记,并为后续的主被叫提前进行了相应的寻址。例如,主叫流程中信令所经历的网元路径就是在注册阶段被分配好的,并在该UE注册期间保持不变。
IMS域的的主叫信令流程总览如下:
1、首先UE向P-CSCF发出SIP INVITE请求,包含初始SDP消息,该初始SDP消息包含一个多媒体会话的一个或多个媒体流。
UE需要在INVITE消息了嵌入Accept:application/sdp,application/3gpp-ims+xml,这里主要指明了MIME(MultipurposeInternet Mail Extensions)的业务格式类型(例如XML、HTML或者还是WMV等业务媒体格式),以便被服务器进行正确的解码处理,这一点在计算机应用中很普遍,如果没有注明正确的类型,后果很难评估;
P-Early-Media: supported,支持该消息意味着支持主叫早放,例如,当收到180振铃指示,UE按授权进行相应的媒体播放;
P-Preferred-Identity: sip:[email protected],这里提供了用户的公共标识,与后续从S-CSCF传来的P-Asserted-Identity保持一致;
P-Preferred-Service:urn:urn-7:3gpp-service.ims.icsi.mmtel, IMS Communication Service Identifier(ICSI),IMS通信服务标识符在UE与网络侧标记着应用。UE通过该标识符分发SIP消息到正确的应用,而网络侧通过该标识选择正确的应用服务器;
a: *;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel",媒体类型标签,标识着终端可支持的软件应用,同时也表征着终端的能力(例如该终端是个电话或者是PDA);
在初始SIP请求中包含的SDP消息应严格符合RFC 4566中定义的SDP协议格式,包含不同域的排列顺序、以及域中内容的格式要求。
例如,从以上信令截图就可以解读如下信息:
该SDP协议版本为0,采取IPv6协议进行传输,会话类型是VOIP业务,这是一个单播业务,RTP包的带宽,会话活跃授时是不受限的,媒体类型为音频,传输端口为50010,传输协议RTP/AVP,同时还指明20ms产生一个音频包。音频采用动态编码格式,并且该媒体格式是收发式的。
当P-CSCF收到INVITE消息时候,需要反馈100(Trying)消息,意味着该消息P-CSCF已经收到,后续信令还在继续前送;
2、P-CSCF通过用户注册信息进行下一跳S-CSCF的转接。同时,P-CSCF根据用户注册信息或者存在INVITE消息里的用户优先级信息进行相应的优先级处理,并更新后的INVITE消息转发S-CSCF;
3、S-CSCF需要校验服务类型,如果请求中含有GRUU,需要确保GRUU与公共用户标识属于同一服务类型,同时基于用户的订阅的多媒体类型对用户SDP消息进行鉴权;
4、S-CSCF将INVITE消息转发到被叫的S-CSCF,如果INVITE消息里含有用户优先级信息,应一并转发;
5、S-CSCF接收反馈,其中包含了目的网络媒体流的能力;
6、S-CSCF将Offer Response消息转发到P-CSCF;
7、P-CSCF确保为此次会话提供的资源情况;
8、P-CSCF将Offer Response消息转发到终端;
183会话进程响应用来传递会话进程的信息,183消息里面的消息原因、标头域、消息实体可被用来传递关于会话进程更多的细节。
9、UE确认接收Offer Response消息,并将响应确认消息发送P-CSCF;
10、资源预留阶段,取决于IP接入网的策略,该资源预留既可以由UE发起也可以由接入网络发起,如果由UE发起,则在步骤8完成之后,如果由IP接入网发起,则在步骤7完成之后就可以触发;
11、P-CSCF将响应确认消息转发S-CSCF;
12、S-CSCF转发响应确认消息到被叫端网络;
13-15、被叫向主叫进行响应确认应答(这里真是来来回回的确认,不像电信网最多三次握手确认)
16-18、一旦资源预留完成,主叫UE发送资源预留消息并经P-CSCF中转至被叫端;
19-21、当被叫端资源预留成功后,反馈主叫端资源预留成功
22-24,被叫侧产生振铃,通过一系列网元转发主叫侧;
25、主叫UE通知用户被叫振铃;
26、当被叫接续后,被叫侧产生SIP-200最终响应;
27、S-CSCF将SIP200最终响应沿已建立好的信令通道发送P-CSCF;
28、P-CSCF指示已鉴权的媒体面启动(即后续可以传送话音);
29、P-CSCF将SIP200最终响应回送至主叫端;
30、UE开始进行媒体传送(话音)
31-33、UE对200 OK进行SIP ACK的反馈
200 ok是对INVITE的最终反馈,如果收到最终反馈后,UE还应该发送BYE消息将之前的对话终止,这里BYE结合后续的无线侧信令看,应该是一个主叫用户挂机释放指示。