【问题现象】
VoLTE主叫在通话在呼叫过程中发生eSRVCC切换,切换成功,通话没有断话,但主、被叫均听不到对方的声音。
【原因定位】
判断可能的原因:
1) eMSC和ATGW之间的媒体面IP承载不通;
2) ATCF和eMSC信令之间的媒体协商有问题;
3) eMSC和ATGW之间的媒体流有问题。
原因排查:
1) 首先eMSC和ATGW之间的媒体面互ping,均能ping通,基本可以排除eMSC和ATGW之间的媒体面IP承载不通导致语音不通的可能性。
2) 其次,如果是VolTE用户在4G下拨打2G的用户,主叫发生切换以后,语音双发都能听到,所以完全排除eMSC和ATGW之间的媒体面IP承载不通导致语音双向不同的可能性。
3) 对比4G打4G、4G打2G的eSRVCC呼叫流程,SDP的offer和answer的信息也都是一样的,这样就将ATCF和eMSC信令之间的媒体协商问题排除。
4) 仔细分析4G打4G、4G打2G的呼叫场景,虽然eSRVCC发生时流程和SDP都没有啥区别,但是呼叫建立里,SDP的消息还是有区别的:
4G打4G时,是VoLTE终端之间的SDP协商,协商出来的codec是AMR-WB。
4G打2G时,是VoLTE终端和MGCF之间的SDP协商,协商出来的codec是AMR。
而eMSC不支持AMR-WB,发出的INVITE携带的codec是AMR以及其他一些codec,因此无论是4G打4G还是4G打2G,eMSC和ATCF之间协商出的codec都是AMR。
5) eSRVCC发生时,主叫切换的媒体不会影响到被叫,同样,被叫的切换媒体也不会影响到主叫。因此:
a) 4G打4G,eMSC和ATGW之间是AMR,ATGW和被叫之间是AMR-WB,在ATGW上需要做编解码转换;
b) 4G打2G,eMSC和ATGW之间是AMR,ATGW和被叫之间是AMR,ATGW不需要做编解码转换;
那么会不会是ATGW上编解码转换有问题导致媒体不通呢?
6) 为了验证我们的这个想法,我们在SBC上将AMR的优先级提升,使之高于AMRWB。这样VolTE终端协商出来的codec就是AMR,此时主叫再做eSRVCC的切换,果然主被叫双方都能听到语音。
至此,我们确认了是ATGW上AMR和AMR-WB之间的编解码转换有问题导致语音不通。
7) 经过最终排查,发现是ATGW上有个开关被错误的打开了,正常情况下该开关应该是disable。
在ATGW上执行以下命令,将该开关关闭,问题就得到了解决:
def profile h2 statistics pack bjbgw xnq disable
本文整理自网络,文章版权归原作者所有,如有侵权,请联系我们进行删除。小编微信(gprshome201101)
长按下方二维码图片 > 识别图中二维码 > 关注“51学通信公众号”
51学通信接头方式如下: