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

Как считать значение параметра контекста?

Добавлено: 07 апр 2011, 10:57
BellLabs
При построении системы на основе realtime используется таблица sipusers (в extconfig.conf прописывается путь к ней). В ней много всяких полей (параметры контекста и их значения) и * при загрузке считывает куда-то информацию. Вопрос в том, можно ли её как-то выцепить в диалплане (узнать значение определенного параметра определенного контекста, например, permit)? Хранит ли * информацию о дополнительных полях? Задача в том, чтобы использовать эту таблицу для своих нужд, для записи ( через web) и считывания (из диалплана) дополнительных полей или полей по умолчанию без использования лишних запросов к БД.

PS
функция CHANNEL дает только параметры канала

Re: Как считать значение параметра контекста?

Добавлено: 07 апр 2011, 13:50
ded
При звонке значение контекста меняется, если он пробегает через несколько контекстов и/или макросов.
Можно конечно выцепливать на каждом шаге
NoOp(${CONTEXT}): Текущее имя контекста

Re: Как считать значение параметра контекста?

Добавлено: 07 апр 2011, 14:14
gosha
BellLabs писал(а):Задача в том, чтобы использовать эту таблицу для своих нужд, для записи ( через web) и считывания (из диалплана) дополнительных полей или полей по умолчанию без использования лишних запросов к БД.

PS
функция CHANNEL дает только параметры канала
некоторую часть можно вытащить из http://www.voip-info.org/wiki/view/Aste ... nc+sippeer

Re: Как считать значение параметра контекста?

Добавлено: 08 апр 2011, 10:21
BellLabs
ded писал(а):При звонке значение контекста меняется, если он пробегает через несколько контекстов и/или макросов.
Можно конечно выцепливать на каждом шаге
NoOp(${CONTEXT}): Текущее имя контекста
Я не про контекст, а про значения параметров контекста инициатора вызова (например, в sip.conf контекст [300], и из диалплана достать значение параметра permit)
switch писал(а):используйте func_odbc
вот лишних запросов хотелось бы избежать. Раз * парсит конф файлы и БД, то он где-то хранит эту иформацию и хотелось бы её доставать из этого места.. вот только какими инструментами? Вопрос не критичный, просто было бы удобно. Я так понимаю контекст - объект, а параметры контеста - свойства. Как добыть значения свойства такого-то объекта?

часть можно достать из CHANNEL, часть из SIPPEER (спасибо gosha)

Re: Как считать значение параметра контекста?

Добавлено: 08 апр 2011, 10:42
ded
BellLabs писал(а):
ded писал(а):Я не про контекст, а про значения параметров контекста инициатора вызова (например, в sip.conf контекст [300], и из диалплана достать значение параметра permit)
Во избежание путаницы: контекст в Астериске - это часть только диалплана, то есть extensions.conf
В других файлах, типа iax.conf, sip.conf, h323.conf можно иметь ввиду [300] [gateway] или [Jane], но это не будут контексты.
Например [300] в sip.conf - это параметры пира 300.