北京,大雨滂沱的夜晚,人们结束了一周的疲惫或已归巢,或还在返家途中,金融街还有无数的楼宇在漆黑的夜幕中点亮希望的灯光。开此公众号也有大半年光景了,期间更新并不是很频繁,但基本保持原创。其实写此类技术文章甚为枯燥,经常在结束一天疲惫的工作后,不仅需要抗拒身心的慵懒,同时还要在台灯下查阅各种详细资料以求得专业文章描述尽量精准。写这些非专业人士看不懂的“天书”意义到底何在呢?有人说还不如利用时间炒股来的实在。诚然,在追名逐利的时代,耗费心血写些劳什子的技术八股文简直是拖时代的后腿,但是人总要活得有点情怀,经常看到文章教导我们说要不忘初心,初心到底是什么?初心其实就是你来到这个世界最本真的诉求,内心不过多受外界环境左右所渴求的梦想。笔者多年以来浑浑噩噩,近几年以来才渐渐的发现了自己的初心,写这些文章不是要改变世界,拯救产业,只不过回归了一把读书人恬淡与执着。古人讲究修身、齐家、治国、平天下,这也许就是中国人最朴素的信仰,虽然后三者还没实现,但通过潜心治学修了把身,也算能做到谈笑有鸿儒,往来无白丁了吧。
SRVCC篇
VoLTE技术里面重要的一项流程就是SRVCC(eSRVCC可以看成SRVCC的增强,本文后续进行介绍)。目的类似于跨系统的互操作,为了在LTE覆盖受限的区域保证用户VoLTE通话的连续性,需要进行跨系统SRVCC(Single Radio Voice Call Continuity)。从接入网角度进行观察,SRVCC也同样经历测量、判决等相应步骤,因此可以认为是一种跨系统的切换,但是区别于传统的例如23G话音CS-CS域切换,SRVCC一般则属于PS-CS域的一种切换流程。互操作流程一般是网络优化技术中研究的热点、难点,SRVCC也不例外,对于LTE网络建设的初级阶段,不可避免会触发大量SRVCC流程。
熟悉SRVCC技术,不仅需要从流程入手,同样需要重视IMS网络架构原理,因为为了引入SRVCC,网络结构起了相应的变化,也新增加了跨系统的接口。
以下列出一些笔者觉得比较重要的概念
1、协议(23.216)规定SRVCC的触发条件应该与E-UTRAN与UTRAN/GERAN的PS切换流程保持一致,也就是说,当触发PS切换事件满足后,也应该能够触发SRVCC切换;
2、对于视频电话,LTE网络侧需要分别为视频以及话音建立两条独立的EPS承载;
3、对于漫游情形,拜访地网络需要根据用户归属地网络策略进行相应的跨系统/跨域转换;
4、在IMS网络中引入针对(v)SRVCC的网络锚点,SCC AS;
5、QCI=1只被作为话音承载;
6、多个媒体流复用有如下方式,可以多个媒体流的话音复用一个话音承载,而视频分别承载在相应的视频承载上;也可以多个媒体流复用在一个媒体承载上;
7、协议表明SRVCC不仅从EUTRAN的PS域到CS域,同时也可以从UTRAN/GRRAN的CS域到EUTRAN的PS域,不过现网只进行了单向的转换,即PS-CS转换,在该篇笔记中我们将注意力聚焦在PS-CS切换上;
一旦上传测量报告触发异系统测量以及切换判决门限,MME会通过S1收到切换请求。如果MME含有关于该UE的STN-SR标识,MME会通过与MSC Server的Sv接口触发SRVCC流程。MSC server会与IMS进行协商,同时与UTRAN/GERAN目标小区互动进行CS域切换资源准备。当MSC server完成资源准备后,会通过Sv接口向MME发送CS切换响应,同时也会包含必要的CS域切换信息,例如频点、邻区等信息。如果在触发SRVCC时,用户同时保持了PS的数据业务,在SRVCC的流程里,数据业务同样也要进行切换,即PS-PS切换, MME负责协调整个流程中的PS-PS切换响应以及SRVCC的PS-CS切换响应。
如上图所示,这里需要改造的是MSC Server,因为其主要功能不仅在于与MME进行互联,同时还存在于与IMS域协调执行SRVCC流程。对于支持SRVCC功能的UE,需要在LTE网络Attach或者TAU过程中上报的字段“MS Network Capability”中都要明确。MME会存储相应的UE能力信息。如果UE的所支持的能力有所改变,需要通过TAU流程上报改变后的能力信息。另外值得注意的是,关于终端支持的MSClassmark3,MS Classmark 2,支持的编码方式等字段是通过附着请求或者非周期的TAU进行更新的。在这里,为了SRVCC流程实现,需要对一些新增实体功能进行定义:
1、MSCServer增强
(1) 处理来自MME关于话音的重定位准备流程请求,如果来自Sv接口附带有优先级标识(ARP),则进行一并处理;如果收到ICS(以IMS作为中央控制的业务逻辑)的标识(true),则将MSC Server作为ICS受控实体;
(2) 协调CS切换以及会话迁移
(3) 无需等待UE触发LAU,即可处理MAP_Update_Location;这里也隐含着一层意思,对比CSFB流程,CSFB回落2G过程中,起呼之前是需要做LAU通知MSC server此时UE处于的位置,但是SRVCC属于切换流程,MSC Server通过资源准备,预先知道UE回落的小区,因此可以不需要UE触发就进行核心网侧位置区更新流程。
2、MME
(1) 增加PS承载分离处理功能,即可以区分处理承载语音以及数据的两种PS承载;
(2) 能够处理数据业务的PS-PS切换流程;
(3) 处理话音业务的SRVCC的切换流程,如果多个话音承载中包含一个紧急会话,那么MME只处理紧急会话的SRVCC流程;
(4) 兼具协调并发PS切换以及SRVCC切换的能力
(5) MME需要具备传递优先级指示的能力。
3、E-UTRAN
LTE接入网功能在SRVCC流程中涉及空口的实体并不需要改变,但是需要有能力通知MME该切换流程为SRVCC。另外,E-UTRAN无法动态获取周边4G邻小区列表信息,因此,如果当一个VoLTE话音用户尝试切换一个没升级(及不支持VoIP)的目标小区时,将会被该目标小区拒绝。
以下结合SRVCC现网的一些实际测试log对主要信令流程进行解读(这里2G或者终端不支持DTM模式):
1、以下log可以看出在执行SRVCC切换之前的最后一次测控消息,下发了需要测量的2G频点列表(已通过OMC预先进行配置),同时下发了异系统判决事件以及相应门限,这里下发的是B1事件的门限,可以估计是某厂家的设备;
最后一次测量上报结果说明测到了绝对频点号(arfcn)为70,网络色码010,基站色码100的GSM小区满足触发判决门限需要,上报基站等待后续切换判决;
2、根据UE的测量报告,eNodeB决定是否触发想GERAN的SRVCC切换
3、 源eNodeB向源MME发送切换请求,其中包含目标ID,一般源至目标透传容器(原谅我没有能更好的中文翻译),SRVCC切换指示。一般源至目标透传容器中包含旧BSS到新BSS的消息,同时SRVCC切换指示表明只切换到目标小区的CS域,并不包含PS业务的切换;
4、 MME中的承载分离功能根据与QCI1相关的话音承载以及SRVCC标识将话音承载从非话音的PS承载中分离出来,并启动PS-CS切换;
5、 MME向MSC Server发送SRVCC PS-CS切换请求,其中可以包含鉴权过的IMSI、目标ID、STN-SR, C‑MSISDN, 一般源至目标透传容器,加密安全信息、Emergency Indication;
6、 如果是MSC Pool组网,MSC Server会通过2G核心网内部流程发送切换准备请求至目标MSC,如果MSC Server收到了关于优先级的ARP,也封装在切换准备请求中发送到目标MSC;
7、 目标MSC与目标BSS通过切换请求/应答进行资源分配。如果目标MSC指示了优先级,则BSS根据优先级进行相应无线资源分配,这里意味着优先级用户在VoLTE中享受什么样的服务,那么在SRVCC后到2G享受同样的服务;
8、 目标MSC向MSC Server发送切换准备响应消息;
9、 在MSC Server与目标MSC之间建立电路域连接;
10、 MSC Server通过STN-SR初始化会话转移至IMS,如果获取到优先级标识应当一并转发至IMS相应处理实体,对IMS的优先级指示应当确保和IMS之前在PS域中创建的保持一致;
11、在会话迁移过程中,IMS远端通过SDP进行信息更新,意味着下行的VoIP话音需要通过CS路径承载;
12、源IMS路径被释放;
13、MSC Server向MME发送SRVCC PS-CS切换响应(目标至源透传容器);
14、 源MME向源E-UTRAN发送切换命令(目标至源的透传容器),这里只针对话音;
15、 区别于以往我们认知的E-UTRAN侧的RRC层三信令,这里新增了一条 MobilityFromEUTRACommand,主要执行的就是SRVCC切换流程,它可以由handover的方式进行也可以cellchangeorder(CCO)的方式进行,我们这里的现网log则是以handover的方式进行处理
16、UE转换到2G网络;
17、 在目标BSS区域的切换检测,一旦切换完成后,UE会通过目标BSS上传切换完成消息至目标MSC,如果目标MSC不是MSC Server,那么目标MSC会进一步通过核心网内部消息将切换完成消息发送至MSC Server;
18、 UE发起数据业务挂起流程,从而触发SGSN向源MME进行了挂起指示。MME随之也会发送目标SGSN应答指示。值得注意,该流程可与19-22步骤同步进行,也就意味着在2G中数据业务挂起流程和切换完成消息并不冲突,因为SGSN进行数据业务处理,而MSC控制话音业务处理。另外如果MME无法从收到的P-TMSI和RAI中推导出GUTI,就有可能无法根据挂起通知确定是那些用户上下文需要被挂起,例如这样的情况,相应的承载可能会像步骤22a一样被去激活和/或挂起。同时对于非GBR的承载,MME会发送挂起指示通知S-GW,S-GW会释放UE的S1-U的承载,同时发送挂起指示到P-GW。MME存储UE挂起的状态,同时S-GW和P-GW会将这些保存的非GBR承载标注为挂起状态。如果收到关于挂起UE的包,P-GW也会做丢弃处理;
19、目标BSS发送切换完成消息到目标MSC;
20、目标MSC发送SES消息(包含切换完成)到MSC Server,语音电路连接到MSC Server/MGW;
21、完成建立流程;
22、这步流程是MSC Server与MME的互动,MSC Server发送SRVCC PS-CS完成指示到MME,指明UE已经在目标2G MSC侧进行接续,源MME通过SRVCC PS-CS完成应答消息进行响应;
22a、 MME去激活语音以及其他GBR业务的承载。所有的这些GBR承载去激活指令通过MME触发的专用承载去激活过程发送给S-GW和P-GW。PS-CS切换指示也通过该流程一并通知P-GW。S-GW在基于隧道协议(GTP)的S5/S8接口上通过发送删除承载指令给P-GW,要求P-GW把所有的GBR都删除掉。对于基于PMIP协议的S5/S8,SGW与PCRF交互信息一次更新PCC策略用以处理P-GW的GBR业务;
22b、 源MME释放S1接口资源,MME向源eNodeB发送释放S1信令连接,同时eNodeB进行响应;
23a、如果HLR进行更新,即IMSI被鉴权但是在VLR中还没更新,MSC Server使用其非广播LAI标识和网络资源标识(NRI)进行TMSI重分配。这个TMSI重分配流程由MSC Server通过目标MSC通知UE;
23b、如果MSC Server触发了TMSI重新分配,并且重分配过程成功完成,MSC Server向HSS/HLR发起MAP Update Location流程;
在SRVCC到2G语音通话结束后,2G的SGSN会通过相应的接口将挂起的数据业务进行恢复,也就是说SRVCC通话结束后,用户照常能像2G终端一样在2G网络使用数据业务,另外当用户返回4G网络后可以通过TAU或者Service Request流程进行挂起的数据业务承载恢复;
未完待续,不定期更新~