[asterisk-users] Need help/suggestions for DialPlan

Myles Wakeham myles at techsol.org
Wed Dec 9 11:53:23 CST 2009


I am revising our DialPlan strategy for our Asterisk system (1.4.2) and 
looking for some info on 'best practices' for this.  Here's what I'm 
trying to do:

I have an ACD menu that gives the caller the options as follows:

- Press 1 for sales
- Press 2 for support
- Press 3 for customer service
- Press 8 for a 'Dial by Name' list

or enter the extension number at anytime to directly dial that extension.

I am setting up extensions to be 3 digits long, all starting with 6 (ie. 
601, 602, 603, etc.)

My current setup requires a single digit to be pressed before going to 
that context in the Dialplan.  Its all working fine with the exception 
of direct employee extension dialing.

What I have done is to create a context for '6'.  In other words, I wait 
for a single keypress at the main menu and if I get a 6, I then transfer 
to get the next 2 digits which represents the employee ID and then 
transfer to that person.

But what is happening is that the speed in which Asterisk is picking up 
the digits from the caller isn't fast enough for some reason, and is 
often missing the first digit (6) and then processing on some other 
digit that it picks up on.  I don't want to have to change our recorded 
audio menu since that was done professionally and was expensive, but 
just want it so that the incoming keys pressed are processed instantly.

I'm using a TDM400 from an analog line for the incoming menu, and then 
transferring to our internal LAN once the extension is chosen via SIP.

This is the context of my 'main menu':

; Calls during business hours
exten => s,1,Set(TIMEOUT(digit)=1)
exten => s,n,Wait(1)
exten => s,n,Background(1-MainMenu)
exten => s,n,WaitExten(3)
exten => s,n,Goto(ts_operator,s,1)

I have the context for extensions handled like this:

; User pressed 6 - start of extensions
[ts_extensions]
exten => s,1,Set(TIMEOUT(digit)=2)
exten => s,n,WaitExten(10)
exten => s,n,Hangup()
exten => t,1,Hangup()
exten => i,1,Goto(ts_start,s,1)

exten => 01,1,VoiceMail(6000 at edgeneering)
exten => 01,n,Hangup()
exten => 02,1,VoiceMail(6000 at edgeneering)
exten => 02,n,Hangup()
exten => 03,1,VoiceMail(6000 at edgeneering)
exten => 03,n,Hangup()


(I'm dummying out the transfer to SIP phone parts with VoiceMails here 
for demo purposes)

What am I doing wrong that is stopping correct identification of the 
digits entered by the caller?

Thanks in advance for any assistance.

Myles




More information about the asterisk-users mailing list