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
If you add option 6 to the menu for the first position and use the read command for the 2 last position and use a second line that looks something like: exten 6,n,Dial(SIP,6${ENTERED_NUMBER},20,t) it should work. The {ENTERED_NUMBER} should be the variable filled with the read command. Don't forget to add some lines to catch wrong numbers and time outs Hope this helps :-) Erik On 9 dec 2009, at 18:53, Myles Wakeham wrote:> 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 > > > _______________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users
Have you tried... exten => 6XX,1,Dial(SIP,${EXTEN},20,t) -- Jarrod Lash, <jarrod at fed-com.com> Federated Communications, LLC. www.fed-com.com Office: +1-412-357-2127 Mobile: +1-412-999-0049 Fax: +1-412-545-8368 On Wed, Dec 9, 2009 at 12:53 PM, Myles Wakeham <myles at techsol.org> wrote:> 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 > > > _______________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > ? http://lists.digium.com/mailman/listinfo/asterisk-users >
On Wed, 9 Dec 2009, Myles Wakeham wrote:> 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.)Patterns and wildcards are your friend. Maybe something like: [example] exten = _!,1, verbose(1,[${CONTEXT}:${EXTEN}]) exten = _!,2, answer() exten = 1,3, goto(sales,s,1) exten = 2,3, goto(support,s,1) exten = 3,3, goto(customer-service,s,1) exten = 8,3, goto(directory,s,1) exten = _x,3, hangup() exten = _6xx,3, goto(dial-by-extension,s,1) -- Thanks in advance, ------------------------------------------------------------------------- Steve Edwards sedwards at sedwards.com Voice: +1-760-468-3867 PST Newline Fax: +1-760-731-3000
Steve wrote: >Patterns and wildcards are your friend. >Maybe something like: >[example] > exten = _!,1, >verbose(1,[${CONTEXT}:${EXTEN}]) > exten = _!,2, answer() > exten = 1,3, goto(sales,s,1) > exten = 2,3, goto(support,s,1) > exten = 3,3, goto(customer-service,s,1) > exten = 8,3, goto(directory,s,1) > exten = _x,3, hangup() > exten = _6xx,3, goto(dial-by-extension,s,1) First, thanks to everyone for the pointers. This looks like it might fit my ACD requirements. What I'm still confused about here is that it seems to get the extension in line 1, but answers in line 2? Wouldn't it have to answer the call before it could get an extension? And what I'm also not sure about is how this would work based on the number of digits entered. Is it that by not specifying how many digits to get, it just handles processing 3 digits entered if the first digit is not 1,2,3 or 8? Myles