VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Переменная канального уровня для всех контекстов

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
AlexeyFatnev
Сообщения: 18
Зарегистрирован: 26 май 2022, 18:04

Переменная канального уровня для всех контекстов

Сообщение AlexeyFatnev »

Здравствуйте,

Есть задача, при которой необходимо разделить логику исходящих звонков в зависимости от extension.

Все отличие логики в установке значения одной переменной. Значение определяется отдельно для каждой группы extension.

В SIP.CONF для каждой группы пиров свой контекст.

Я хотел сделать так. При попадании в определенный контекст устанавливается значение переменной, а дальше все контексты сливаются в один. Но понял, что установить значение переменной канального уровня я могу только внутри exten.

Подскажите, есть ли какой-то способ установки переменной, которая была бы доступна всем контекстам, но в рамках одного канала?

Для чего это нужно. В зависимости от номера extension, необходимо подставить свой SIPheader:

same => n,Set(foo=Diversion: "BASE XXX" <sip:XXXXXXX@XXXXXX.ru:5061>)

same => n,SIPAddHeader(${foo})
Аватара пользователя
Zavr2008
Сообщения: 2239
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: Переменная канального уровня для всех контекстов

Сообщение Zavr2008 »

Например для каждого пира в sip.conf можно сделать SetVar и потом юзать уже.
setvar = variable=value : Channel variable to be set for all calls from this peer/user.
Подробнее
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1, настройка Asterisk/FreePBX, подключение CRM
AlexeyFatnev
Сообщения: 18
Зарегистрирован: 26 май 2022, 18:04

Re: Переменная канального уровня для всех контекстов

Сообщение AlexeyFatnev »

Здравствуйте, Zavr2008.

Большое спасибо, работает.

Единственный момент. Setvar объявлена как устаревшая, вместо нее объявлена Set. Реализовать такое же с Set не получилось. Подскажите, следует использовать Setvar?
ded
Сообщения: 15675
Зарегистрирован: 26 авг 2010, 19:00

Re: Переменная канального уровня для всех контекстов

Сообщение ded »

Покажите строчку кода, как вы пытались реализовать через Set.
AlexeyFatnev
Сообщения: 18
Зарегистрирован: 26 май 2022, 18:04

Re: Переменная канального уровня для всех контекстов

Сообщение AlexeyFatnev »

SIP.CONF
Set(TestVariable=123)

EXTENSIONS.CONF

same => n,Verbose(------)
same => n,Verbose(${TestVariable})
same => n,Verbose(------)
same => n,Set(TestVariable=777)
same => n,Verbose(${TestVariable})
same => n,Verbose(------)

Вывод:

-------

-------
777
-------
ded
Сообщения: 15675
Зарегистрирован: 26 авг 2010, 19:00

Re: Переменная канального уровня для всех контекстов

Сообщение ded »

Читайте книгу о будущем телефонии, язык диал плана. Проверяем так:

Код: Выделить всё

same => n,Verbose(------)
same => n,NoOp(my variable is ${TestVariable})
same => n,Verbose(------)
same => n,Set(TestVariable=777)
same => n,NoOp(my variable is ${TestVariable})
same => n,Verbose(------)
Аватара пользователя
Zavr2008
Сообщения: 2239
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: Переменная канального уровня для всех контекстов

Сообщение Zavr2008 »

Не понимаю как опция setvar в настройках пира chan_sip в sip.conf связана с одноименной функцией диалплана)
Можно конечно и через set в диалплане делать, но вопрос то был про маркировку как раз пиров и мне показалось это оптимальным и простым.
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1, настройка Asterisk/FreePBX, подключение CRM
AlexeyFatnev
Сообщения: 18
Зарегистрирован: 26 май 2022, 18:04

Re: Переменная канального уровня для всех контекстов

Сообщение AlexeyFatnev »

Здравствуйте, ZVAR2008.

Теперь я понимаю, что никак. Функция DIALPLAN SetVar устарела, а опция аналогичная опция SIP.CONF нет.

Еще раз большое Вам спасибо за помощь!
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH