Вот никогда не использовал ExecIF и не нужно было начинать, как говорится)
Ситуация такая, в h extension проверяю переменную:
same => n,ExecIf($["${DIALEPEERNUMBER}"=""]?Set(DIALEDPEERNUMBER=${MEMBERNAME}))
В таком случае, даже если переменная ${DIALEPEERNUMBER} заполнена, все равно выражение в условии дает 1, и выполняется условие.Хотя указано, что выполнять,если переменная пуста.
При этом,использую то же выражение в GotoIF.
same => n,GotoIf($["${DIALEDPEERNUMBER}"=""]?sets:else)
Все отлично отрабатывает, если переменная пуста, отдает 1, если заполнена 0, все корректно выполняется.
Вот в чем разница, объясните, господа?)
что то у вас с дебагом не так.
Вот ваш пример(скопировано с поста)
pro-sip.net>
-- Executing [0@test:1] Set("IAX2/iaxtest-12166", "DIALEPEERNUMBER=d") in new stack
-- Executing [0@test:2] ExecIf("IAX2/iaxtest-12166", "0?Set(DIALEDPEERNUMBER=)") in new stack
Как видим, значение - 0.
Возможно, у вас в h не пустое значение.Сделайте dumpchan
Задан: Apr 7 '18
Просмотрен: 425 раз
Обновлен: Apr 08 '18
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
фиг его знает, в чем разница, но вы неправильно пишите вообще говоря. После и перед квадратной скобкой ставить пробел. Как и после-перед знаком равно. Поставьте перед этой строчкой noop с выводом переменных, expression сравнения и посмотрите.
meral (Apr 7 '18)editDIALEPEERNUMBER нет буквы D
meral (Apr 19 '18)editВы как всегда правы) Увидел только сейчас... Большинство проблем всегда из-за этих опечаток...
Rockast (Apr 24 '18)edit