[Asterisk-Dev] Dialplan syntax changes.. Option: work on a
radically different design..
Brian West
brian.west at mac.com
Wed May 18 07:55:20 MST 2005
call 996 we are in here talking about it right now.
And I said the exact same thing you did moments before I received the
email.
/b
On May 18, 2005, at 9:40 AM, Steve Kann wrote:
>
> Here's my opinion, as an observer (personally, most of this doesn't
> matter much to me at the moment, as my dialplans are stunningly
> simple, mostly because I handle most things via FastAGI).
>
> Taking a step back, and re-examining the problem..
>
> [I'll do a rumsfeld-style ask myself questions and answer them
> thing here]:
>
> What is the dialplan? It's really a procedural language, it seems.
>
> Do we already have well defined syntax(es) that would fit?
>
> Sure we do -- and most of them stem from the syntax of C in one way
> or another.
>
> So, can it make sense to make the Dialplan look more like C?
>
> I think it does.
>
> Here's an example (based on some stuff in configs/
> extensions.conf.sample
>
> ==== snip ====
>
> static=yes
> writeprotect=no
> autofallthrough=yes
>
> CONSOLE=Console/dsp ; Console interface
> for demo
> ;CONSOLE=Zap/1
> ;CONSOLE=Phone/phone0
> IAXINFO=guest ; IAXtel username/
> password
> ;IAXINFO=myuser:mypass
> TRUNK=Zap/g2 ; Trunk interface
>
>
> macro LocalDial (dialed) {
> Dial($dialed);
> switch($?) {
> }
> return something;
> }
>
> context mycontext {
> extension 2125551212 () {
> Dial(SIP/Grandstream1,DIAL_RINGBACK|DIAL_ARGUMENT)
> switch ($?) {
> case NOANSWER {
> 2125551333 ();
> }
> case CONGESTION {
> Play(busy);
> }
> default {}
> } }
> extension _212555XXXX () {
> Dial(Local/$EXTEN);
> }
> }
> ============
>
> I think that we could get together and define a grammar for this,
> parse it with yacc/lex, etc.
> There was lots of talk about the "pluggable PBX" concept earlier,
> on dev chats, etc. I think if you're going to break everyone's
> dialplans anyway, you might as well really break them, and do it
> right.
>
> It seems like what's happening here is that we're making the
> language look like spreadsheet expressions..
>
> I'm surely oversimplifying the problem here, in at least two ways:
>
> 1) The dialplan is not only looked at as calls pass through it, but
> it is also consulted to determine the existence of extensions and
> pattern matching.
>
> 2) The dialplan was originally designed to be modifiable at run-
> time, where you could, e.g. change things in the CLI, and then have
> asterisk spit out the new dialplan. But you can't do that now anyway.
>
> -SteveK
>
> _______________________________________________
> Asterisk-Dev mailing list
> Asterisk-Dev at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-dev
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-dev
>
More information about the asterisk-dev
mailing list