Страница 6 из 8

Re: Dongle,SMS, не пишет в лог смс

Добавлено: 01 фев 2017, 19:22
ded
Мне не на чем проверить, но должно работать и без global переменных. Примерно 4 разных способа, и все будут работать.
Например через ExecIf

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

exten => ussd,1,NoOp(DONGLENAME = ${DONGLENAME})
exten => ussd,n,ExecIf([(${DONGLENAME} = D79206509000)]?Macro(from-gsm-ussd,${DONGLENAME},adm@gmail.com)
exten => ussd,n,ExecIf([(${DONGLENAME} = D79206509111)]?Macro(from-gsm-ussd,${DONGLENAME},skynet@gmail.com)
exten => ussd,n,ExecIf([(${DONGLENAME} = D79206509222)]?Macro(from-gsm-ussd,${DONGLENAME},yar@gmail.com)
А почему у вас там канал Local?

Re: Dongle,SMS, не пишет в лог смс

Добавлено: 02 фев 2017, 09:07
skynetyar
Ура! об Execif и GotoIf читал,даже пробовал применить но запутался..
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
crm*CLI> dongle ussd D79206509000 *100#
[D79206509000] USSD queued for send with id 0xb4c92140
-- [D79206509000] Successfully sent USSD 0xb4c92140
[2017-02-02 09:00:47] NOTICE[2825]: at_response.c:267 at_response_ok: [D79206509000] Successfully sent USSD 0xb4c92140
[D79206509060] Got USSD type 0 'USSD Notify': 'Баланс 4.85 р. Внимание! Похолодание! Прогноз погоды 7дн.беспл! Подкл:*309#'
-- Executing [ussd@from-pstn:1] Set("Local/ussd@from-pstn-00000055;1", "__FROM_DID=ussd") in new stack
-- Executing [ussd@from-pstn:2] Goto("Local/ussd@from-pstn-00000055;1", "from-gsm,ussd,1") in new stack
-- Goto (from-gsm,ussd,1)
-- Executing [ussd@from-gsm:1] NoOp("Local/ussd@from-pstn-00000055;1", "DONGLENAME = D79206509000") in new stack
-- Executing [ussd@from-gsm:2] ExecIf("Local/ussd@from-pstn-00000055;1", "[(D79206509000 = D79206509000)]?Macro(from-gsm-ussd,D79206509000,adm@gmail.com") in new stack
-- Executing [s@macro-from-gsm-ussd:1] Verbose("Local/ussd@from-pstn-00000055;1", "Incoming USSD: Баланс 4.85 р. Внимание! Похолодание! Прогноз погоды 7дн.беспл! Подкл:*309# on D79206509000") in new stack
Incoming USSD: Баланс 4.85 р. Внимание! Похолодание! Прогноз погоды 7дн.беспл! Подкл:*309# on D79206509000
-- Executing [s@macro-from-gsm-ussd:2] System("Local/ussd@from-pstn-00000055;1", "echo 'Subject: Входящая USSD ,на модем: D79206509000' > /var/log/asterisk/ussd_D79206509000.txt") in new stack
-- Executing [s@macro-from-gsm-ussd:3] System("Local/ussd@from-pstn-00000055;1", "echo '2017-02-02 09:00:51 - D79206509000 :Баланс 4.85 р. Внимание! Похолодание! Прогноз погоды 7дн.беспл! Подкл:*309#' >> /var/log/asterisk/ussd_D79206509000.txt") in new stack
-- Executing [s@macro-from-gsm-ussd:4] System("Local/ussd@from-pstn-00000055;1", "sendmail -f info@dom.ru -t adm@gmail.com < /var/log/asterisk/ussd_D79206509000.txt") in new stack
-- Executing [s@macro-from-gsm-ussd:5] Hangup("Local/ussd@from-pstn-00000055;1", "") in new stack
== Spawn extension (macro-from-gsm-ussd, s, 5) exited non-zero on 'Local/ussd@from-pstn-00000055;1' in macro 'from-gsm-ussd'
== Spawn extension (from-gsm, ussd, 2) exited non-zero on 'Local/ussd@from-pstn-00000055;1'
По поводу Local , вот как то даже не задумывался, поставил все стандартно Distro , а не должно быть Local ?

Re: Dongle,SMS, не пишет в лог смс

Добавлено: 02 фев 2017, 09:29
asterisker
господижетыбожемой, какая же это жесть!!! слов нет других просто, я в шоке к чертям нафиг!

Re: Dongle,SMS, не пишет в лог смс

Добавлено: 02 фев 2017, 09:40
ded
Надо придумать emotion icon, которая бы передавала сразу всю эту фразу целиком.

Re: Dongle,SMS, не пишет в лог смс

Добавлено: 02 фев 2017, 10:09
skynetyar
Ну что Вы сразу! :o
Ну нуб,да,не отрицаю :oops: (читал регламент перед регистрацией знаю, не оправдание 8-) )
Особенно случайно заглянувшие товарищи которые не фразы помощи не написали,только эмоции,удивляют.
Вместо эмоций кинули бы ссылкой в меня лучше :)
Гигантская благодарность за терпение и помощь ded , реально человек который помогает.

По существу , мысли бегают :)
Можно ли все таки использовать globals_custom.conf для объявления переменных для удобства что бы не в коде блуждать если что то сменится,например почта или dongle.
Ну примерно так..
exten => ussd,1,NoOp(DONGLENAME = ${DONGLENAME})
exten => ussd,n,ExecIf([(${DONGLENAME} = ${GLOBPERDONGLE})]?Macro(from-gsm-ussd,${DONGLENAME},${GLOBPERMAIL})

А в globals_custom.conf объявлять их
GLOBPERDONGLE=D79206509000
GLOBPERMAIL=adm@gmail.com

Re: Dongle,SMS, не пишет в лог смс

Добавлено: 02 фев 2017, 10:34
Wapo
Многоуважаемый skynetyar.
Когда же Вам надоест загаживать форум в попытках "раскрутить" народ на обучение Вас простым основам? Уж полгода как зарегены, а просто ввести в гуглке слова: asterisk global и т.д, сесть почитать- подумать.

Прям так и хочется обратиться к модератору с просьбой Вас забанить.

Re: Dongle,SMS, не пишет в лог смс

Добавлено: 02 фев 2017, 10:36
ded
ded писал(а):Гигантская благодарность за терпение и помощь ded , реально человек который помогает.
Думаю, что Вы ошибаетесь в оценках.
Почитайте эпос
https://forum.asterisk.ru/viewtopic.php?f=3&t=722
https://forum.asterisk.ru/viewtopic.php?f=3&t=985

По вопросу переменных:
http://asterisk.ru/knowledgebase/Asterisk+variables

Re: Dongle,SMS, не пишет в лог смс

Добавлено: 02 фев 2017, 10:49
skynetyar
Wapo
От Вас больше флуда чем от меня если уж по существу..,уж не обижайтесь.
Я никого не раскручиваю не на что, просто прошу совета у людей которые знают больше меня.
Первый форум в моей жизни на котором так жадно относятся к помощи , и так сильно к своему тщеславию.
И пришел я сюда вообще нулевой, а сейчас много для себя открыл,благодаря не многочисленным людям тут.
ded
Благодарность по делам высказал Вам и не ошибся.
Спасибо за ссылку,буду изучать.

P.S вот какой смайлик тут надо добавить, дак это offtopic и может быть призрение и насмешка.
Этого тут даже больше чем про Астериск 8-)

