Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2012-08-06 14:23:48 +0400

romariosar Gravatar romariosar flag of Russian Federation

http://www.webunix.ru/

переменная в макросе

все привет, уже пол дня мучаюсь не никак не могу допереть. входящий звонок приходит в контекст [app-blacklist-check], там задается переменная:

exten => s,n,Set(__HU=0)

Затем выполняется макрос, в кором проверяется совпадение номера звонящего с БД. Если номер совпал, то происходят прямой набор на внутреннего абонента, есил внутренний абонент не зарегестрирован, или занят, звонок идет дальше по диалплану и попадает в очередь, соответсвено другой контекст. переменная HU там нормально выводится, и она равно 0. после вывода переменной. я запускаю макрос, в котором переменная HU увеличивется на 1.

[macro-zvon-db-blkvm]
exten => s,1,MYSQL(Connect connid 127.0.0.1 user test test)
exten => s,n,MYSQL(Query resultid ${connid} Update test set zvon = 1 WHERE client=${QAZ})
exten => s,n,MYSQL(Fetch fetchid ${resultid} manager)
exten => s,n,MYSQL(Clear ${resultid})

exten => s,n,Set(HU=$[${HU} + 1)
exten => s,n,noop(${HU})
exten => s,n,MYSQL(Disconnect ${connid})


; end of [macro-zvon-db-blkvm]

соответственно вывод последнего макроса:

-- Executing [s@macro-zvon-db-blkvm:6] Set("SIP/101-00000022", "__HU=0") in new stack -- Executing [s@macro-zvon-db-blkvm:7] NoOp("SIP/101-00000022", "0") in new stack

получается что переменная не увеличилась. блин мозг уже кипит, точно знаю что гдето в глобальных переменных напутал. Подскажите пожалуйста.

переменная в макросе

все привет, уже пол дня мучаюсь не никак не могу допереть. входящий звонок приходит в контекст [app-blacklist-check], там задается переменная:

exten => s,n,Set(__HU=0)

Затем выполняется макрос, в кором проверяется совпадение номера звонящего с БД. Если номер совпал, то происходят прямой набор на внутреннего абонента, есил внутренний абонент не зарегестрирован, или занят, звонок идет дальше по диалплану и попадает в очередь, соответсвено другой контекст. переменная HU там нормально выводится, и она равно 0. после вывода переменной. я запускаю макрос, в котором переменная HU увеличивется на 1.

[macro-zvon-db-blkvm]
exten => s,1,MYSQL(Connect connid 127.0.0.1 user test test)
exten => s,n,MYSQL(Query resultid ${connid} Update test set zvon = 1 WHERE client=${QAZ})
exten => s,n,MYSQL(Fetch fetchid ${resultid} manager)
exten => s,n,MYSQL(Clear ${resultid})

exten => s,n,Set(HU=$[${HU} + 1)
exten => s,n,noop(${HU})
exten => s,n,MYSQL(Disconnect ${connid})


; end of [macro-zvon-db-blkvm]

соответственно вывод последнего макроса:

-- Executing [s@macro-zvon-db-blkvm:6] Set("SIP/101-00000022", "__HU=0") "HU=0") in new stack -- Executing [s@macro-zvon-db-blkvm:7] NoOp("SIP/101-00000022", "0") in new stack

получается что переменная не увеличилась. блин мозг уже кипит, точно знаю что гдето в глобальных переменных напутал. Подскажите пожалуйста.

переменная в макросе

все привет, уже пол дня мучаюсь не никак не могу допереть. входящий звонок приходит в контекст [app-blacklist-check], там задается переменная:

exten => s,n,Set(__HU=0)

Затем выполняется макрос, в кором проверяется совпадение номера звонящего с БД. Если номер совпал, то происходят прямой набор на внутреннего абонента, есил внутренний абонент не зарегестрирован, или занят, звонок идет дальше по диалплану и попадает в очередь, соответсвено другой контекст. переменная HU там нормально выводится, и она равно 0. после вывода переменной. я запускаю макрос, в котором переменная HU увеличивется на 1.

[macro-zvon-db-blkvm]
exten => s,1,MYSQL(Connect connid 127.0.0.1 user test test)
exten => s,n,MYSQL(Query resultid ${connid} Update test set zvon = 1 WHERE client=${QAZ})
exten => s,n,MYSQL(Fetch fetchid ${resultid} manager)
exten => s,n,MYSQL(Clear ${resultid})

exten => s,n,Set(HU=$[${HU} s,n,Set(__HU=$[${HU} + 1)
1])
exten => s,n,noop(${HU})
exten => s,n,MYSQL(Disconnect ${connid})


; end of [macro-zvon-db-blkvm]

соответственно вывод последнего макроса:

-- Executing [s@macro-zvon-db-blkvm:6] Set("SIP/101-00000022", "HU=0") "__HU=1") in new stack -- Executing [s@macro-zvon-db-blkvm:7] NoOp("SIP/101-00000022", "0") "1") in new stack

получается что переменная не увеличилась. блин мозг уже кипит, точно знаю что гдето в глобальных переменных напутал. Подскажите пожалуйста.но когда макрос заканчивается и звонок идет дальше по длиалплану, то переменная, не меняет своего значения, т.е. она всеравно остается равна 0. посдкажте как из макроса поменять значение переменной которую я оперделил.

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.