Страница 1 из 1

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

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

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

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

Конечно можно использовать БД, и для некоторых вещей использую, но хотелось бы узнать возможно ли какое-то обращение к переменным peer-а.

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

Добавлено: 16 фев 2015, 10:10
Wapo
Дайте команду DumpChan() и увидите ВСЕ на свете.

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

Добавлено: 16 фев 2015, 10:48
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}?

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

Добавлено: 16 фев 2015, 14:58
Obi Van
Юзать функцию:

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

SIPPEER(peername[,item])

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

Добавлено: 17 фев 2015, 08:12
tol_iwan
Вот это как раз то, что требовалось. Что-то функция прошла мимо меня. Спасибо большое.