Re: Dongle,SMS, не пишет в лог смс

Добавлено: 02 фев 2017, 13:28
skynetyar
to ded ,остальных просьба, если у Вас нет критики или предложений по теме просьба не флудить.

exten => sms,n,ExecIf([(${DONGLENAME} = ${GLOBPERDONGLE})]?Macro(from-gsm-sms,${DONGLENAME},${GLOBPERMAIL})

Такая конструкция срабатывает даже если значения не равны.
Проверяю так
exten => ussd,n,NoOp(${DONGLENAME} , ${GLOBPERDONGLE} , ${GLOBPERMAIL})

Выводит разные значения DONGLENAME и GLOBPERDONGLE , а сообщение все равно приходит..
По описанию вычитал
Если выражение ложно, выполнение продолжается со следующего приоритета.
Может стоит попробовать GotoIf ?

p.s to all , хватит накидываться на меня с обвинениями ,я ничего не попрошайничаю, просто мысли в слух
уже боюсь и писать то тут,затыркали,затыкали,унизили, вообщем ппц полный.. :cry:

UPD:
Вот так работает вроде бы как :)
exten => ussd,n,ExecIF($[${DONGLENAME}=${GLOBPERDONGLE}]?Macro(from-gsm-ussd,${DONGLENAME},${GLOBPERMAIL}))

Re: Dongle,SMS, не пишет в лог смс

Добавлено: 02 фев 2017, 16:28
ded
Да, синтаксис я из головы писал, Вам его надо проверять. Вижу - успешно.
Годятся также вроде логические конструкции в кавычках, типа
ExecIf($["${DONGLENAME}" = "${GLOBPERDONGLE}"])?

Вам бы просто примеры посмотреть где-то и попробовать, чем писать.