yesterday, we had a problem and takes some time to find it : a “)” was misplaced
Is there a program, or asterisk option, that can parse the conf files and tell if the structure is ok ?
For those who knows something like config check on NGinX or HAProxy
It seems quite an obvious thing, but i was unable to find that
Yes this is why i was hoping someone wrote a utility like “checkmyconf /etc/asterisk/extention.conf”
A utility that only verifies that syntax is ok, nothing more
That file doesn’t exist. I think pbx.c is part of the core, so you would need to use the special command: dialplan reload. You may need to touch the file, that it is treated as updated.
However the format of the parameters field is only checked at run time when actually used. If the error is in the fully substituted parameters for a command, that command has to be executed. Generally anything beginning with $ and some form of bracket is evaluated before the command is run.
If you need to know which module relates to which config file then what you really need is to read the Asterisk book, as for the syntax I find vim very useful, it does not show the errors exactly but you will notice that the highlighting is not right where there are errors, I guess you still need some getting used to.
Yes khamlichi.khalil vim help us a lot but sometimes parenthesis mismatch or so are not easy to see
And yes, i need to go forward into reading docs, and this is what i do everydays
It looks like it is only a heuristic checker, and I note that expressions are not parsed.
One other point to note is that syntactic elements can be included in “variables”, as they are really macros, so it is possible to construct dialplans that cannot be statically validated.
yes and it seems to have lots of bugs, it crashes a lot… The author says it is not really stable.
This is a realy a good idea but it have to improve.
My first will would be to be sure that all {,[,(,),],},",… are correct !
Vim helps when typing, but a post verification would be great.
I tried it (the online version, https://asterisklint.osso.pub/) using a production dialplan which is written in AEL, which it does not understand.
After munging ‘dialplan show’ into ‘basic dialplan,’ it reported over 300 errors that are mostly stylistic
E_VAR_BAD_TOKENS: bad tokens in variable name 'CALL-ID'
W_APP_BAD_CASE: app 'agi' does not have the proper Case 'AGI'
W_WSH_BOL: unexpected leading whitespace
It also fails parsing statements like ‘exten = foo,1,…’ because it thinks the ‘>’ is important.
The program appears to ‘know’ all of the Asterisk application names, but not some ‘newer’ ones like:
E_APP_MISSING: app 'MSet' does not exist, dialplan will halt here!
E_APP_MISSING: app 'stopmonitor' does not exist, dialplan will halt here!
It did note a missing closing bracket and a missing closing brace, but did not note a missing closing parenthesis.