First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

ExecIf vs. GotoIF [закрыт]

0

Вот никогда не использовал ExecIF и не нужно было начинать, как говорится)

Ситуация такая, в h extension проверяю переменную:

same => n,ExecIf($["${DIALEPEERNUMBER}"=""]?Set(DIALEDPEERNUMBER=${MEMBERNAME}))

В таком случае, даже если переменная ${DIALEPEERNUMBER} заполнена, все равно выражение в условии дает 1, и выполняется условие.Хотя указано, что выполнять,если переменная пуста.

При этом,использую то же выражение в GotoIF.

same => n,GotoIf($["${DIALEDPEERNUMBER}"=""]?sets:else)

Все отлично отрабатывает, если переменная пуста, отдает 1, если заполнена 0, все корректно выполняется.

Вот в чем разница, объясните, господа?)

спросил Apr 7 '18

Rockast Gravatar Rockast
57 5 5

Comments

фиг его знает, в чем разница, но вы неправильно пишите вообще говоря. После и перед квадратной скобкой ставить пробел. Как и после-перед знаком равно. Поставьте перед этой строчкой noop с выводом переменных, expression сравнения и посмотрите.

meral (Apr 7 '18)edit

DIALEPEERNUMBER нет буквы D

meral (Apr 19 '18)edit

Вы как всегда правы) Увидел только сейчас... Большинство проблем всегда из-за этих опечаток...

Rockast (Apr 24 '18)edit

1 Ответ

1

что то у вас с дебагом не так.

Вот ваш пример(скопировано с поста)

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

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил Apr 7 '18

Comments

"IAX2/iaxtest-12166", "DIALEPEERNUMBER=d"

Не хватает буквы "D" в DIALEPEERNUMBER

Rockast (Apr 24 '18)edit

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: Apr 7 '18

Просмотрен: 425 раз

Обновлен: Apr 08 '18

Похожие вопросы:

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.