Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / Вопрос по переменным

Вопрос по переменным

1 2>
Сообщений: 276

Вопрос по переменным

Никак не могу установить буквенную переменную в диалплане extensions.ael .

нужно задать к примеру AAA = SIP/

функция SetVar не работает в ael.
2009-08-27 14:01

Сообщений: 1573

Re: Вопрос по переменным

Set?
2009-08-27 15:12

Сообщений: 276

Re: Вопрос по переменным

Set ругается на non numeric argument

поставлю вопрос немного другим боком:

надо приписать SIP/ к аргументу и назначить переменную. ну тоесть у меня есть ${CALLERID(number)} и надо его превратить в SIP/${CALLERID...}

простое приписывание SIP/ не срабатывает.
2009-08-27 15:28

Откуда: Санкт-Петербург
Сообщений: 541

Re: Вопрос по переменным

тогда показывайте что там у вас в extensions.ael написано
и что показывает show dialplan по этому поводу
а заодно и версию астериска
2009-08-27 15:43

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: Вопрос по переменным

Пробелы не нужны.
Возможно, нужны кавычки.
Типа
Set(A="${var}")
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2009-08-27 17:53

Сообщений: 276

Re: Вопрос по переменным

обошелся другим способом. надо было получить параметр if ${CALLERID(number)} = номер агента, то <...>
else
<..>

а номер агента имеет вид SIP/номер

в общем просто отчикал этот SIP/ с помощью {...}:-4 и получил номер.
2009-08-27 18:15

Сообщений: 1573

Re: Вопрос по переменным

Newborn:

надо приписать SIP/ к аргументу и назначить переменную. ну тоесть у меня есть ${CALLERID(number)} и надо его превратить в SIP/${CALLERID...}

Newborn:

а номер агента имеет вид SIP/номер

в общем просто отчикал этот SIP/ с помощью {...}:-4 и получил номер.
Newborn, вы так противоречивы. То ли нужно было приписать, то ли - отчикать ... :))
2009-08-27 21:52

Сообщений: 866

Re: Вопрос по переменным

"приписывание" по-вашему в AEL делается как:
varname = "SIP/${CALLERID(num)}";

кавычки вообще полезно всегда ставить. Это потому что если у вас будут какие-то математические операции (плюс минус етц) даже в значениии переменной справа, могут быть проблемы.
Пример:
если значение переменной A сейчас это default-context и вы напишите:
B = ${A};

то оно ругнется на non-numeric потому что по сути ваша операция преврматится в
Set(B=default-context);

Чтобы этого избежать нужно делать

B = "${A}";

2009-08-27 23:00

Сообщений: 276

Re: Вопрос по переменным

dimas:

"приписывание" по-вашему в AEL делается как:
varname = "SIP/${CALLERID(num)}";

кавычки вообще полезно всегда ставить. Это потому что если у вас будут какие-то математические операции (плюс минус етц) даже в значениии переменной справа, могут быть проблемы.
Пример:
если значение переменной A сейчас это default-context и вы напишите:
B = ${A};

то оно ругнется на non-numeric потому что по сути ваша операция преврматится в
Set(B=default-context);

Чтобы этого избежать нужно делать

B = "${A}";

Спасибо, хотя я и кавычки и скобки пробовал... В принципе уже неактуально для меня, но на будущее пригодится :)
2009-08-27 23:44

Сообщений: 866

Re: Вопрос по переменным

чисто для протокола: я неточно написал, операция превратится в
Set(B=$[default-context]);

То есть в попытку вычислить выражение. Отсюда и ругань. Это верно для любого присваивания в AEL.

Не знаю как вы там с кавычками пробовали :) я только что проверил, все работает как надо

121=> {
A = 123;
B = "SIP/${A}";
Noop(${B});
};


порождает диалплан
'121' => 1. Set(A=$[ 123]) [pbx_ael]
2. Set(B=$[ "SIP/${A}"]) [pbx_ael]
3. Noop(${B}) [pbx_ael]


и выполняется правильно и без варнингов:
-- Executing [121@default:1] Set("SIP/1001-08f4b6f8", "A=123") in new stack
-- Executing [121@default:2] Set("SIP/1001-08f4b6f8", "B="SIP/123"") in new stack
-- Executing [121@default:3] NoOp("SIP/1001-08f4b6f8", "SIP/123") in new stack
2009-08-28 11:22

1 2>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru