51学通信论坛2017新版

标题: VoLTE案例:三星终端主叫VOLTE拨打GSM问题,错误码400 Bad Request [打印本页]

作者: admin    时间: 2017-9-16 19:43
标题: VoLTE案例:三星终端主叫VOLTE拨打GSM问题,错误码400 Bad Request

[attach]535[/attach]

【问题现象】
主叫三星终端以VoLTE方式拨打CS被叫(现网GSM用户),呼叫未能成功建立,被叫侧未看到呼入请求。
【原因定位】
故障诊断:
初步判断是呼叫未能成功breakout至CS域。经测试抓包发现,终端在常规Precondition流程后PRACK消息发送到MGCF后,MGCF返回400BadRequest给主叫终端,导致通话建立失败,呼叫请求并未路由至CS域。
原因排查:
对相应问题进行IMS各网元抓包,基于Precondition的呼叫流程(INVITE/183offer/answer)初期一切正常。
但此后,信令跟踪发现三星终端又发起PRACK消息来重新刷新SDP。分析PRACK消息,发现PRACK消息中携带的SDP参数与其他终端成功建立呼叫的情况有所不同,最后导致了MGCF回复400 Bad Request。
原因分析:
对比三星终端和其他成功情况下发出的PRACK消息,可以看到:
此问题场景中,SDP参数携带a=des:qos none local none。
正常成功的场景中,SDP参数携带a=des:qos none local sendrecv。
根据RFC规范描述,“sendrecv”指示了本地终端预留的资源已保存在sending和receiving
两个方向,“none”指示未预留资源。
由于移动网络中是采用Precondition方式建立呼叫的,在INVITE/183offer/answer后主叫终端应完成资源预留,此时终端再发出PRACK指示资源未在本地预留就不符合流程预期了。因此,MGCF认为PRACK SDP中指示的Diretion-Tag=none是错误的,返回400BadRequest终结了呼叫建立流程。导致通话建立失败。
【解决方案】
爱立信反馈了该问题给三星终端厂家,后续三星终端根据反馈修改了手机配置,该场景中终端发出的PRACK SDP指示被修改为Sendrev,符合流程预期,从而MGCF顺利把呼叫请求路由至CS域,问题得到解决。
[attach]536[/attach]



声明:本文转载自网络。版权归原作者所有,如有侵权请联系删除。




欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/) Powered by Discuz! X3