我正在使用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。
答案 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。如果您对贡献感兴趣,我将引导您如何在不同的解析器中重用现有代码,以启用此功能。你觉得怎么样?
问候