Asterisk VoIP News

Sunday, January 08, 2006

Release: ---AEL2--- Try it out!


I've just written and submitted a new module for asterisk, to the
asterisk bug database.


There is a file there you can download, AEL2v0.3.patch.bz2

and I created a wiki page:

Why did I do it? Because I was very impressed with AEL, but the current AEL compiler isn't real good at pointing out problems. Mostly, it seems to silently ignore problems.

But I have a better idea. I want the compiler to check the "living daylights" out of the dialplan code. I want subtle errors that otherwise would trip up asterisk and hang up a call to be found at load time, not run-time! I remember all the classes I took long ago, that kept pounding away at the fact that finding and fixing errors at later stages are exponentially more expensive than finding and fixing them early in the design cycle... and I think the same applies to dialplans.

So I wrote AEL2 from the ground up. No newline dependencies, as free-form as C. After parsing, which will reveal syntax errors, a second pass is made hunting for semantic errors, like misspelled applications, bad expressions, etc. I'll tack on a list of the differences and checks at the end of this message. Code is generated in a third phase, if no errors are found in the input.