[asterisk-dev] extensions.conf included contexts priorities
Steve Murphy
murf at parsetree.com
Wed Apr 25 08:47:00 MST 2007
On Wed, 2007-04-25 at 10:37 -0400, Leif Madsen wrote:
> On Tuesday 24 April 2007 20:26:25 Jared Smith wrote:
> > On 4/24/07, Steve Murphy <murf at parsetree.com> wrote:
> > > Trouble is, is this desired behavior? Or is having the contexts checked
> > > level by level until a match of any kind is found, the better procedure?
> >
> > Well, I for one desire the current behavior. Everyone else can speak
> > for themselves, but it makes it easy to override an extension included
> > in a more-deeply-nested extension by putting its replacement in a
> > less-deeply-nested context. If they were all pulled together into one
> > big ball of wax, we'd lose a lot of functionality.
>
> I also agree here. If you change this functionality, people who depend upon it
> might come find you and do not such nice things to you :)
>
Well, I certainly wouldn't **that** to happen!!! OK, I'm totally sold on
keeping current functionality.
For the moment...
I do propose that we make the following change to the
extensions.conf.sample file to minimize user
misunderstanding/frustration over include directives.... the reason this
thread began...
Do you think this might help? Is the English proper?
Index: configs/extensions.conf.sample
===================================================================
--- configs/extensions.conf.sample (revision 61639)
+++ configs/extensions.conf.sample (working copy)
@@ -140,15 +140,31 @@
;
; Contexts contain several lines, one for each step of each
; extension, which can take one of two forms as listed below,
-; with the first form being preferred. One may include another
-; context in the current one as well, optionally with a
-; date and time. Included contexts are included in the order
-; they are listed.
+; with the first form being preferred.
;
;[context]
;exten => someexten,{priority|
label{+|-}offset}[(alias)],application(arg1,arg2,...)
;exten => someexten,{priority|
label{+|-}offset}[(alias)],application,arg1|
arg2...
;
+; One may include another context in the current one as well,
optionally with a
+; date and time. Included contexts are included in the order
+; they are listed.
+; The reason a context would include other contexts is for their
extensions.
+; The algorithm to find an extension is recursive, and works in this
+; fashion:
+; a) Try to find a matching extension in the current context
+; and, if found, begin executing the priorities there in
sequence.
+; b) If not found, Search the switches, if any declared, in
sequence.
+; c) If still not found, for each include, make that context the
current
+; context, and recurse to a).
+; This is a depth-first traversal, and stops with the first context
that
+; provides a match. As usual, if more than one pattern in a context
will match,
+; the 'best' match will win.
+; Please note that in a context, it does not matter where an include
directive
+; occurs. Whether at the top, or near the bottom, the effect will be
the same.
+; The only thing that matters is that if there is more than one include
directive,
+; they will be searched for extensions in order, first to last.
+;
; Timing list for includes is
;
; <time range>|<days of week>|<days of month>|<months>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3239 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-dev/attachments/20070425/2844c2a2/smime-0001.bin
More information about the asterisk-dev
mailing list