Не получается отправлять сообщения из астера в Jabber, в логах астера ничего о попытках отправки тоже нет.... Если включить отладку XMPP, то в консоли попыток отправки сообщения в jabber тоже не видно.
Модуль xmpp в фстер загружен
| Код: |
| CLI> module load res_xmpp.so Loaded res_xmpp.so == Parsing '/etc/asterisk/xmpp.conf': Found == Manager registered action JabberSend == Registered application 'JabberSend' == Registered application 'JabberSendGroup' == Registered application 'JabberStatus' == Registered application 'JabberJoin' == Registered application 'JabberLeave' == Registered custom function 'JABBER_STATUS' == Registered custom function 'JABBER_RECEIVE' -- Message technology handler 'xmpp' registered. Loaded res_xmpp.so => (Asterisk XMPP Interface) |
Астер к жабберу подключен - 146% - входящие по jabber сообщения в консоли астера появляются. Т.е. xmpp.conf настроен правильно.
Т.е. поступающие сообщения он (астер) видит, но сам не отправляет.
| Код: |
| *CLI> xmpp show buddies |
*
| Код: |
| CLI> xmpp show connections Jabber Users and their status: [asterisk] 6000@krdserver.crm - Connected |
При попытке отправить сообщение в Jabber из CLI "JabberSend(6000@krdserver.crm,6001@krdserver.crm,Test message from aster to jabber)"пишет
| Код: |
| No such command 'JabberSend |
И при всем этом:
| Код: |
| *CLI> manager show commands JabberSend system,all Sends a message to a Jabber Client. |
Т.е. он гад эту команду знает
| Код: |
| *CLI> manager show command JabberSend [Syntax] Action: JabberSend [spoiler=][ActionID:] Jabber: JID: Message: [Synopsis] Sends a message to a Jabber Client. [Description] Sends a message to a Jabber Client. [Arguments] ActionID ActionID for this transaction. Will be returned. Jabber Client or transport Asterisk uses to connect to JABBER. JID XMPP/Jabber JID (Name) of recipient. Message[/spoiler] Message to be sent to the buddy. |
И знает ее синтаксис (я его тоже знаю, пробовал на другом астере (экспериментальном, версия 10) тоже самое настроить - работает как часы (экспериментировал с отправкой пришедших в донгл СМКок и USSD-запросов себе в jabber - даже кириллица проходит чудесно).
Кто знает куда копать??? Мне кажется, астер тупо не понимает команды, которую выдает в списке своих возможных команд.
Может, в версии 11 есть какие-то изменения в работе этого модуля (кроме того что раньше он назывался res_jabber.so, а теперь стал res_xmpp.so)???
Как лечить??? Кто-нить смог подружить эту версию астера с jabber?
P.S.
| Код: |
| # asterisk -V Asterisk 11.5.1 |
| Код: |
| ]# uname -a Linux krdserver.crm 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux |
_________________
Shit happens
Added after 28 seconds:
Собственно manager show command вам об этом и говорит.
вот кусок extensions_custom.conf:
| Код: |
| ; Отправляем входящие USSD в jabber exten => ussd,1,Verbose(Incoming USSD: ${BASE64_DECODE(${USSD_BASE64})}) exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%d.%m.%Y %H:%M:%S)} - USSD - ${DONGLENAME}: ${BASE64_DECODE(${USSD_BASE64})}' >> /var/log/asterisk/ussd.txt) exten => ussd,n,JabberSend(6000@krdserver.crm,6001@krdserver.crm/Office, ${DONGLENAME}: ${BASE64_DECODE(${USSD_BASE64})}.) exten => ussd,n,Hangup() |
Т.е. настройки на системе на которой это работает и на которой не работает - одинаковы.
Как мне проверить JabberSend из консоли???
_________________
Shit happens
| Код: |
| exten => ussd,n,JabberSend(asterisk,6001@krdserver.crm/Office, ${DONGLENAME}: ${BASE64_DECODE(${USSD_BASE64})}.) |
Первый параметр -- аккаунт, так, как он описан в xmpp.conf. Судя по вашему:
| Код: |
| CLI> xmpp show connections Jabber Users and their status: [asterisk] 6000@krdserver.crm - Connected |
это именно asterisk
telegk1*CLI> core show application JabberSend
-= Info about application 'JabberSend' =-
[Synopsis]
Sends an XMPP message to a buddy.
[Description]
Sends the content of as text message from the given to
the buddy identified by
Example: JabberSend(asterisk,bob@domain.com,Hello world) sends "Hello world"
to as an XMPP message from the account , configured
in jabber.conf.
[Syntax]
JabberSend(account,jid,message)
[Arguments]
account
The local named account to listen on (specified in jabber.conf)
jid
Jabber ID of the buddy to send the message to. It can be a bare JID
(username@domain) or a full JID (username@domain/resource).
message
The message to send.
[See Also]
JABBER_STATUS, JABBER_RECEIVE
| Код: |
| *CLI> dongle ussd dongle0 *100# [dongle0] USSD queued for send with id 0x7f5ed800b1b0 -- [dongle0] Successfully sent USSD 0x7f5ed800b1b0 [dongle0] Got USSD type 0 'USSD Notify': '7160,60 руб. ' -- Executing [ussd@from-gsm:1] Verbose("Local/ussd@from-gsm-00000000;1", "Incoming USSD: 7160,60 руб. ") in new stack 60 руб. -- Executing [ussd@from-gsm:2] System("Local/ussd@from-gsm-00000000;1", "echo '28.11.2013 11:30:38 - USSD - dongle0: 7160,60 руб. ' >> /var/log/asterisk/ussd.txt") in new stack -- Executing [ussd@from-gsm:3] JabberSend("Local/ussd@from-gsm-00000000;1", "6000@krdserver.crm,6001@krdserver.crm, dongle0: 7160,60 руб. .") in new stack == Spawn extension (from-gsm, ussd, 3) exited non-zero on 'Local/ussd@from-gsm-00000000;1' krdserver*CLI> |
После этого на экспериментальной системе я в джаббер получать USSD, а тут почему-то не получаю.
_________________
Shit happens
| Код: |
| [2013-11-28 12:03:56] -- Executing [2000@lan-phones-tss:1] JabberSend("SIP/1111dev-000115ba", "mainoffice@jabber.XXXX,sinitsa@jabber.XXXX,Test, message") in new stack [2013-11-28 12:03:56] WARNING[29483][C-0000fb0f]: res_xmpp.c:1762 xmpp_send_exec: Could not find sender connection: 'mainoffice@jabber.XXXX' |
Если указать имя секции, то сообщения я получаю.
Если все-таки, даже указывая имя секции в первом параметре вы не получаете сообщения, то стоит посмотреть в логи жаббер-сервера. Возможно получатель заблокировал или не авторизовал отправителя. Возможно получатель подключен к жабберу двумя клиентами, приоритет одного из которых выше, и вы просто ищете сообщение не в том клиенте. Возможно какое-то понимание даст дамп трафика от астера к жабберу.
Действительно, после того как вставил название секции, все заработало.
Похоже, это связано с тем что астер 11, потому что на астере 10 все работает именно с таким синтаксисом, как у меня написано.
_________________
Shit happens