SIP-如何使用资源列表xml订阅buddylist

时间:2013-12-20 07:41:20

标签: xml sip subscribe jain-sip opensips

我需要对资源列表实施SIP订阅,在哪个标记下我应该放置包含所需SIP ID的xml好友列表(以监控其状态)。请注意,我正在使用Jain-SIP API,并且我实现了单一订阅并且工作正常,但我在使用多个资源进行监视时遇到了困难。 应按照http://tools.ietf.org/search/rfc5367

中的说明添加的XML
<?xml version="1.0" encoding="UTF-8"?>
<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<list>
<entry uri="sip:bill@example.com" />
<entry uri="sip:joe@example.org" />
<entry uri="sip:ted@example.net" />
</list>
</resource-lists>

我想用好友列表xml:

构建sip请求
SUBSCRIBE  sip:rls@example.com SIP/2.0
Via: SIP/2.0/TCP terminal.example.com;branch=z9hG4bKwYb6QREiCL
Max-Forwards: 70
To: RLS <sip:rls@example.com>
From: <sip:adam@example.com>;tag=ie4hbb8t
Call-ID: cdB34qLToC@terminal.example.com
CSeq: 1 SUBSCRIBE
Contact: <sip:terminal.example.com>
Event: presence
Expires: 7200
Require: recipient-list-subscribe
Supported: eventlist
Accept: application/cpim-pidf+xml
Accept: application/rlmi+xml
Content-Type: application/resource-lists+xml
Content-Disposition: recipient-list
Content-Length: 337

<?xml version="1.0" encoding="UTF-8"?>
<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<list>
<entry uri="sip:bill@example.com" />
<entry uri="sip:joe@example.org" />
<entry uri="sip:ted@example.net" />
</list>
</resource-lists>

最佳,

1 个答案:

答案 0 :(得分:1)

我假设您正在使用javax.sip.message.Message接口或javax.sip.message.SIPRequest对象的实例来创建传出的SUBSCRIBE请求。在这种情况下,您可以使用setContent方法指定请求的正文内容。

另一方面,正确检测服务器是否支持多个收件人订阅的方法是发送OPTIONS请求,并在相应的200 OK响应中检查 Supported:标头是否包含{{1选项标签。 SIP消息流应该类似于:

recipient-list-subscribe