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

Cинтаксический анализ конфигурационных файлов Asterisk

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

Модератор: april22

Cинтаксический анализ конфигурационных файлов Asterisk

Сообщение noize » 08 мар 2013, 15:07

Запилил модуль для разбора и анализа конфигурационных файлов Asterisk на предмет корректности данных. Сама разработка доступна на гитхабе https://github.com/ruzhnikov/libasteris ... onfig-perl
Сейчас модуль умеет делать только предварительный парсинг файла extensions.conf и всех инклудов файлов(рекурсивная обработка), проверяет корректность строк
Код: выделить все
#include <file>
и
Код: выделить все
include => context

В разработке находится проверка синтаксиса строк
Код: выделить все
exten => ....

Сам модуль написан на перле, в комплекте идёт приложение asterisk-checksyntax, которое устанавливается автоматически и позволяет пользоваться модулем не рисуя своих велосипедов.
Пишется всё в первую очередь для внутреннего использования, поэтому какие-то специафические вещи, типа same или ignorepad пока что не учитываются.

Если кто проявит интерес к разработке и захочет поучаствовать, буду сильно признателен, т.к. времени на разработку в течение недели получается выделять немного.
Также, буду сильно благодарен тем, у кого хорошо с английским языком, т.к. мой write-english оставляет желать лучшего. Необходимо написать документацию на английском и подправить синтаксис сообщений об ошибках и предупреждениях.
Аватар пользователя
noize
 
Сообщений: 117
Зарегистрирован: 01 сен 2010, 11:29

Re: Cинтаксический анализ конфигурационных файлов Asterisk

Сообщение zzuz » 08 мар 2013, 15:23

Впринципе TODO простецкий. Но вот когда дело дойдет до анализа строк приложений , где активно будут использоваться регулярные выражения или многоуровневые вложения булевских типов сравнений, то будет крайне весело). Использовать регулярные выражения для анализа регулярных выражений - звучит заманчиво.
Линия24 - Системы Массового Телефонного Обслуживания
Аватар пользователя
zzuz
 
Сообщений: 1529
Зарегистрирован: 21 сен 2010, 13:33

Re: Cинтаксический анализ конфигурационных файлов Asterisk

Сообщение zzuz » 08 мар 2013, 15:25

например анализ синтаксиса строки
Код: выделить все
exten => h,n,ExecIf($["${DIALSTATUS}"="NOANSWER"|"${DIALSTATUS}"="CANCEL"|"${DIALSTATUS}"="BUSY"|"${DIALSTATUS}"="CHANUNAVAIL"|"${DIALSTATUS}"="CONGESTION"]?ExecIF($[${VALID_EXTEN(ext-custom,${ext_id})}]?Gosub(ext-custom,${ext_id},1)))


А иногда еще нужно зарулить групповое сравнение. А если это будет еще и с вызовом AGI с хитро поданными именованными аргументами, то ваще будет бомба)
Линия24 - Системы Массового Телефонного Обслуживания
Аватар пользователя
zzuz
 
Сообщений: 1529
Зарегистрирован: 21 сен 2010, 13:33

Re: Cинтаксический анализ конфигурационных файлов Asterisk

Сообщение noize » 08 мар 2013, 15:41

zzuz, это планируется))
для начала, будет реализована проверка корректности конструкций exten =>, экстеншенов, приоритетов, закрытия всех открытых скобок в строке. И уже после будут написаны дополнительные модули для непосредственного анализа команд/функций диалплана.
Аватар пользователя
noize
 
Сообщений: 117
Зарегистрирован: 01 сен 2010, 11:29

Re: Cинтаксический анализ конфигурационных файлов Asterisk

Сообщение gosha » 09 мар 2013, 00:29

vim вполне себе синтаксис конфигов астериска подсвечивает. не удивлюсь что emacs тоже...
gosha
 
Сообщений: 350
Зарегистрирован: 06 сен 2010, 17:41

Re: Cинтаксический анализ конфигурационных файлов Asterisk

Сообщение ded » 09 мар 2013, 00:55

Для версий 1.0-1.2 быоа подсветка в Midnight commander.
ded
 
Сообщений: 13568
Зарегистрирован: 26 авг 2010, 19:00

Re: Cинтаксический анализ конфигурационных файлов Asterisk

Сообщение noize » 09 мар 2013, 02:37

Код: выделить все
ls asterisk-1.8.20.0/contrib/editors/
ael.vim  asterisk.vim  asteriskvm.vim

Что касается модуля проверки синтаксиса, то когда разрабываешь сложную конструкцию диалпланов, с кучей инклудов файлов и контелстов, то сложно бывает отследить, где допустил ошибку. Бывает, что не поставил однку скобку и вся конструкция работает неправильно. Да и сам астериск не выводит при dialplan reload варнинги на строки с незакрытми скобками
Аватар пользователя
noize
 
Сообщений: 117
Зарегистрирован: 01 сен 2010, 11:29

Re: Cинтаксический анализ конфигурационных файлов Asterisk

Сообщение ded » 09 мар 2013, 02:52

Выводит.
ded
 
Сообщений: 13568
Зарегистрирован: 26 авг 2010, 19:00

Re: Cинтаксический анализ конфигурационных файлов Asterisk

Сообщение gosha » 09 мар 2013, 13:04

не надо путать vi и vim. не хочется холиварить но после приведенный мной редакторов сомнительным удовольствием кажутся все остальные...
gosha
 
Сообщений: 350
Зарегистрирован: 06 сен 2010, 17:41

Re: Cинтаксический анализ конфигурационных файлов Asterisk

Сообщение zzuz » 09 мар 2013, 13:34

Да. Холивар про редактор в этом топике довольно странен. Каждому свое. Я вот перед сном вспоминаю весь перечень хоткеев в vi , потому что долго работая на фряшных машинах приходилось как мантру это заучивать. Нет ничего лучшего , есть только привычное.
Линия24 - Системы Массового Телефонного Обслуживания
Аватар пользователя
zzuz
 
Сообщений: 1529
Зарегистрирован: 21 сен 2010, 13:33

След.

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

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

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

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