jain-sip-ri的PChargingVectorParser不接受P-Charging-Vector

时间:2016-06-16 10:27:08

标签: java sip restcomm mobicents-sip-servlets

我正在使用mss(mobicents sip servlets)构建一个SIP应用程序。

P-Charging-Vector 具有 icid-value icid-generated-at 参数。

根据rfc3455和rfc3261, icid-value icid-generated-at 参数可以采用以下形式:“[”IPv6address“]”。< / p>

我正在使用 jain-sip-ri版本1.2.242 并面临两个问题:

1)如果我收到格式为“[”IPv6address“]”的icid-value的SIP请求,

例如:

P-Charging-Vector:icid-value = [2a02:ed0:1000:3033 :: 249]; orig-ioi = 1223abc4; icid-generated-at = [2a02:ed0:1000:3033 :: 249]

我收到以下异常,并且sip堆栈删除了标题:

java.text.ParseException: [C@53fad5b4
Expecting  >>>;<<< got >>>[<<<
        at gov.nist.core.LexerCore.match(LexerCore.java:287)
        at gov.nist.javax.sip.parser.ims.PChargingVectorParser.parse(PChargingVectorParser.java:81)
        at gov.nist.javax.sip.parser.StringMsgParser.processHeader(StringMsgParser.java:294)
        at gov.nist.javax.sip.parser.StringMsgParser.parseSIPMessage(StringMsgParser.java:179)
        at gov.nist.javax.sip.stack.UDPMessageChannel.processIncomingDataPacket(UDPMessageChannel.java:357)
        at gov.nist.javax.sip.stack.UDPMessageChannel.run(UDPMessageChannel.java:317)
        at java.lang.Thread.run(Thread.java:745)

2)如果我试图用格式为“[”IPv6address“]”的icid-value或icid-generated-at参数生成P-Charging-Vector,我得到相同的Parse异常。

似乎没有遵循rfc。

1 个答案:

答案 0 :(得分:1)

目前,在“gen-value”支持方面,某些IMS头解析器不支持完整的https://tools.ietf.org/html/rfc3455#section-5.6语法(包括RFC3261定义的“主机”,包括您需要的IPv6引用定义)。对于一些其他IMS报头(fe P-Charging-Function-Addresses ...)也是如此。

我已创建此问题以跟踪此偏差https://github.com/RestComm/jain-sip/issues/105。如果您对贡献感兴趣,我将引导您如何在不同的解析器中重用现有代码,以启用此功能。你觉得怎么样?

问候