"IAX2/iaxtest-12166", "DIALEPEERNUMBER=d"
Не хватает буквы "D" в DIALEPEERNUMBER
Rockast ( 2018-04-25 00:55:51 +0400 )редактироватьВот никогда не использовал 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
"IAX2/iaxtest-12166", "DIALEPEERNUMBER=d"
Не хватает буквы "D" в DIALEPEERNUMBER
Rockast ( 2018-04-25 00:55:51 +0400 )редактироватьЗадан: 2018-04-08 00:10:15 +0400
Просмотрен: 409 раз
Обновлен: Apr 08 '18
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
фиг его знает, в чем разница, но вы неправильно пишите вообще говоря. После и перед квадратной скобкой ставить пробел. Как и после-перед знаком равно. Поставьте перед этой строчкой noop с выводом переменных, expression сравнения и посмотрите.
meral ( 2018-04-08 03:16:04 +0400 )редактироватьDIALEPEERNUMBER нет буквы D
meral ( 2018-04-20 00:08:04 +0400 )редактироватьВы как всегда правы) Увидел только сейчас... Большинство проблем всегда из-за этих опечаток...
Rockast ( 2018-04-25 00:54:43 +0400 )редактировать