SIP- как подписаться на список рассылки, используя список ресурсов xml

Мне нужно реализовать подписку SIP на список ресурсов, под которым я должен поместить список друзей xml, который содержит желаемый SIP ID (для мониторинга их состояний). Обратите внимание, что я использую Jain-SIP API, и я реализовал одну подписку и работает нормально, но я сталкиваюсь с трудностями при работе с несколькими ресурсами для мониторинга. XML, который необходимо добавить, как указано в http://tools.ietf.org/search/rfc5367

<?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>

Я хочу построить sip-запрос с помощью списка друзей xml:

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 ответ

Я полагаю, вы используете javax.sip.message.Message интерфейс или экземпляр к javax.sip.message.SIPRequest Объект для создания исходящего запроса ПОДПИСАТЬСЯ. В этом случае вы можете использовать setContent метод для указания содержимого тела запроса.

С другой стороны, способ правильно определить, поддерживает ли ваш сервер подписку на нескольких получателей, - отправить запрос OPTIONS и в соответствующем ответе 200 OK проверить, что заголовок Supported: содержит recipient-list-subscribe опция тега. Поток сообщений SIP должен выглядеть примерно так:

Client UA                        Server
 |                              |
 |----------------------------->|
 |            OPTIONS           |
 |<-----------------------------|
 |             200 OK           |
 |      (Contains Supported:    |
 |    recipient-list-subscribe  |
 |                              |
 |----------------------------->|
 |           SUBSCRIBE          |
 |<-----------------------------|
 |             200 OK           |
Другие вопросы по тегам