> -----Original Message----- > From: Tony Mountifield [mailto:[EMAIL PROTECTED] > Sent: Wednesday, December 20, 2006 11:47 AM > To: asterisk-users@lists.digium.com > Subject: [asterisk-users] Re: Match a Numer - then continue with > dialplan > > > In article > <[EMAIL PROTECTED]>, > Douglas Garstang <[EMAIL PROTECTED]> wrote: > > > > Don't get offended Doug, but I get really frustrated when I > try to explain what I am trying > > to do with Asterisk, and people don't seem to quite get it. > Your about the 4th person who's > > replied to this post, and hasn't quite grasped my question. > :) <--- smiley.. see...we're all > > cool. > > Perhaps its the terminology you used that is confusing > people. See below: > > > I don't want Asterisk to go on to ask for more digits. I > want to do a very simple thing. I > > want to set a variable when call flow continues beyond a > certain point (without asking the > > user for more digits), and then continue on, and use that > variable later. It's a very simple > > thing, I can't work out why Asterisk doesn't let me do that. > > To almost all people "call flow" would mean executing one > priority after > another for a given extension. > > After reading and re-reading your posts trying to work out > what you are > trying to do, it seems to me that when *you* say "call flow", > you mean the > act of trying to find an extension. And what your looking for > is a way to > do things a different points in the *search*, while it is > still trying to > decide on a statement to land on. Is that correct? Yes to the first sentence. Not quite sure what you mean after that.
> > If so, I think you need to re-think the strategy a bit. The only way a > command gets executed in a dialplan is when Asterisk has > matched an extension > and a priority. Then once it has executed that command, it > increments the > priority (unless it was a Goto or something) and starts > searching again. That was my original question. I was asking if there was a way to set a variable and the continue, which doesn't seem like too strange a thing to have Asterisk support. > > However, don't forget that it searches for matching > extensions every time > the priority changes. You are not locked into a particular pattern or > extension number from priority 1 onwards. You can mix and > match patterns > with literal extensions, even across includes, e.g. Don't follow you. When asterisk matches an extension, it starts interating through the priorities until there's none left, or you Goto() somewhere else. > > [example] > include => ctx31X > include => ctx3XX > > exten => _X.,1,NoOp(this gets executed first for everything) > exten => _X.,2,NoOp(this gets executed second only if ctx31X > or ctx3XX didnt match) > exten => _X.,3,NoOp(this gets executed third for everything) You lost me here. > > [ctx31X] > exten => _31X,2,NoOp(this gets executed second for 310-319) > > [ctx3XX] > exten => _3XX,2,NoOp(this gets executed second for 300-309 > and 320-399) > > So you might be able to do something along these lines by > being creative > with priorities and includes, and setting or testing > variables. Something > along these lines: > > 1. Each company starts off in its own context, and at Can't do that. The point at which a phone enters the dial plan needs to start with rather a long list of include=> statements, to grant/deny access to certain features. > priority 1 in _X. it > sets a variable like SRCCOMPANY to something specific to it. > It includes all the destination contexts. > > 2. Each destination context starts at priority 2 and sets a > variable like > DESTCOMPANY to something specific to that destination. > > 3. At priority 3 in each source context, SRCCOMPANY and > DESTCOMPANY are > compared, in order to decide whether to override the CallerID with the > source company's generic callerID. Let's say this uses priorities 3, 4 > and 5 (for the GotoIf doing the compare, then the SetCallerID, and the > NoOp target for the GotoIf when the callerID doesn't need rewriting). > The destination contexts do not have priorities 3, 4 and 5. > > 4. The destination contexts continue at priority 6 to route the call. > > I think by interleaving priorities between contxts like this > you should > be able to achieve what you are looking for. Please let us > know on the list > if you are successful - it encourages us to keep helping in > the future! I tried your example, which I completely don't follow, and it didn't seem to execute as you expected. Dialling 311 yields: *CLI> -- Executing NoOp("SIP/3254101-d10e", "this gets executed first for everything") in new stack -- Executing NoOp("SIP/3254101-d10e", "this gets executed second only if ctx31X or ctx3XX didnt match") in new stack -- Executing NoOp("SIP/3254101-d10e", "this gets executed third for everything") in new stack I need to make extensive use of the include=> directive, and I just can't see how getting stuck in priorities within an extension is going to allow me to do that. Doug. _______________________________________________ --Bandwidth and Colocation provided by Easynews.com -- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users