LTE用户注册到IMS域后,就可以发起语音呼叫了。根据用户类型不同,分为IMS用户和IMS用户间的呼叫,以及IMS用户和CS间呼叫。这一讲讲解IMS用户和IMS用户间的呼叫流程。
IMS用户间呼叫架构图
两个IMS用户间发起呼叫,首先两个IMS用户都需要成功注册到IMS网络。然后终端A发起的SIP信令在IMS APN的缺省承载上转发,通过eNB,S/PGW到IMS域,再到终端B的IMS域,到S/PGW到eNB,发送到终端B。
进行VoLTE通话的媒体数据在IMS APN的专用承载上转发,通过终端A发送到eNB,到S/PGW,到达Internet,之后转发到另外一个终端B所在的S/PGW,eNB,发送到终端B。终端B发给终端A的媒体数据也是一样。
IMS用户间呼叫信令流程
UE A呼叫UE B,在IMS域缺省承载上发送SIP的invite消息到P-CSCF,消息中包括被叫的URI,主叫的URI,主叫UE的媒体能力,包括支持的媒体类型以及相应媒体的编解码能力等信息。
2、P-CSCF将Invite消息发给I/S-CSCF。
3、I/S-CSCF根据主叫用户签约的iFC模板数据,将Invite消息发给MMTel AS。
4、MMTel AS_A向主叫UE A提供语音业务后,发送INVITE消息到S-CSCF。
5、 S-CSCF根据号码格式,查询ENUM,获取下一跳路由地址。(去CS还是另一个IMS)。并且DNS返回被叫I-CSCF地址。
6、主叫S-CSCF将Invite消息发给被叫I-CSCF。
7、被叫I-CSCF向HSS查询被叫所在的S-CSCF地址。HSS返回S-CSCF地址。
8、被叫I-CSCF将Invite消息发给被叫S-CSCF。被叫S-CSCF根据被叫用户签约的iFC模板数据,将Invite消息发给MMTel AS。
9、MMTel AS/SCC AS向HSS发送UDR消息,请求获取被叫用户的T-ADS信息。(融合HSS上查询用户如果只在IMS域注册,则直接选择IMS域;如果只在CS域注册,则直接选择CS域。如果在IMS和CS都有注册,则需要进一步向MME查询,否则不需要去MME查询。)
10、HSS通过IDR消息向被叫MME查询被叫用户的T-ADS信息。
11、被叫MME将查询的结果通过IDA消息向融合HSS发送被叫用户的T-ADS信息。(MME在IDA消息中会返回IMS-voice-over-ps-session-supported信元携带supported,或unsupported,如果返回支持则选择IMS域,返回不支持则选择CS域)
12、HSS根据被叫MME返回的IDA消息将T-ADS信息通过UDA消息返回给MMTelAS/SCC AS。
13、MMTel AS/SCC AS基于获取的T-ADS信息,判断当前域选到IMS网络。MMTelAS/SCC AS确定被叫域选的网络后,通过Invite消息指示被叫S-CSCF将呼叫接续到特定网络。
14、被叫S-CSCF查询本地保存的被叫用户B注册的P-CSCF地址,将呼叫请求通Invite消息发送到被叫P-CSCF。
15、P-CSCF_B通过Invite消息将呼叫请求接续到UE_B。
16、被叫UE B返回180 Ringing响应给P-CSCF,在SDP中携带协商完成后的媒体类型及媒体编解码能力。
17、被叫P-CSCF通知被叫侧PCRF建立专用承载。
18、被叫P-CSCF将180响应转发至主叫P-CSCF。
19、主叫P-CSCF通知主叫侧PCRF建立专用承载。
20、被叫P-CSCF将180响应转发至主叫UE A。
21、主叫UE A发送PRACK请求给被叫UE B,表示主叫网络成功接收180响应,并且已完成资源预留。
22、被叫UE B返回针对PRACK请求的200响应,表示成功接收PRACK请求。
23、被叫UE B接听电话,被叫UE B向主叫网络返回针对Invite请求的200 OK响应。
24、主叫侧和被叫侧MMTel AS/SCC AS收到200 OK后,分别触发计费。
25、主叫UE A向被叫网络返回针对200(INVITE)响应的ACK确认消息,主、被叫UE成功建立会话。
之后UE A和UE B就可以进行正常的语音通话。