On Tuesday 08 August 2006 15:37, David Cook wrote:
> I don't see anything that sets dialplan timing so I can immediately dial
> after three-digit extensions as long as they begin with "5"; Anything
> else, but 1/0, wait for 10 digits, 1/0, wait for 11+ digits, etc.

I think you're making this more complex than it needs to be.

Asterisk will match as soon as it can; If your FXS channel dumps into a 
context that has only 3-digit matches starting with '5' then Asterisk will 
stop waiting for digits as soon as it can match conclusively.

e.g.

[fxs]
exten => _5XX,1,Dial(SIP/${EXTEN})
exten => _2XXXXXX,1,Dial(Zap/g1/${EXTEN})
exten => _3XXXXXX,1,Dial(Zap/g1/${EXTEN})
exten => _4XXXXXX,1,Dial(Zap/g1/${EXTEN})
exten => _6XXXXXX,1,Dial(Zap/g1/${EXTEN})
exten => _7XXXXXX,1,Dial(Zap/g1/${EXTEN})
exten => _8XXXXXX,1,Dial(Zap/g1/${EXTEN})
exten => _1NXXNXXXXXX,1,Dial(Zap/g1/${EXTEN})
exten => _0NXXNXXXXXX,1,Dial(Zap/g1/${EXTEN})

Then if you dial 5 followed by any other two digits, Asterisk will immediately 
dial after the third digit is hit.  If, however,

exten => _5XXXXXX,1,Dial(Zap/g1/${EXTEN})

were in there, then Asterisk would have to wait to see if you were done at 
three, or if more digits were coming, since _5XX and _5XXXXXX both can match 
a 3-digit number starting with 5.  Similarly if you replace that context with

[fxs]
exten => _5XX,1,Dial(SIP/${EXTEN})
exten => _NXXXXXX,1,Dial(Zap/g1/${EXTEN})
exten => _1NXXNXXXXXX,1,Dial(Zap/g1/${EXTEN})
exten => _0NXXNXXXXXX,1,Dial(Zap/g1/${EXTEN})

It would also have to wait, because N matches '5'.

That is why most KSUs and PBXes want you to dial '9' for an outside line.  You 
can get away with things like this:

[fxs]
exten => _5XX,1,Dial(SIP/${EXTEN})
exten => _9NXXXXXX,1,Dial(Zap/g1/${EXTEN:1})
exten => _9NXXNXXXXXX,1,Dial(Zap/g1/${EXTEN:1})
exten => _90NXXNXXXXXX,1,Dial(Zap/g1/${EXTEN:1})
exten => _91NXXNXXXXXX,1,Dial(Zap/g1/${EXTEN:1})

This way you can still dial 3 digits starting with '5' and immediately be 
connected.

Clear as mud?  :-)

-A.

Reply via email to