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

Как передать переменную?

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

Re: Как передать переменную?

zzuz:

и где используется искомый контекст internal-1 ?
Это контекст оператора. Который собственно принимает вызов, ставит его на холд, и выполняет вызов.
2010-02-17 19:05

Сообщений: 276

Re: Как передать переменную?

Кусок из CLI

[Feb 17 19:02:18] -- Executing [0001@iaxpeer:4] Set("IAX2/msk01-14516", "__CLNUM=19") in new stack

CLNUM это и есть тот ZZZ =)
2010-02-17 19:07

Avatara of zzuz
Откуда: SPb
Сообщений: 1307

Re: Как передать переменную?

короче . ael , не ael . компилиться все равно как астериску удобно. переменная назначется правильно , но видимо не в том месте , или не в том месте вызывается , или вызов не попадает в контекст , где назначается переменная . конекст в студию , там ясно будет.
http://линия24.рф - Астериск и прочие бубны!
2010-02-17 19:10

Сообщений: 276

Re: Как передать переменную?

zzuz:

короче . ael , не ael . компилиться все равно как астериску удобно. переменная назначется правильно , но видимо не в том месте , или не в том месте вызывается , или вызов не попадает в контекст , где назначается переменная . конекст в студию , там ясно будет.
context iaxpeer {

_0001 => {
Set(CHANNEL(language)=ru);
__QID = ${UNIQUEID};
__REC = 1;
__CLNUM = ${CALLERID(number)};
__QNAME = test;

Queue(queue-test);
};

context internal-1 {


_81XXXX => {
NoOp({CLNUM});
goto internal-1,${EXTEN:-4},1;



..........


этого достаточно.
мемберы в queue.conf статические (SIP/...)

после ответа мембера выполняется макрос из extensions.conf
в нём NoOp-ы работают. после него - нет.


имхо бага астериска. попробую проапгрейдиться, может поможет =)
2010-02-17 19:24

Avatara of zzuz
Откуда: SPb
Сообщений: 1307

Re: Как передать переменную?

Ну хорошо . Звоню я вам через iax , на номер 0001 , попадаю на экстеншен 0001 , тут всё красиво , назначили переменных и со спокойной совестью отправились звонить в очередь .
А контекст internal-1 ? он для пиров чтоль прописан? или в queue.conf прописан ? как из контекста iaxpeer я попаду в контекст internal-1 ? . И заметьте , что это должно быть одним каналом , как максимум можно зафоркать вызов (что идеи не меняет)
http://линия24.рф - Астериск и прочие бубны!
2010-02-17 19:40

Сообщений: 276

Re: Как передать переменную?

internal-1 это контекст оператора. писал же ведь. прописан в sip.conf для участников, входящих в queue-test.
короче после макроса всё сбрасывается. в самом макросе если вызвать NoOp - всё работает. имя макроса задается в queues.conf. макрос прописан в extensions.conf. который как ему и положено срабатывает в момент ответа оператора (делает запись разговора и еще некоторые мелочи). попробую его отключить, вдруг повлияет как-то =)

кстати этот трабл можно запостить на bugs.digium

обычно они пишут "тестируйте на последней версии, типа ваш вопрос идёт лесом". тут пойдут лесом они, т.к. у меня версия 1.6.0.14 - на данный момент последняя в бранче 1.6.0.х, есть еще -15, но она rc.
2010-02-17 21:22

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

Re: Как передать переменную?

Попробуйте смоделировать целиком на extensions.conf, без AEL вообще.
Смутно припоминаю, что сталкивался с этим. Че делал - не помню :-)
Чердак освобождается от мусора.
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2010-02-18 00:36

Сообщений: 1573

Re: Как передать переменную?

Newborn:

context iaxpeer {

_0001 => {
Set(CHANNEL(language)=ru);
__QID = ${UNIQUEID};
__REC = 1;
__CLNUM = ${CALLERID(number)};
__QNAME = test;

Queue(queue-test);
};

context internal-1 {


_81XXXX => {
NoOp({CLNUM});
goto internal-1,${EXTEN:-4},1;


А что команду Set не нужно ставить в строках?

_0001 => {
Set(CHANNEL(language)=ru);
Set(__QID=${UNIQUEID});
Set(__REC=1);
Set(__CLNUM=${CALLERID(number)});
Set(__QNAME=test);

Queue(queue-test);
};

И маска в контексте какая то непонятная. Что она означает - '_0001' ?
2010-02-18 01:35

Сообщений: 276

Re: Как передать переменную?

обычная маска, для тестов сделал.
set в AEL не нужен. без него работает. ведь если я вызываю эту переменну в макросе для queue, то она там отображается.
переносить всё в extensions.conf не буду.
2010-02-18 10:32

Сообщений: 1573

Re: Как передать переменную?

Newborn:

обычная маска, для тестов сделал.
Я к тому, что это - не маска, а полный экстен.

Newborn:

set в AEL не нужен. без него работает.


Это из демо:
context ael-demo {
s => {
Wait(1);
Answer();
Set(TIMEOUT(digit)=5);
Set(TIMEOUT(response)=10);




context iaxpeer {

_0001 => {
Set(CHANNEL(language)=ru);
__QID = ${UNIQUEID};
__REC = 1;
__CLNUM = ${CALLERID(number)};
__QNAME = test;
NoOp(${CLNUM});
Queue(queue-test);
};

Добавьте NoOp в контекст и покажите вывод CLI ....
2010-02-18 10:42

<1 2 3>
Добавить страницу в закладки:  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