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

AMI. GetConfig/GetConfigJSON

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

Модератор: april22

AMI. GetConfig/GetConfigJSON

Сообщение Garnish » 12 сен 2018, 00:06

Всем привет. Может кто-то сможет подсказать по синтаксису команды?
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.
Garnish
 
Сообщений: 30
Зарегистрирован: 09 мар 2016, 12:07

Re: AMI. GetConfig/GetConfigJSON

Сообщение virus_net » 12 сен 2018, 08:21

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

ENUMER - звони бесплатно и напрямую.
Аватар пользователя
virus_net
 
Сообщений: 2206
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: AMI. GetConfig/GetConfigJSON

Сообщение Garnish » 12 сен 2018, 09:11

Увы, но нет.
Garnish
 
Сообщений: 30
Зарегистрирован: 09 мар 2016, 12:07

Re: AMI. GetConfig/GetConfigJSON

Сообщение virus_net » 12 сен 2018, 09:16

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

ENUMER - звони бесплатно и напрямую.
Аватар пользователя
virus_net
 
Сообщений: 2206
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: AMI. GetConfig/GetConfigJSON

Сообщение Garnish » 12 сен 2018, 09:27

Response: Success
No categories found
Garnish
 
Сообщений: 30
Зарегистрирован: 09 мар 2016, 12:07

Re: AMI. GetConfig/GetConfigJSON

Сообщение virus_net » 12 сен 2018, 09:32

Судя по поиску 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 или sip:dn@postmet.com
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Аватар пользователя
virus_net
 
Сообщений: 2206
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: AMI. GetConfig/GetConfigJSON

Сообщение Garnish » 12 сен 2018, 13:27

Не помогает. Такое ощущение, что астер не понимает квантификаторы. Пытался найти инфу по REGEX (синтаксис), тоже толку 0. Либо показывает весь контекст, если указать ^[0-9], либо ничего, если задать имя MOBILE
Версия астера 15
Garnish
 
Сообщений: 30
Зарегистрирован: 09 мар 2016, 12:07

Re: AMI. GetConfig/GetConfigJSON

Сообщение virus_net » 12 сен 2018, 14:04

Других идей у меня нет. Должна быть аналогия с Action: Filter.
Example whitelist filter: "Event: Newchannel"
Example blacklist filter: "!Channel: DAHDI.*"

Двойные кавычки попробовали ?
мой SIP URI sip:virus_net@asterisk.ru или sip:dn@postmet.com
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Аватар пользователя
virus_net
 
Сообщений: 2206
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: AMI. GetConfig/GetConfigJSON

Сообщение Garnish » 12 сен 2018, 14:49

Да, пробовал. Про filter тоже думал и тоже в свое время не удалось найти явную документацию по регуляркам. Спасибо за ваши советы, буду парсить через регулярку ЯПа.
Garnish
 
Сообщений: 30
Зарегистрирован: 09 мар 2016, 12:07


Вернуться в Разработка

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

© 2008 — 2018 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH