[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