VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

JABBER_STATUS по JID без Resource

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
tonny_bennet
Сообщения: 169
Зарегистрирован: 21 дек 2011, 13:00
Откуда: Ростов-на-Дону
Контактная информация:

JABBER_STATUS по JID без Resource

Сообщение tonny_bennet »

Здравствуйте.

Вопрос наверное поднимавшийся не раз, но для меня не решён до конца:
Есть функция, возвращающая числовое значение статуса аккаунта Jabber - JABBER_STATUS. В описании сказано что аргументами должен быть jid или full jid (/resource)

https://wiki.asterisk.org/wiki/display/ ... BER_STATUS
Syntax

JABBER_STATUS(account,jid)

Arguments
account - The local named account to listen on (specified in jabber.conf)
jid - Jabber ID of the buddy to receive message from. It can be a bare JID (username@domain) or a full JID (username@domain/resource).
У меня определяется статус с указанием resource, а без него отдаёт статус 7 - not in roster. В сети много подобных вопросов и все ответы заканчиваются тем что используйте full jid.
Проблема заключается в том, что я наперёд не знаю какой ресурс мне подставить т.к. в общем он может быть любым PSI, PSI+, QIP и т.д. JID из базы я дёрну, а вот как узнать с какого клиента его запустили - не факт.

Есть ли этому понятное объяснение и может быть какое-то решение?

В качестве сервера использую ejabberd с автоматическим формированием ростера из LDAP (AD).
tonny_bennet
Сообщения: 169
Зарегистрирован: 21 дек 2011, 13:00
Откуда: Ростов-на-Дону
Контактная информация:

Re: JABBER_STATUS по JID без Resource

Сообщение tonny_bennet »

Ещё раз перерыл весь интернет и ничего так и не нашёл. Немного накостылял, приняв то, что у меня может быть только два клиента PSI+ и QIP. Ниже кусок диалплана на ael который у меня получился
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: jabber_status

Код: Выделить всё

    if ("${jid}"!="") {
          Set(jabb_psi=${JABBER_STATUS(jabber,${jid}/PSI+)});
         Set(jabb_qip=${JABBER_STATUS(jabber,${jid}/QIP)});

        Set(jabb_status=$[${jabb_psi} + ${jabb_qip} - 7]);

switch (${jabb_status}) {
    case 1:
               NoOp (JID: ${jid} Online);
              break;
    case 2:
               NoOp (JID: ${jid} Chatty);
               break;
    case 3:
               NoOp (JID: ${jid} Away);
               break;
    case 4:
               NoOp (JID: ${jid} XAway);
               break;
    case 5:
               NoOp (JID: ${jid} DND);
               break;
    case 6:
               NoOp (JID: ${jid} Offline);
               break;
    case 7:
               NoOp (JID: ${jid} Not in roster);
               break;
    default:
               NoOp (Что-то пошло не так!!!);
               };
    }
    else
    {
return;
    };
Аватара пользователя
Obi Van
Сообщения: 340
Зарегистрирован: 03 сен 2010, 11:21

Re: JABBER_STATUS по JID без Resource

Сообщение Obi Van »

tonny_bennet
Стоит Zentyal, который даёт Jabber. Таким не занимался. И непонятно, а на кой ему сдался клиент, стоящий у сотрудника? :geek: И кстати, а зачем плюшка? Я просто высылаю на нужное имя сообщение и не заморачиваюсь с выяснением кто и чего.
tonny_bennet
Сообщения: 169
Зарегистрирован: 21 дек 2011, 13:00
Откуда: Ростов-на-Дону
Контактная информация:

Re: JABBER_STATUS по JID без Resource

Сообщение tonny_bennet »

Obi Van писал(а):Я просто высылаю на нужное имя сообщение и не заморачиваюсь с выяснением кто и чего.
Да, Jabbersend работает без проблем если просто указать jid - т.к. наверное потому, что если он запущен с нескольких клиентов - сообщение получат все сразу.

А вот JABBER_STATUS предполагает. что если учётка запущена одновременно с нескольких клиентов ему нужно знать статус какого именно клиента нужно запросить :)
Obi Van писал(а):И кстати, а зачем плюшка?
Jabber как корпоративный стандарт неформального общения в компании, клиенты стоят у всех. Подумываю о том, чтобы прикрутить переадресацию на мобильный телефон если статус в Жабе Away или XAway т.е. если сотрудник заблокировал комп или просто отошёл, а тот уснул, звонок сразу полетит на мобильный.
Аватара пользователя
Obi Van
Сообщения: 340
Зарегистрирован: 03 сен 2010, 11:21

Re: JABBER_STATUS по JID без Resource

Сообщение Obi Van »

tonny_bennet
Очень прикольная однако плюшка )) Я смотрю в Ростове астериск популярнее с каждым годом ))
Я боюсь что "мои" не осилят. Тут с трудом переадресацию устанавливают, другие вообще жабер не читают (как так? :| ), другие вообще не знают что есть переадресация (инструкции разумеется прочесть не судьба).
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH