1 | изначальная версия редактировать | |
все привет, уже пол дня мучаюсь не никак не могу допереть. входящий звонок приходит в контекст [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
получается что переменная не увеличилась. блин мозг уже кипит, точно знаю что гдето в глобальных переменных напутал. Подскажите пожалуйста.
2 | No.2 Revision редактировать |
все привет, уже пол дня мучаюсь не никак не могу допереть. входящий звонок приходит в контекст [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
получается что переменная не увеличилась. блин мозг уже кипит, точно знаю что гдето в глобальных переменных напутал. Подскажите пожалуйста.
3 | No.3 Revision редактировать |
все привет, уже пол дня мучаюсь не никак не могу допереть. входящий звонок приходит в контекст [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.