我目前正在使用 JAIN SIP 库
在 java 中编写应用程序,过去几天我一直在尝试使用 SUBSCRIBE
和 NOTIFY
消息。我目前有 NOTIFY
消息,其内容类型为“message/sipfrag;version=2.0
”,并且需要它是 XML 和 PIDF。
我知道我需要使用带有“presence
”的事件 header ,以及内容类型 header 。
是否有任何我可以去的地方有这方面的信息,或者是否有任何其他特定的标题或类和/或方法需要使这项工作?我已经有一个可以打电话的客户端,但现在需要实现在线状态。
最佳答案
仅供引用,rfc3863 仅定义了存在文档的基本结构/语义。 PIDF 将基本的存在文档建立为状态 - 具有可选的联系信息和其他信息(根据 PIDF 模式定义)。 PIDF 并没有真正规定存在协议(protocol)。对于那些您需要查看 [RFC3265][1] 和存在事件包 [RFC3856][2] 的详细信息。如果我们坚持使用非 IMS 网络,通常的调用流程包括:
SIP 注册到客户端可访问的 SIP/REGISTRAR 用户代理服务器 (UAS)。这也建立了存在实体(presentity)AoR(记录地址)——你是谁以及如何联系到你——即假设你想被联系。
SIP:PUBLISH - 包含 3 个非常关键的部分。首先,“事件” header 指示对存在包的支持,内容类型适当设置为 PIDF MIME 类型和正确的正文。
发布 sip:bob@example.org SIP/2.0 ... 事件:存在 内容类型:application/pidf+xml 内容长度:xyz
打开
成功发布后,您可以尝试使用 SUBSCRIBE 方法 - 尝试获取另一个在线状态实体(例如用户 jane@example.org)的状态。对于 SIP SUBSCRIBE,最基本的是定义适当的实体 SIP/URI 并指定正确的“事件包”。仔细查看指示的 RFC - 3265/3856 将帮助指导您了解基本行为。
祝你好运。 [1]: https://www.rfc-editor.org/rfc/rfc3265#section-4 [2]: https://www.rfc-editor.org/rfc/rfc3856#section-5
关于Java JAIN SIP 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22762285/