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

AMI. GetConfig/GetConfigJSON

Раздел для разработчиков для обсуждения программных и аппаратных продуктов и их реализации.

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

Ответить
Garnish
Сообщения: 43
Зарегистрирован: 09 мар 2016, 11:07

AMI. GetConfig/GetConfigJSON

Сообщение Garnish »

Всем привет. Может кто-то сможет подсказать по синтаксису команды?
Action: GetConfigJSON
ActionID: <value>
Filename: <value>
Category: <value>
Filter: <value>

Конкретно интересует категория "Filter"
Какой должен быть синтаксис? В доке написано:
Filter - A comma separated list of name_regex=value_regex expressions which will cause only categories whose variables match all expressions to be considered. The special variable name TEMPLATES can be used to control whether templates are included. Passing include as the value will include templates along with normal categories. Passing restrict as the value will restrict the operation to ONLY templates. Not specifying a TEMPLATES expression results in the default behavior which is to not include templates.

Но нет примеров. Интернет тоже не богат.
Для примера, я пытаюсь вытащить из файла ami_extensions.conf, секция globals его настройки.
Содержимое файла примерно такое:
[globals]

AMO_CONNECTOR = /var/lib/asterisk/agi-bin/amo-connector/handler.php
AMO_CONNECTOR_PROD = /var/lib/asterisk/agi-bin/amo-connector-prod/handler.php
MONITOR_EXEC = /usr/local/bin/2wav2mp3.sh
ccnumber0 = 123105
ccnumber1 = 123106
smallccnumber0 = 123108
smallccnumber1 = 123139
smallccnumber2 =

MOBILE_120 = 89104XXXXXX
MOBILE_200 = 89035XXXXXX
MOBILE_201 = 89629XXXXXX
MOBILE_202 = 89168XXXXXX

я бы хотел вытащить только строки, в которых есть значение "MOBILE". Как это можно сделать с помощью filter и можно ли вообще?
Пытался подставить регулярки из ЯП, но либо показывает весь конфиг, либо ничего.
Пытался подставлять:
Filter: myfilter=MOBILE* - No categories found
Filter: myfilter=MOBILE\w* - No categories found
Filter: myfilter=.* - выдает весь конфиг (в целом, ожидаемо)

Сделать обработку средствами языка программирования не проблема, но, если есть возможность решить это средствами астера, то конечно хотелось бы сделать с помощью него. Иначе, как говорится, это не python way.
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: AMI. GetConfig/GetConfigJSON

Сообщение virus_net »

Filter: myfilter=^MOBILE.*
Не?
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Garnish
Сообщения: 43
Зарегистрирован: 09 мар 2016, 11:07

Re: AMI. GetConfig/GetConfigJSON

Сообщение Garnish »

Увы, но нет.
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: AMI. GetConfig/GetConfigJSON

Сообщение virus_net »

а что возвращается при этом regexp`е ?
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Garnish
Сообщения: 43
Зарегистрирован: 09 мар 2016, 11:07

Re: AMI. GetConfig/GetConfigJSON

Сообщение Garnish »

Response: Success
No categories found
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: AMI. GetConfig/GetConfigJSON

Сообщение virus_net »

Судя по поиску Filter в GetConfigJSON появился начиная с 12-ой ветки *
У вас какая версия ?

+ в доке конечно не ясность:
which will cause only categories whose variables match
А если речь идет не про название переменной, а про её значение ?
Filter: myfilter=\d+
или
Filter: myfilter=^\d+$
Дает что-то ?

Так же попробуйте, потом, value_regex взять в двойные кавычки.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Garnish
Сообщения: 43
Зарегистрирован: 09 мар 2016, 11:07

Re: AMI. GetConfig/GetConfigJSON

Сообщение Garnish »

Не помогает. Такое ощущение, что астер не понимает квантификаторы. Пытался найти инфу по REGEX (синтаксис), тоже толку 0. Либо показывает весь контекст, если указать ^[0-9], либо ничего, если задать имя MOBILE
Версия астера 15
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: AMI. GetConfig/GetConfigJSON

Сообщение virus_net »

Других идей у меня нет. Должна быть аналогия с Action: Filter.
Example whitelist filter: "Event: Newchannel"
Example blacklist filter: "!Channel: DAHDI.*"
Двойные кавычки попробовали ?
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Garnish
Сообщения: 43
Зарегистрирован: 09 мар 2016, 11:07

Re: AMI. GetConfig/GetConfigJSON

Сообщение Garnish »

Да, пробовал. Про filter тоже думал и тоже в свое время не удалось найти явную документацию по регуляркам. Спасибо за ваши советы, буду парсить через регулярку ЯПа.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH