[Asterisk-Users] Dial Plan Problems
Adam Goryachev
mailinglists at websitemanagers.com.au
Tue Dec 14 04:03:14 MST 2004
On Tue, 2004-12-14 at 21:32, Ian Chilton wrote:
> Hi,
>
> I am having a few dial plan problems which I wondered if anyone would be
> able to help with.
>
> Firstly, I wanted to send 0800 calls through 1 sip provider and other
> 08xx calls through another. I have this:
>
> exten => _0800.,1,Dial(SIP/${EXTEN}@provider1,30)
> exten => _0800.,2,Congestion
>
> exten => _08.,1,Dial(SIP/${EXTEN}@provider2,30)
> exten => _08.,2,Congestion
>
> However, whichever way round I put these, 0800 calls still seem to go
> out of provider2.
>
> I fixed this as follows:
>
> exten => _08[1-9].,1,Dial(SIP/${EXTEN}@provider2,30)
> exten => _08[1-9].,2,Congestion
Yep, this works...
> ..but, is there another way of getting this working without putting
> exceptions into other dial plan rules? - it works in this example but
> would be a pain in anything more complicated.
Consider that asterisk will always take the 'easiest' path, or the path
of least resistance, kinda like water. If you have a really generic
pattern, then asterisk will match that first. So, either you don't have
a more generic pattern as you have done, or you tell asterisk that your
patterns actually have priorities/levels of importance. You do this
something like this:
[freecall-dialout]
include => freecall-dialout-other
exten => _0800.,1,Dial(SIP/${EXTEN}@provider1,30)
exten => _0800.,2,Congestion
[freecall-dialout-other]
exten => _08.,1,Dial(SIP/${EXTEN}@provider2,30)
exten => _08.,2,Congestion
Asterisk will try to match the extensions in the current context first,
before trying to match the extensions in included contexts.
> For example, I had the same problem with a provider who has some service
> numbers in the format 09XX but the dial plan for these was not getting
> detected because of my _0. dial plan for national phone calls.
>
> Am I missing something here?
Yep, see the wiki, I am sure this would be covered there. Look at
extensions.conf sections.
> Also, I can't seem to get the invalid extension working. I have a
> context which has some incoming calls sent to it. I then have an
> extension for each number. What I want is to play an invalid message if
> anyone comes into that context on another number.
>
> I tried this by commenting the entries for 1 of my working numbers out
> and putting this in:
>
> exten => i,1,Playback(invalid)
> exten => i,2,Hangup
>
> .. but when I call the number I commented out, Asterisk doesn't see the
> call (no logging) - I just get a beep and the call ends. If I put the
> extension for that number back in, it works fine.
>
> Any ideas?
yes, I imagine you are trying to dial-in with a 'unconfigured' DID,
which won't work. Asterisk will reject the call, rather than answer and
send to i exten. To get what you want, you will need to match your
'unconfigured' DID's, and Goto(i,1)
I suppose the i exten is designed for someone who is traversing IVR
menus and tries to get to a wrong menu option etc...
I hope this helps you a bit....
Regards,
Adam
More information about the asterisk-users
mailing list