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

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, все корректно выполняется.

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

удалить переоткрыть спам изменить тег редактировать

спросил 2018-04-08 00:10:15 +0400

Rockast Gravatar Rockast
57 4 3

Comments

фиг его знает, в чем разница, но вы неправильно пишите вообще говоря. После и перед квадратной скобкой ставить пробел. Как и после-перед знаком равно. Поставьте перед этой строчкой 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 )редактировать

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

ссылка удалить спам редактировать

ответил 2018-04-08 03:23:14 +0400

meral Gravatar meral flag of Ukraine
22847 24 20 173
http://pro-sip.net/

обновил 2018-04-08 03:24:06 +0400

Comments

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

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

Rockast ( 2018-04-25 00:55:51 +0400 )редактировать

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

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

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

Статистика

Задан: 2018-04-08 00:10:15 +0400

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

Обновлен: Apr 08

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

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