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

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

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

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

Аватара пользователя
noize
Сообщения: 117
Зарегистрирован: 01 сен 2010, 11:29

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

Сообщение noize »

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

Код: Выделить всё

#include <file>
и

Код: Выделить всё

include => context
В разработке находится проверка синтаксиса строк

Код: Выделить всё

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

Если кто проявит интерес к разработке и захочет поучаствовать, буду сильно признателен, т.к. времени на разработку в течение недели получается выделять немного.
Также, буду сильно благодарен тем, у кого хорошо с английским языком, т.к. мой write-english оставляет желать лучшего. Необходимо написать документацию на английском и подправить синтаксис сообщений об ошибках и предупреждениях.
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

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

Сообщение zzuz »

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

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

Сообщение zzuz »

например анализ синтаксиса строки

Код: Выделить всё

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 - Системы Массового Телефонного Обслуживания
Аватара пользователя
noize
Сообщения: 117
Зарегистрирован: 01 сен 2010, 11:29

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

Сообщение noize »

zzuz, это планируется))
для начала, будет реализована проверка корректности конструкций exten =>, экстеншенов, приоритетов, закрытия всех открытых скобок в строке. И уже после будут написаны дополнительные модули для непосредственного анализа команд/функций диалплана.
gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

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

Сообщение gosha »

vim вполне себе синтаксис конфигов астериска подсвечивает. не удивлюсь что emacs тоже...
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Для версий 1.0-1.2 быоа подсветка в Midnight commander.
Аватара пользователя
noize
Сообщения: 117
Зарегистрирован: 01 сен 2010, 11:29

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

Сообщение noize »

Код: Выделить всё

ls asterisk-1.8.20.0/contrib/editors/
ael.vim  asterisk.vim  asteriskvm.vim
Что касается модуля проверки синтаксиса, то когда разрабываешь сложную конструкцию диалпланов, с кучей инклудов файлов и контелстов, то сложно бывает отследить, где допустил ошибку. Бывает, что не поставил однку скобку и вся конструкция работает неправильно. Да и сам астериск не выводит при dialplan reload варнинги на строки с незакрытми скобками
gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

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

Сообщение gosha »

не надо путать vi и vim. не хочется холиварить но после приведенный мной редакторов сомнительным удовольствием кажутся все остальные...
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

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

Сообщение zzuz »

Да. Холивар про редактор в этом топике довольно странен. Каждому свое. Я вот перед сном вспоминаю весь перечень хоткеев в vi , потому что долго работая на фряшных машинах приходилось как мантру это заучивать. Нет ничего лучшего , есть только привычное.
Линия24 - Системы Массового Телефонного Обслуживания
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH