ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Не работает команда в CLI, а в списке команд она есть

Проблемы и их решения Asterisk как такового

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

Не работает команда в CLI, а в списке команд она есть

Сообщение maxmen77 » 27 ноя 2013, 19:50

manager show commands показывает что команда JabberSend есть, но выполнять ее не хочет, синтаксис вроде правильный. Подробнее:
Не получается отправлять сообщения из астера в 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:] <value>
Jabber: <value>
JID: <value>
Message: <value>
[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
maxmen77
 
Сообщений: 34
Зарегистрирован: 17 окт 2010, 15:50

Re: Не работает команда в CLI, а в списке команд она есть

Сообщение ded » 27 ноя 2013, 19:53

Нет такой команды из CLI, а вот аппликация (которую можно вставить в диал-план) есть:
CLI> core show application JabberSend
el-01*CLI> core show application JabberSend

-= Info about application 'JabberSend' =-

[Synopsis]
Sends an XMPP message to a buddy.

[Description]
Sends the content of <message> as text message from the given <account> to
the buddy identified by <jid>
Example: JabberSend(asterisk,bob@domain.com,Hello world) sends "Hello world"
to <bob@domain.com> as an XMPP message from the account <asterisk>, 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
maxmen77 писал(а): Мне кажется, астер тупо не понимает команды, которую выдает в списке своих возможных команд.

Мне кажется прежде чем писать слово ТУПО по отношению к Астериску, следует сделать паузу, посмотреть в зеркало и почитать книжку про Астериск.
Не повредит.
ded
 
Сообщений: 15902
Зарегистрирован: 26 авг 2010, 19:00

Re: Не работает команда в CLI, а в списке команд она есть

Сообщение maxmen77 » 28 ноя 2013, 11:23

DED, я не занимаюсь настройкой астериска постоянно, а делаю это по мере необходимости, поэтому и познания не так глубоки и я не отличаю аппликацию (скорее, приложение) от команды.
Чем отличается аппликация от команды и как можно проверить работоспособность аппликации из консоли вручную???
На всякий случай кусок extensions_custom.conf, который отвечает за отправку входящих СМС и USSD в джаббер и на другой машине работает (экспериментальная, на ней астер 10).
Код: выделить все
[from-gsm]
; Заменяем 7 на 8 в определившихся номерах и делаем DID равный номеру
; IMEI модема, для входящих разделения звонков с разных модемов.
exten => s,1,Set(CALLERID(all)=${CALLERID(num)})
exten => s,n,Set(CALLERID(num)=8${CALLERID(num):2})
exten => s,n,goto(from-trunk,${DONGLEIMEI},1)

; Отправляем входящие SMS в jabber 6000@server - jabber аккаунт отправителя из /etc/asterisk/xmpp.conf, 6001@server - jabber аккаунт получателя
exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${BASE64_DECODE(${SMS_BASE64})})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%d.%m.%Y %H:%M:%S)} - SMS  - ${DONGLENAME} - ${CALLERID(num)}: ${BASE64_DECODE(${SMS_BASE64})}' >> /var/log/asterisk/sms.txt)
exten => sms,n,JabberSend(6000@krdserver.crm,6001@krdserver.crm, ${DONGLENAME} - ${CALLERID(num)}: ${BASE64_DECODE(${SMS_BASE64})}.)
exten => sms,n,Hangup()

; Отправляем входящие 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()

Вот лог USSD запроса, ответ на который должен уйти в Jabber
Код: выделить все
[code]*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>
maxmen77
 
Сообщений: 34
Зарегистрирован: 17 окт 2010, 15:50

Re: Не работает команда в CLI, а в списке команд она есть

Сообщение virus_net » 28 ноя 2013, 11:59

maxmen77 писал(а): я не занимаюсь настройкой астериска постоянно, а делаю это по мере необходимости

и это отменяет чтение технической литературы ?

maxmen77 писал(а):поэтому и познания не так глубоки

так подтяни их

maxmen77 писал(а):Чем отличается аппликация от команды и как можно проверить работоспособность аппликации из консоли вручную???

прочти книжку, полистай http://www.voip-info.org/ - ответь на свой же вопрос самостоятельно
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Не работает команда в CLI, а в списке команд она есть

Сообщение maxmen77 » 28 ноя 2013, 12:15

virus_net, еще предложи погуглить свой вопрос. Если нечего сказать по теме и не знаешь решения - лучше помолчать. Если предлагаешь что-то почитать, дай ссылку на конкретную тему или раздел, после прочтения которых проблема станет понятна или хотя бы обозначится путь для ее решения.
Ссылки которые предлагаете, уже прочитаны, но ответа на свои вопросы там я так и не нашел. Скорее, не там искал или не заметил. Если Вы уже знаете решение или понимаете - скажите куда копать, если нет - читайте выше.
Я сюда пришел за советом к специалистам, а не за общими предложениями. Если есть что конкретно предложить - предлагайте. Специализированные форумы вроде этого и придуманы для того, чтобы люди могли обсуждать темы и задавать вопросы.
maxmen77
 
Сообщений: 34
Зарегистрирован: 17 окт 2010, 15:50

Re: Не работает команда в CLI, а в списке команд она есть

Сообщение maxmen77 » 28 ноя 2013, 12:21

Всем спасибо, проблему помогли решить добрые люди.
Для тех кто столкнется - в таком варианте как у меня, оно работоспособно в астериске вресии 10, но похоже, что в 11 уже поменяли и надо указывать название секции из xmpp.conf, а не JID как раньше.
Было
Код: выделить все
JabberSend(asterisk,6001@krdserver.crm, ${DONGLENAME}: ${BASE64_DECODE(${USSD_BASE64})}.)

Стало
Код: выделить все
JabberSend(asterisk, ${DONGLENAME}: ${BASE64_DECODE(${USSD_BASE64})}.)
maxmen77
 
Сообщений: 34
Зарегистрирован: 17 окт 2010, 15:50

Re: Не работает команда в CLI, а в списке команд она есть

Сообщение maxmen77 » 28 ноя 2013, 12:54

Ошибся, было вот так:
Код: выделить все
JabberSend(6000@krdserver.crm,6001@krdserver.crm, ${DONGLENAME}: ${BASE64_DECODE(${USSD_BASE64})}.)
maxmen77
 
Сообщений: 34
Зарегистрирован: 17 окт 2010, 15:50

Re: Не работает команда в CLI, а в списке команд она есть

Сообщение maxy » 27 фев 2021, 21:24

Тема кончено очень старая, но все таки. Есть ли способ отправить сообщение из CLI используя JabberSend.
Мне это необходимо для получения сообщение и core reload, если будут перегружены транки, вместо емейла.
maxy
 
Сообщений: 2
Зарегистрирован: 17 мар 2019, 18:59


Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH