Java JAIN SIP 状态

标签 java sip jain-sip

我目前正在使用 JAIN SIP 库 在 java 中编写应用程序,过去几天我一直在尝试使用 SUBSCRIBENOTIFY 消息。我目前有 NOTIFY 消息,其内容类型为“message/sipfrag;version=2.0”,并且需要它是 XML 和 PIDF。

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

是否有任何我可以去的地方有这方面的信息,或者是否有任何其他特定的标题或类和/或方法需要使这项工作?我已经有一个可以打电话的客户端,但现在需要实现在线状态。

最佳答案

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

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

  2. 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/

相关文章:

java - 通知无需遵循 AlarmManager 即可工作

java - 有没有办法使用Java来比较mp3文件?

java - 将 Vaadin CheckBox 保存到 JPA 的正确方法是什么?

ios - 为桌面 Mac 构建和编译 PJSIP

java - jain sip processResponse() 没有被调用

java - 使用 xstream 反序列化具有重复条目的 xml

android - 在 SipDroid 中使用 g729 编解码器时出错

c - SIP用户代理与SIP服务器连接的信息(Opensip)

java - 如何在 Java 中自动应答所有 SIP 调用

java - Android 上的 JainSip : Sending REGISTER throws Exception