VoLTE Call 的建立
对于VoLTE call 来说,MO Call 和 MT Call 的过程基本是一致的。这里假设主叫UE和被叫UE已经在IMS网络中注册成功了。
并且两个UE都处于RRC Idle状态。
呼叫的过程可以大致分为下面 4 个阶段
- MO-MT VoLTE Call Initiation
- MO-MT VoLTE Call Proceeding
- MO-MT VoLTE Call Alerting and Answer
- MO-MT VoLTE Call Release
MO-MT VoLTE Call Initiation
呼叫的初始化阶段:
- 源UE构造SIP:INVITE消息,其中包括Qos preconditions 和 audio codec的顺序
- SIP:INVITE消息由IPSec pakcage封装,发送到EUTRAN。
- IMS Core 发送 SIP:100 trying到源UE。
- 目标UE在SIP:183 progress中指示codec choice。
MO-MT VoLTE Call Proceeding
信令继续进行,下面的红色框图部分。
- SIP:183触发了网络在源UE和目标UE间建立dedicated EPS承载。当SIP:183到达IMS Core(P-CSCF)时,它便触发了网络侧开始建立承载的过程。
- 源UE发送SIP:PRACK,来标识 codec selection和pre-conditions。(call 开始前的Qos需求)
- 目的UE发送SIP:200 OK来响应 SIP:PRACK。
MO-MT VoLTE Call Alerting and Answer
呼叫由Call Proceeding 继续进行,由SIP:200OK是接上一步。
- 源UE发送SIP:UPDATE消息来确认资源预定完成
- 目标UE在本地振铃,并通过SIP:180 Ringing向源UE发送back tone。
- 当用户接起电话后,目的UE向源UE发送SIP:200 OK,这个200OK是与INVITE匹配的
- 源UE发送SIP:ACK
- 媒体流建立完成
VoLTE Call 与 Internet Data 并发
VoLTE支持在对话过程中同时使用其他的数据业务。这里给了一个例子是当两个手机在进行对话的过程中,其中的一个又同时进行了上网操作。
1 开始状态MO UE和MT UE都已经attached,处于Idle状态,并且在IMS中注册完毕。
在开始Attach过程中,UE连接了2个不同的PDN,一个是用于Internet一个是IMS Service。
2 MO UE发起呼叫,MT UE被寻呼。
3 建立VoLTE call,并且开始对话。RTP每隔20ms进行一次数据交换。
4 MO UE用户在对话同时开始用手机上网。资源被同时分配给对话和上网操作。
5 VoLTE call结束。由于MO UE还在继续上网,所以他的DRB 仍然处于active状态,MT UE没有其他操作,释放RRC连接,并且进入Idle状态。
6 MO UE继续数据传输。
VoLTE Call 与 SMS 并发
这个场景是在VoLTE Call 对话进行中,UE1向UE2发送短消息的过程。
1 开始状态MO UE和MT UE都已经attached,处于Idle状态,并且在IMS中注册完毕。
2 MO UE发起呼叫,MT UE被寻呼。
3 建立VoLTE call,并且开始对话。RTP每隔20ms进行一次数据交换。
4 MO UE向MT UE发送了一条短信。
5 MT UE收到了短信,并返回200 OK给IMS Core,IMS Core向UE1 发送202 OK。
6 MO UE收到了202 OK。
7 MT UE 挂掉电话,发送SIP:BYT给MO UE。通话结束。两个UE都释放RRC连接,并进入Idle状态。过程结束。
在IMS Core中,有个模块叫做IP-Short-Message-Gatwary,IMS网络中的短消息是由它进行处理的。