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 |