ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

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

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

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

Сообщение AlexeyFatnev » 26 май 2022, 19:20

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

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

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

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

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

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

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

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

same => n,SIPAddHeader(${foo})
AlexeyFatnev
 
Сообщений: 18
Зарегистрирован: 26 май 2022, 19:04

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

Сообщение Zavr2008 » 27 май 2022, 13:27

Например для каждого пира в sip.conf можно сделать SetVar и потом юзать уже.

setvar = variable=value : Channel variable to be set for all calls from this peer/user.

Подробнее
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2158
Зарегистрирован: 27 янв 2011, 01:35

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

Сообщение AlexeyFatnev » 27 май 2022, 16:21

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

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

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

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

Сообщение ded » 30 май 2022, 10:38

Покажите строчку кода, как вы пытались реализовать через Set.
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение AlexeyFatnev » 31 май 2022, 14:36

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
-------
AlexeyFatnev
 
Сообщений: 18
Зарегистрирован: 26 май 2022, 19:04

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

Сообщение ded » 31 май 2022, 23:51

Читайте книгу о будущем телефонии, язык диал плана. Проверяем так:
Код: выделить все
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(------)
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение Zavr2008 » 01 июн 2022, 02:30

Не понимаю как опция setvar в настройках пира chan_sip в sip.conf связана с одноименной функцией диалплана)
Можно конечно и через set в диалплане делать, но вопрос то был про маркировку как раз пиров и мне показалось это оптимальным и простым.
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2158
Зарегистрирован: 27 янв 2011, 01:35

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

Сообщение AlexeyFatnev » 01 июн 2022, 15:01

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

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

Еще раз большое Вам спасибо за помощь!
AlexeyFatnev
 
Сообщений: 18
Зарегистрирован: 26 май 2022, 19:04


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH