1 | изначальная версия редактировать | |
Доброе время суток!
Возникла проблема при настройке диалплана, а точнее с GotoIf.
Вот кусочек диалплана:
exten => s,1,Set(home="/home/menu")
exten => s,n,Set(foo=${CURL(http://myhost.com/?act=check&subscriber=${CALLERID(num)})})
exten => s,n,GotoIf($["${foo}" = "NO"]?playwithoutreg)
exten => s,n,Background(${home}/hellowithreg)
exten => s,n,Goto(menunext,s,1)
exten => s,n(playwithoutreg),Goto(menunoreg,s,1)
Объясню что означает:
Curl-делает запрос на хост, который проверяет на существование номера телефона и возвращает ответ YES(существует)|NO(не существует)
GotoIf-сверяет значение переменного и при совпадении прыгает в соответствующий шаг.
Что происходит?
GotoIf всегда возвращает 0 не зависимо от ответа, хоть YES, хоть NO.
вот логи:
-- Executing [s@menu:1] Set("SIP/08880-00000001", "home="/home/menu"") in new stack
-- Executing [s@menu:2] Set("SIP/08880-00000001", **"foo=YES"**) in new stack
-- Executing [s@menu:3] **GotoIf("SIP/08880-00000001", "0?playwithoutreg")** in new stack
-- Executing [s@menu:4] BackGround("SIP/08880-00000001", ""/home/menu"/hello_with_reg") in new stack
-- <SIP/08880-00000001> Playing '/home/menu/hello_with_reg.slin' (language 'ru')
-- Executing [s@menu:1] Set("SIP/08880-00000002", "home="/home/menu"") in new stack
-- Executing [s@menu:2] Set("SIP/08880-00000002", **"foo=NO"**) in new stack
-- Executing [s@menu:3] **GotoIf("SIP/08880-00000002", "0?playwithoutreg")** in new stack
-- Executing [s@menu:4] BackGround("SIP/08880-00000002", ""/home/menu"/hello_with_reg") in new stack
-- <SIP/08880-00000002> Playing '/home/menu/hello_with_reg.slin' (language 'ru')
Это баги Asterisk-а или у меня руки не оттуда ростут?
2 | No.2 Revision редактировать |
Доброе время суток!
Возникла проблема при настройке диалплана, а точнее с GotoIf.
Вот кусочек диалплана:
exten => s,1,Set(home="/home/menu")
exten => s,n,Set(foo=${CURL(http://myhost.com/?act=check&subscriber=${CALLERID(num)})})
exten => s,n,GotoIf($["${foo}" = "NO"]?playwithoutreg)
exten => s,n,Background(${home}/hellowithreg)
exten => s,n,Goto(menunext,s,1)
exten => s,n(playwithoutreg),Goto(menunoreg,s,1)
Объясню что означает:
Curl-делает запрос на хост, который проверяет на существование номера телефона и возвращает ответ YES(существует)|NO(не существует)
GotoIf-сверяет значение переменного и при совпадении прыгает в соответствующий шаг.
Что происходит?
GotoIf всегда возвращает 0 не зависимо от ответа, хоть YES, хоть NO.
вот логи:
-- Executing [s@menu:1] Set("SIP/08880-00000001", "home="/home/menu"") in new stack
-- Executing [s@menu:2] Set("SIP/08880-00000001", **"foo=YES"**) "foo=YES") in new stack
-- Executing [s@menu:3] **GotoIf("SIP/08880-00000001", "0?playwithoutreg")** GotoIf("SIP/08880-00000001", "0?playwithoutreg") in new stack
-- Executing [s@menu:4] BackGround("SIP/08880-00000001", ""/home/menu"/hello_with_reg") in new stack
-- <SIP/08880-00000001> Playing '/home/menu/hello_with_reg.slin' (language 'ru')
-- Executing [s@menu:1] Set("SIP/08880-00000002", "home="/home/menu"") in new stack
-- Executing [s@menu:2] Set("SIP/08880-00000002", **"foo=NO"**) "foo=NO") in new stack
-- Executing [s@menu:3] **GotoIf("SIP/08880-00000002", "0?playwithoutreg")** GotoIf("SIP/08880-00000002", "0?playwithoutreg") in new stack
-- Executing [s@menu:4] BackGround("SIP/08880-00000002", ""/home/menu"/hello_with_reg") in new stack
-- <SIP/08880-00000002> Playing '/home/menu/hello_with_reg.slin' (language 'ru')
Это баги Asterisk-а или у меня руки не оттуда ростут?
3 | No.3 Revision редактировать |
Доброе время суток!
Возникла проблема при настройке диалплана, а точнее с GotoIf.
Вот кусочек диалплана:
exten => s,1,Set(home="/home/menu")
exten => s,n,Set(foo=${CURL(http://myhost.com/?act=check&subscriber=${CALLERID(num)})})
exten => s,1,Set(home="/home/menu")
exten => s,n,Set(foo=${CURL(http://myhost.com/?act=check&subscriber=${CALLERID(num)})})
exten => s,n,GotoIf($["${foo}" = exten => s,n,Background(${home}/hellowithreg)
exten => s,n,Goto(menunext,s,1)
exten => s,n(playwithoutreg),Goto(menunoreg,s,1)
Объясню что означает:
Curl-делает запрос на хост, который проверяет на существование номера телефона и возвращает ответ YES(существует)|NO(не существует)
GotoIf-сверяет значение переменного и при совпадении прыгает в соответствующий шаг.
Что происходит?
GotoIf всегда возвращает 0 не зависимо от ответа, хоть YES, хоть NO.
вот логи:
-- Executing [s@menu:1] Set("SIP/08880-00000001", "home="/home/menu"") in new
Это баги Asterisk-а или у меня руки не оттуда ростут?
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.