2

我目前正在使用 .java 编写一个应用程序,JAIN SIP library过去几天我一直在尝试使用SUBSCRIBENOTIFY消息来实现存在。我目前有NOTIFY内容类型为“ message/sipfrag;version=2.0”的消息,需要它是 XML 和 PIDF。

我知道我需要使用带有“ presence”的事件标头以及内容类型标头。

有没有我可以去的地方有关于这方面的信息,或者是否有任何其他特定的标题或类和/或方法来完成这项工作?我已经有一个可以拨打电话的客户,但现在需要实现存在。

4

2 回答 2

1

仅供参考,rfc3863 仅定义存在文档的基本结构/语义。PIDF 将基本存在文档建立为状态 - 带有可选的联系信息和其他信息(根据 PIDF 模式定义)。PIDF 并没有真正规定存在协议。对于那些您需要查看 [RFC3265][1] 和出席事件包 [RFC3856][2] 的详细信息的人。如果我们坚持使用非 IMS 网络,通常的呼叫流程包括:

  1. SIP 注册到客户端可访问的 SIP/REGISTRAR 用户代理服务器 (UAS)。这也建立了存在实体(presentity)AoR(记录地址)——你是谁以及如何联系你——即假设你想被联系。

  2. SIP:PUBLISH - 有 3 个非常关键的部分。首先,“事件”标头指示支持存在包、内容类型适当地设置为 PIDF MIME 类型和正确的正文。

    PUBLISH 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

于 2015-10-06T02:13:37.787 回答
0

在 SIP 中存在不止一种方法。如果您确定使用了 PIDF,那么您应该只使用 RFC 作为参考https://www.ietf.org/rfc/rfc3863.txt。就 SIP 标头而言,JSIP 可以正常工作,它将正确构造和解析 SIP 消息。实际的 SIP 消息内容解析/构造是应用程序的责任。Jitsi是一个开源客户端,如果您想查看一些示例代码,它就会出现,但它可能与您的情况完全不同。

于 2014-03-31T14:01:07.663 回答