【问题现象】

终端在LTE网络下拨打VoLTE电话,终端发送INVITE消息后,收到SBC回复的500错误,变成CSFB电话。

【问题分析】

分析发现中兴S-CSCF处理SBC转发主叫发起的invite消息时回复了500错误,错误的原因是由于SBC发送给S-CSCF网元的INVITE消息中携带的PCV头部有问题,具体的PCV头部信息如下:

SIP信令中PCV头部中携带了两个ecid信息(红框显示),第二个ecid是“1F890A6F”,这个里面有一个换行符(0A),导致S-CSCF网元上解码认为头部结束,从而认为不合语法规范,获取ecid失败。

根据29.214协议,PCRF等网元通过RX接口返回的接入网络计费标识值(Access-Network-Charging-Identifier-Value)的语法类型定义: The Access-Network-Charging-Identifier-Value AVP (AVP code 503) is of type OctetString, and contains a charging identifier。

根据24.229协议,SBC通过RX接口返回的信息中ecid参数来编码上述计费标识信息,SIP协议的语法定义如下:

eps-bearer-hierarchy = "eps-info" EQUAL LDQUOT eps-info *(COMMA eps-info) RDQUOT

eps-info = eps-item SEMI eps-sig SEMI ecid [SEMI flow-id]

eps-item = "eps-item" EQUAL DIGIT

eps-sig = "eps-sig" EQUAL ("yes" / "no")

ecid = "ecid" EQUAL 1*HEXDIG

DIGIT =  %x30-39  ; 0-9

HEXDIG =  DIGIT / "A" / "B" / "C" / "D" / "E" / "F"

 

根据上述语法定义,这里涉及一个OctetString到HEXDIG字符的转换问题,SBC对RX接口返回的部分不可见字符不支持(如“0x1f890a6f”中的“0A”为换行符),导致上述问题。

 

【问题解决】

SBC进行相应的版本或补丁解决。