【问题现象】
华为SCC AS和Oracle SBC配合,eSRVCC切换失败。
【原因定位】
阶段1:发现华为SCC AS处理消息长度限制为512字节导致构造message失败:
按照注册流程,eSRVCC在注册时:1)ATCF会分配STN-SR,在注册消息发给SCC AS 时,SCC AS比较从HSS下载到的STN-SR,当两个STN-SR不一致时,SCC AS将通过PUR消 息修改HSS中的用户数据,HSS会将新的STN-SR数据下插到MME,切换时带给eMSC用以寻 址ATCF;2) SCC AS需要在注册最后阶段发送message消息发送给ATCF,message消息中 包含SCC AS分配的ATU-STI和C-MSISDN,其中ATU-STI用于ATCF后续寻址SCC AS;
从跟踪消息看,发现SCC AS存在两个问题:
1) 注册时SCC AS在注册的最后阶段也没有发送message消息给ATCF。
2) 在VoLTE用户注册时,CSCF从注册消息中获取SBC的STN-SR 是+8613640697,而 SCC AS和HSS消息交互显示HSS中设置的用户的STN-SR为8613741682。当SCC AS从CSCF 获得的STN-SR与从HSS下载到的STN-SR不一致,按照规范流程,此时SCC AS需要向HSS 发PUR消息更新用户信息,但从抓包消息看,SCC AS并未发起向HSS更新STN-SR的消息。
进一步分析发现,用户注册时,注册消息的Feature-Caps头域包含有STN-SR信息,但因 注册消息体超长,而华为SCC AS处理消息长度限制为512字节,在构造message消息前无法 获取STN-SR的相关信息,导致无法判决STN-SR是否相同、是否需要更新,因为导致无法发 起至HSS的STN-SR更新流程,以及至ATCF的message消息发送。此问题需华为SCC AS上安装补丁解决。
阶段2:Oracle SBC发送的注册消息的Feature-Caps格式有问题:
在华为SCC AS上安装补丁后,仍未发出至ATCF的message消息。分析发现Oracle SBC 发送的注册消息的Feature-Caps格式有问题,多了一个空格,导致填充message消息时解析错 误(红色部分之前):
Feature-Caps:*;+g.3gpp.atcf=”<tel:+8613740697>”;+g.3gpp.atcf-mgmt=”<sip: atcf12.fj.chinamobil
e.com>”;+g.3gpp.atcf-path=”<sip:SDrnhu9-vt9pmjnvjqrtjttircdgjnqvq6314g9g34402091vl312iig ve gh2gcjofo5p9sf404dkv1@10.184.119.182:5080;transport=udp;lr>”,
Oracle SBC修改配置去掉空格后,华为SCC AS可正常发出message消息。
阶段3:Oracle SBC拒绝华为SCC AS发出的message消息 Message消息发出后,SBC回了403响应拒绝。SBC认为message消息送错了端口,应该送到5080,而不是缺省的5060。检查ENUM/DNS的数据配置,发现DNS上解析的就是5060。
修改DNS配置端口为5080后,message消息被正常处理,eSRVCC注册流程成功。
阶段4:eSRVCC切换依然失败
SRVCC注册成功后,测试eSRVCC发现切换仍然无法成功。检查发现Oracle SBC上配置 atcf-route-to-sccas为disable,需要Oracle SBC修改配置解决。
【解决方案】
阶段1:华为SCC AS上安装补丁解决注册时不发message问题
阶段2:修改Oracle SBC上的Feature-Caps格式
阶段3:修改ENUM/DNS上解析的端口号
阶段4:修改Oracle SBC上的路由配置数据,重启后生效:
atcf-route-to-sccas disabled → enabled
本文整理自网络,文章版权归原作者所有,如有侵权,请联系我们进行删除。小编微信(gprshome201101)
长按下方二维码图片 > 识别图中二维码 > 关注“51学通信公众号”
51学通信接头方式如下: