LINUX.ORG.RU
решено ФорумAdmin

Астериск, Переменная


0

1

Меняю значение переменной в extensions.conf [globals], перезапускаю, проверяю и вижу что переменная равно тому же. Уже весь сервер перезагрузил.

Как можно в CLI значение переменной просмотреть?

★★★★★

Ответ на: комментарий от blind_oracle

Спасибо в гугле этого не удалось найти. И действительно там старое значение. Как посоветуете локализовать проблему?

petav ★★★★★ ()
Ответ на: комментарий от petav

Команды лучше всего искать в консоли значком ? :) Я эту сейчас так и нашел.

А как задается переменная? Может она где-то перезаписывается через SetGlobalVar()?

blind_oracle ★★★★★ ()
Ответ на: комментарий от blind_oracle

Команды лучше всего искать в консоли значком ? :) Я эту сейчас так и нашел.

Спасибо

А как задается переменная? Может она где-то перезаписывается через SetGlobalVar()?

Я если честно прошел все conf файлы с поиском по имени переменной. Встречается только два раза первый при указании второй при использовании. Исправляю Эластикс.

petav ★★★★★ ()
Ответ на: комментарий от petav

Честно дело в чем-то другом. В этом файле изменяю диалплан - он меняется. Меняю или добавляю переменные - все без изменений. Я еще покопаюсь, спасибо

petav ★★★★★ ()

Что за переменная, зачем, где (и как) осуществляется к ней доступ?

Кусок диалплана сюда.

zgen ★★★★★ ()
Ответ на: комментарий от petav

extensions.conf

...
#include extensions_custom.conf
...
extensions_custom.conf
#include "extensions-robot.conf"
...
extensions-robot.conf
[globals]
...
;Вот эта переменная
OS_WAIT_CREW=55
....
[taxi-no-crews]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Set(waitcar=0)
exten => s,n,Background(${GLOBAL(ROBOT_WELCOME)})
exten => s,n,Background(${GLOBAL(ROBOT_NOCARS)})
exten => s,n,Background(${GLOBAL(ROBOT_OPDIAL)})
exten => s,n,WaitExten(10)

exten => 0,1,Goto(to-queue-dialout,s,1)

;Вот она используется
exten => 1,1,AGI(setstate.php,${OrderID},${GLOBAL(OS_WAIT_CREW)})
exten => 1,n,Set(waitcar=1)
exten => 1,n,Hangup

exten => t,1,Goto(to-queue-dialout,s,1)

exten => h,1,GotoIf($["${waitcar}" = "1"]?dowait1:docancel1)
exten => h,n(docancel1),AGI(setstate.php,${OrderID},${GLOBAL(OS_CANCEL)})
exten => h,n(dowait1),NoOp

Меняю диалплан, reload, проверяю, план меняется.
Меняю значение переменной, reload, проверяю, ее значение остается прежним

dialplan show globals
...
   OS_WAIT_CREW=28
...

petav ★★★★★ ()
Ответ на: комментарий от petav

Global variables are not passed to the AGI script in this manner. You must get them using the «get variable» AGI command.

zgen ★★★★★ ()
Ответ на: комментарий от petav

Ну так, типа сходу:
clearglobalvars в каком состоянии? А то мне название этой переменной не нравится... ;)

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Директива clearglobalvars не определена.
Попробовал определить и установить в yes/no, ситуацию не изменило.
В выводе команды reload вижу (опять старое значение 28):

 == Parsing '/etc/asterisk/extensions-robot.conf':   == Found
...
  == Setting global variable 'OS_WAIT_CREW' to '28'

P.S.: После изменений переменной делал

~# /etc/init.d/astersik restart
~# sudo reboot

petav ★★★★★ ()
Ответ на: комментарий от petav

Ладно, действительно интересно, у меня в (1.4.x) global envs нормально хватаются.

Посмотрите ВНИМАТЕЛЬНО, может быть у вас она где-то переопределяется? Это самое очевидное.

Есть простой, но адский, способ проверить - упростите свой ДП (читать как: удалите на. все, кроме [general], [globals] и пары строчек входного контекста вашего ДП (без вложений)) - где проверьте состояние переменной.

Т.е. ваш extensions.conf д.в. следующим образом (примерно):

[generals]
static=yes
writeprotect=yes
clearglobalvars=no

[globals]
OS_WAIT_CREW=«55»

[taxi-no-crews]
exten => s,1,exten => (setstate.php,SOME_ID,${GLOBAL(OS_WAIT_CREW)})


сделайте reload и проверьте. Результат - либо ДА, либо НЕТ. Далее будет видно.

Есс-но после манипуляций нужно вернуть свой ДП на место.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Есть простой, но адский, способ проверить - упростите свой ДП

)) Еще чуть покружу вокруг проблемки и придется упрощать, что бы исключить переопределение в каких-то неожиданных местах.

P.S.: К стате к делу в этом же файле создал свою переменную OS_TEST но её при выводе всех переменных не вижу.

petav ★★★★★ ()
Ответ на: комментарий от petav

Нашел

Нашел, в файле globals_custom.conf (я на него внимания не обращал) список таких же переменных как и в файле extensions-robot.conf в [globals]. Отчасти виноваты моя невнимательность (неопытность), ну и не логичность со стороны авторов (по моему мнению) данного call центра.

petav ★★★★★ ()
Ответ на: Нашел от petav

zgen, blind_oracle спасибо

petav ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.