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.