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

Опять простой вопрос, на этот раз по переменным

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

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

Ответить
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

Опять простой вопрос, на этот раз по переменным

Сообщение tol_iwan »

Подскажите, возможно ли как-то обратится к переменным, прописанным в sip.conf у внутреннего абонента:

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

sip.conf
[номер]
setvar=переменная=значение
у меня такие переменный используются например, если какому-то номеру нужно выходить в мир с определенного транка, не принадлежащего отделу и соответственно не попадающему под общие правила выхода наружу.
Как и положено при звонке создается канал и у канала появляются эти переменные. Тут понятно.
А нельзя обратиться как-то к этим переменным до создания абонентом канала, т.е. если например ему звонят и нужно провести какую-нибудь проверку(на основе подобно-записанных переменных) до того, как произвести набор?
sip show peer показывает у пира все его переменные, но как к ним обратиться?
Вообще интересует чтение, но может можно и переписать эти значения диалпланом?
Надеюсь не слишком много/избыточно описал.

Конечно можно использовать БД, и для некоторых вещей использую, но хотелось бы узнать возможно ли какое-то обращение к переменным peer-а.
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

Re: Опять простой вопрос, на этот раз по переменным

Сообщение Wapo »

Дайте команду DumpChan() и увидите ВСЕ на свете.
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

Re: Опять простой вопрос, на этот раз по переменным

Сообщение tol_iwan »

Нет, я имел ввиду не это. Увидеть в консоли как я писал достаточно и sip show peer, там есть переменные. Воспользоваться значениями в диалплане можно с помощью ${имени переменной}, либо функцией CHANNEL(). Но это все берется для вызывающего/текущего канала.
А меня интересует можно ли получить переменную peer-a, у которого нет канала, т.е. вызываемого peer-а до того, как его канал будет создан.
Грубый пример.
Есть 2 peer:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

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

sip.conf
[111]
type=peer
host=dynamic
secret=Pa$$word
[222]
type=peer
host=dynamic
secret=Pa$$word
setvar=var1=no

extension.conf
exten => 222,1,ExecIf(${значение переменной var1 пира 222}=yes?yes:no)
       same => n(yes),Dial(SIP/222)
       same => n(no),Hungup()
вот вопрос - можно ли как-то достать ${значение переменной var1 пира 222}?
Аватара пользователя
Obi Van
Сообщения: 340
Зарегистрирован: 03 сен 2010, 11:21

Re: Опять простой вопрос, на этот раз по переменным

Сообщение Obi Van »

Юзать функцию:

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

SIPPEER(peername[,item])
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

Re: Опять простой вопрос, на этот раз по переменным

Сообщение tol_iwan »

Вот это как раз то, что требовалось. Что-то функция прошла мимо меня. Спасибо большое.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH