вот складывается ощущение, что вот этот setvar как раз для таких случаев и оставили : ) типа вот такие штуки точно пригодятся, но если что - расширяйте параметры сами.
obamo ( 2015-06-27 11:22:06 +0400 )редактироватьможно ли как-то в процессе выполнения диалплана получить доступ к параметрам из конфигурационного файла?
пример в sip.conf (или users.conf) есть peer у которого есть параметр record = yes, тогда в диалплане мы могли бы проверить этот параметр типа ${channel(record)} = yes и перейти в диалплане на метку где у нас осуществляется включение записи разговора
Можно использовать функцию SIPPEER, но она может вернуть ограниченный набор параметров из sip.conf, что-то совсем свое не получится. Разве что через SIPPEER(chanvar[customvar]), как, в принципе, уже и писали.
вот складывается ощущение, что вот этот setvar как раз для таких случаев и оставили : ) типа вот такие штуки точно пригодятся, но если что - расширяйте параметры сами.
obamo ( 2015-06-27 11:22:06 +0400 )редактироватьНет, нельзя.
Варианты: Asterisk config sip.conf
setvar = variable=value : Channel variable to be set for all calls from this peer/user.
И сетить в переменную, что угодно и применять как угодно.
Либо использовать astdb, где хранить что угодно и пользовать как угодно.
нельзя, а тут же приводите пример как можно, почти как оно и надо. ок спасибо, пойду протестирую.
obamo ( 2015-06-26 11:08:03 +0400 )редактироватьэто не то, к чему надо стремится. используйте realtime/func_odbc
meral ( 2015-06-26 13:02:24 +0400 )редактироватьна самом деле мне думается, что это достаточно удобно хранить доп.настройки для диалплана в настройках users.conf. Например: вкл.выкл запись разговоров абонента, вкл.выкл переадресации абонента, мобильный номер для это переадресации, один АОН для одних направлений, другой АОН для других направлений. Вместо того чтобы докидывать еще какой-то сервис или даже astdb использовать. Не так ли?
obamo ( 2015-06-27 11:20:37 +0400 )редактироватьнет. setvar там с того времени, как астериск не имел astdb и доступа к базам. хранить настройки надо с системе хранения настроек - в базе. используя кучу переменных вы заставлятее астериск хранить все это ненужное барахло в памяти.
meral ( 2015-06-27 13:04:55 +0400 )редактироватьправильно - использовать mysql с включенным кешем. в кеш попадет только то, что реально используется.
meral ( 2015-06-27 13:07:47 +0400 )редактироватьи много он так памяти сожрет? Даже если я 500 абонентов дополню по две настройки через setvar - это заставит астериск занять памяти на полгигабайта? или все-таки не так много?
У меня коллега пришел тут с идеей - типа диалплан для астериска на Lua писать, как-то его компилировать, все что требуется из настроек - хранить в redis (а это тоже однако в памяти). Тогда, мол, все быстро и оптимизированно.
obamo ( 2015-06-29 20:14:23 +0400 )редактироватьразвлекайтесь. потом расскажете. LUA- это через Ж ане оптимизировано.
meral ( 2015-06-29 22:54:24 +0400 )редактироватьМожно разве, что запуском например PHP скрипта, скрипт смотрит в файле, что Вам нужно и возвращает переменную.
Ну, так я и в БД хранить могу, а не в файле. да и в БД удобнее будет : )
obamo ( 2015-06-26 11:05:15 +0400 )редактироватьДа, конечно ! Но я ответил на вопрос о уже существующей и работающей системе, и о БД там ничего не говорится.
amonra ( 2015-06-26 11:28:17 +0400 )редактироватьЗадан: 2015-06-26 06:46:52 +0400
Просмотрен: 1,201 раз
Обновлен: Jun 26 '15
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.