java - jain-sip-ri 的 PChargingVectorParser 不接受 P-Charging-Vector 的 icid-value 中的 IPv6

标签 java sip restcomm mobicents-sip-servlets

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

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

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

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

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

例如:

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

我收到以下异常,并且 header 已被 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) 如果我尝试使用 icid-value 或 icid-generated-at 参数以“[”IPv6address“]”格式生成 P-Charging-Vector,我会遇到相同的 Parse 异常。

这似乎没有遵循 rfc。

最佳答案

目前一些 IMS header 解析器不支持完整的 https://www.rfc-editor.org/rfc/rfc3455#section-5.6语法,根据“gen-value”支持(包括 RFC3261 定义的“host”,其中包括您需要的 IPv6reference 定义)。对于其他一些 IMS header (fe P-Charging-Function-Addresses...)也是如此。

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

问候

关于java - jain-sip-ri 的 PChargingVectorParser 不接受 P-Charging-Vector 的 icid-value 中的 IPv6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37856517/

相关文章:

java - neo4j 程序取决于已签名的 jar (mapdb)

java - 在Java中,是否可以(静态)导入构造函数或局部变量?

java - 恢复jenkins根文件夹config.xml文件

sip - 如何更改 RestComm 中的默认回铃音?

sip-server - Restcomm默认用户名和密码

java - 从 Vertex 实例中获取 Json 格式的 String

java - 如何调用 SIP 电话

java - Asterisk:- 如何使用 java 在 Asterisk 框中实现自动拨号

android - android中的局域网调用

webrtc - 未能构建 'RTCPeerConnection' : Unsatisfiable constraint IceTransports