2013-12-20 1 views
0

Мне нужно реализовать подписку SIP на список ресурсов, под которым следует поместить список друзей xml, который содержит желаемый идентификатор SIP (для контроля их состояний). Обратите внимание, что я использую Jain-SIP API, и я реализовал единую подписку и отлично работаю, но мне трудно работать с несколькими ресурсами для мониторинга. XML, который должен быть добавлен, как указано в http://tools.ietf.org/search/rfc5367SIP- как подписаться на buddylist, используя список ресурсов 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:[email protected]" /> 
<entry uri="sip:[email protected]" /> 
<entry uri="sip:[email protected]" /> 
</list> 
</resource-lists> 

Я Wich построить запрос глотнуть с списка контактов XML:

SUBSCRIBE sip:[email protected] SIP/2.0 
Via: SIP/2.0/TCP terminal.example.com;branch=z9hG4bKwYb6QREiCL 
Max-Forwards: 70 
To: RLS <sip:[email protected]> 
From: <sip:[email protected]>;tag=ie4hbb8t 
Call-ID: [email protected] 
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:[email protected]" /> 
<entry uri="sip:[email protected]" /> 
<entry uri="sip:[email protected]" /> 
</list> 
</resource-lists> 

Бест,

+0

Что вы подразумеваете под "тегом"? Я имею в виду, что вы - тело XML, для меня это прекрасно. – jcm

+0

HI @jcm, я имел в виду TAG, который заголовок. Я использую Jain-Sip Java API для создания запроса SIP. Я создаю заголовки (TO, from, through, content-Type, contact и т. Д.), Затем добавляю их в запрос. Мой вопрос был в том, какой заголовок должен я поставить XML ?, потому что у меня нет заголовка Body. – Salim

+0

HI @jcm, что касается моего первоначального вопроса, есть ли у вас идея узнать, может ли мой SIP-сервер обрабатывать SUBSCRIPTION в списке ресурсов. например, что я должен поместить в заголовок TO для адресации в RLS (сервер списка ресурсов). Модель pbx: User-Agent: FortiVoice/7.31b00. спасибо – Salim

ответ

1

Я полагаю, вы используете javax.sip.message.Message или экземпляр объекта javax.sip.message.SIPRequest для создания исходящего запроса SUBSCRIBE. В этом случае вы можете использовать метод setContent для указания содержимого тела запроса.

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

Client UA      Server 
|        | 
|----------------------------->| 
|   OPTIONS   | 
|<-----------------------------| 
|    200 OK   | 
|  (Contains Supported: | 
| recipient-list-subscribe | 
|        | 
|----------------------------->| 
|   SUBSCRIBE   | 
|<-----------------------------| 
|    200 OK   | 
+0

Привет @jcm, спасибо, что это работает, я использовал setcontent и xml успешно добавлен к запросу SIP: request.setContent (sipClientBO.getResourceXMLasString(), contentTypeHd); – Salim

+0

HI @jcm, что касается моего первоначального вопроса, есть ли у вас идея узнать, может ли мой SIP-сервер обрабатывать SUBSCRIPTION в списке ресурсов. например, что я должен поместить в заголовок TO для адресации в RLS (сервер списка ресурсов). Модель pbx: User-Agent: FortiVoice/7.31b00. спасибо – Salim

+0

@Gladiator Пожалуйста, проверьте мое последнее обновление, зная, поддерживает ли сервер подписок для запроса списка ресурсов контейнера. – jcm

Смежные вопросы