Hello all, I am trying to figure out the logic in on prefix matching for Asterisk 1.4.5. I want to be able to pass all international calls EXCEPT calls to 011870, 01137455 and so on. exten => _011870.,1,Goto(intl-disabled,s,1) exten => _01137455.,2,Goto(intl-disabled,s,1) exten => _01137477.,3,Goto(intl-disabled,s,1) exten => _0113749.,4,Goto(intl-disabled,s,1) exten => _011.,5,Goto(intl-disabled,s,1) exten => _011.,6,Playback(all-outgoing-lines-unavailable) exten => _011.,7,Wait(1) exten => _011.,8,Playback(please-hang-up-and-dial-operator) exten => _011.,9,Hangup Is this correct or should it be: exten => _011870X,1,Goto(intl-disabled,s,1) exten => _01137455X,2,Goto(intl-disabled,s,1) I tried searching for definitive information on voip-wiki, nerd vittles, but there is a lot of confusion. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20110404/72656942/attachment.htm>
On Mon, Apr 4, 2011 at 8:09 AM, Asterisk User <asteruserlist at gmail.com>wrote:> > Hello all, I am trying to figure out the logic in on prefix matching for > Asterisk 1.4.5. I want to be able to pass all international calls EXCEPT > calls to 011870, 01137455 and so on. > > exten => _011870.,1,Goto(intl-disabled,s,1) > exten => _01137455.,2,Goto(intl-disabled,s,1) > exten => _01137477.,3,Goto(intl-disabled,s,1) > exten => _0113749.,4,Goto(intl-disabled,s,1) > exten => _011.,5,Goto(intl-disabled,s,1) > exten => _011.,6,Playback(all-outgoing-lines-unavailable) > exten => _011.,7,Wait(1) > exten => _011.,8,Playback(please-hang-up-and-dial-operator) > exten => _011.,9,Hangup > > Is this correct or should it be: > > exten => _011870X,1,Goto(intl-disabled,s,1) > exten => _01137455X,2,Goto(intl-disabled,s,1) > > I tried searching for definitive information on voip-wiki, nerd vittles, > but there is a lot of confusion. >Assuming that 011870 is followed by more than digit, normally, I'd say your first set is more applicable. The . in the pattern at the end means any number of digits, followed by a timeout. If you know the number of digits, and it is fixed, then you could use _011870XXXXXXX or similar to avoid the timeout, and begin the Goto immediately on reception of the final digit. The X in the second set will match just one digit, and the Goto will be be executed. Does that help?> > > --Steve Murphy ParseTree Corporation -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20110404/3152eb0c/attachment.htm>
On Monday 04 Apr 2011, Asterisk User wrote:> Hello all, I am trying to figure out the logic in on prefix matching for > Asterisk 1.4.5. I want to be able to pass all international calls EXCEPT > calls to 011870, 01137455 and so on.Asterisk's default behaviour is always to try the hardest-to-match expression first (i.e. the exact extension number). If there is no match there, it then tries progressively easier-to-match expressions; only ever trying something like _. if nothing else matched. (Compare the rules of poker when wild cards are introduced: a "natural" hand beats an otherwise-equivalent hand containing wild cards.) -- AJS Answers come *after* questions.
On Monday 04 April 2011 09:09:28 Asterisk User wrote:> Hello all, I am trying to figure out the logic in on prefix matching for > Asterisk 1.4.5. I want to be able to pass all international calls EXCEPT > calls to 011870, 01137455 and so on. > > exten => _011870.,1,Goto(intl-disabled,s,1)This one is okay.> exten => _01137455.,2,Goto(intl-disabled,s,1)Change this to priority 1.> exten => _01137477.,3,Goto(intl-disabled,s,1)Change this to priority 1.> exten => _0113749.,4,Goto(intl-disabled,s,1)Change this to priority 1.> exten => _011.,5,Goto(intl-disabled,s,1)Change this to priority 1.> exten => _011.,6,Playback(all-outgoing-lines-unavailable) > exten => _011.,7,Wait(1) > exten => _011.,8,Playback(please-hang-up-and-dial-operator) > exten => _011.,9,HangupThis looks like it should be starting from priority 1, extension "s", context [intl-disabled].> Is this correct or should it be: > > exten => _011870X,1,Goto(intl-disabled,s,1) > exten => _01137455X,2,Goto(intl-disabled,s,1) > > I tried searching for definitive information on voip-wiki, nerd vittles, > but there is a lot of confusion.The major problem in your dialplan is that you WANT to have multiple start points, but the way you have it written, there is only ONE start point. Everything else is simply ignored. Extensions will only start in the dialplan from priority 1. -- Tilghman