можно ли как-то в процессе выполнения диалплана получить доступ к параметрам из конфигурационного файла?
пример в sip.conf (или users.conf) есть peer у которого есть параметр record = yes, тогда в диалплане мы могли бы проверить этот параметр типа ${channel(record)} = yes и перейти в диалплане на метку где у нас осуществляется включение записи разговора
Можно использовать функцию SIPPEER, но она может вернуть ограниченный набор параметров из sip.conf, что-то совсем свое не получится. Разве что через SIPPEER(chanvar[customvar]), как, в принципе, уже и писали.
Нет, нельзя.
Варианты: Asterisk config sip.conf
setvar = variable=value : Channel variable to be set for all calls from this peer/user.
И сетить в переменную, что угодно и применять как угодно.
Либо использовать astdb, где хранить что угодно и пользовать как угодно.
на самом деле мне думается, что это достаточно удобно хранить доп.настройки для диалплана в настройках users.conf. Например: вкл.выкл запись разговоров абонента, вкл.выкл переадресации абонента, мобильный номер для это переадресации, один АОН для одних направлений, другой АОН для других направлений. Вместо того чтобы докидывать еще какой-то сервис или даже astdb использовать. Не так ли?
obamo (Jun 27 '15)editи много он так памяти сожрет? Даже если я 500 абонентов дополню по две настройки через setvar - это заставит астериск занять памяти на полгигабайта? или все-таки не так много?
У меня коллега пришел тут с идеей - типа диалплан для астериска на Lua писать, как-то его компилировать, все что требуется из настроек - хранить в redis (а это тоже однако в памяти). Тогда, мол, все быстро и оптимизированно.
obamo (Jun 29 '15)editМожно разве, что запуском например PHP скрипта, скрипт смотрит в файле, что Вам нужно и возвращает переменную.
Задан: Jun 26 '15
Просмотрен: 1,216 раз
Обновлен: Jun 26 '15
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.