【问题现象】
eSRVCC切换时失败,测试终端听到“空号”音,发现SBC返回404 NOT FOUND消息。
【原因定位】
1、 我们在SBC上进行信令跟踪。从跟踪的信令看,SBC收到eMSC发来的Invite消息后,立即回复了“404NotFound”消息:
“404 Not Found”消息中的Warning内容如下:
Warning:39900000.00000.A.450.405.228.0.5.01130.00000000″Init Invite from EMSC Not Found Former Call”
2、根据Warning字面意思的判断,SBC/ATCF根据Invite消息中的C-MSISDN,无法找到该C-MSISDN号码对应的源呼叫,因此会话切换无法继续下去。那么,SBC/ATCF为何没有保存该用户的C-MSISDN呢?
3、 根据VoLTE终端的注册流程,用户的C-MSISDN应该由SCCAS通过Message消息传递给ATCF。如下图:
因此,注册时的这条Message消息是问题的关键。将该用户进行注销后再重新注册,观察注册流程是否异常。在SCCAS上跟踪到的消息如下:
可见,注册流程中并没有出现必备的Message消息,却出现了一条可疑的“500 Server Internal Error”消息。
4、仔细分析500错误消息之前AS与HSS交互的Diameter消息,结果发现AS收到的UDA消息存在失败:UDA消息返回的结果为“diameter-unable-to-deliver(3002)”,而该消息的源主机却是江苏南京的HDRA:
“NJDRA01AAL-B.nj.js.node.epc.mnc000.mcc460.3gppnetwork.org”。
5、该测试用户是江西本地的VoLTE测试号,向本省的HSS请求数据只需江西本省的LDRA转发即可,为何会牵涉到大区级的HDRA呢?由于AS发出的UDR消息是正确送至LDRA的,故需要LDRA进行配合。LDRA查询相关路由数据后,分析认为是LDRA没有针对UDR消息中IMSI格式的IMPU号码制作路由数据导致的。如下图:
图中显示UDR消息中的IMPU号码为sip:460023836399223@ims.mnc002.mcc460.3gppnetwork.org。LDRA需要对这种格式的IMPU做路由数据,否则LDRA会将请求送至更高一级的HDRA进行路由。而更高一级的南京DRA如果也没有制作对应的路由数据,就只能返回“diameter-unable-to-deliver(3002)”错误消息了。
原因小结:
UE在进行注册时,基本注册流程顺利完成,但在向SCCAS进行第三方注册时,由于LDRA漏做了IMSI格式的IMPU路由数据,导致SCCAS无法从HSS下载用户数据(包括C-MSISDN等SRVCC相关信息),即SCCAS不会发Message消息给ATCF传递C-MSISDN等SRVCC信息;因此ATCF没有该UE的SRVCC信息,认为该UE不支持SRVCC。因此,
1) 当UE发起呼叫时,ATCF不会将此呼叫进行SRVCC锚定,也不会进行本端媒体资源预留。
2) 当UE发起SRVCC切换请求时,ATCF根据C-MSISDN自然也无法找到对应的已锚定会话,最终导致切换请求失败。
【解决方案】
LDRA漏做IMSI号段导致用户无法进行eSRVCC切换。为此,LDRA添加了相关的路由数据,添加后数据如下,问题解决。
本文整理自网络,文章版权归原作者所有,如有侵权,请联系我们进行删除。小编微信(gprshome201101)
长按下方二维码图片 > 识别图中二维码 > 关注“51学通信公众号”
51学通信接头方式如下: