2

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

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

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

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

1)如果我收到一个带有“[”IPv6address“]”格式的icid值的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。

4

1 回答 1

1

目前一些 IMS 标头解析器不支持完整的https://www.rfc-editor.org/rfc/rfc3455#section-5.6语法,就“gen-value”支持而言(包括 RFC3261 定义的“主机”包括您需要的 IPv6reference 定义)。这也适用于其他一些 IMS 标头(fe P-Charging-Function-Addresses...)。

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

问候

于 2016-06-21T15:49:42.550 回答