IVR menu question

Hello all-

This is my first post here so please bear with me.

My company currently has a Toshiba PBX that I’m looking to replace with Asterisk.
We have it set up with an IVR menu that allows the caller to dial the extension of a particular person at any time during the IVR recording, or select options from a menu.

The options include dialing 1 for a directory of personnel, and 2 for a department directory, and so on.

I’m trying to replicate this with Asterisk but I’m running into an issue that I’m not sure how to solve or work around.

Since our extensions would be starting with 2, it seems that Asterisk cannot allow an option for pressing 2 to enter another menu and the ability to dial an extension starting with 2 cleanly.

For example- With Asterisk, I dial 2 for the directory of departments, but there is a 5 second delay because it is waiting for me to dial two more digits/waiting for input of an actual extension. Eventually it times out and plays the recording for the department menu, but I keep thinking there has to be a better way.

My preferred behavior would be this: The caller dials our phone number, gets the IVR recording. They have a choice to dial an extension OR dial an option beginning with option 1, then 2,3 and so on.

Is there any way that is known that can allow this to happen without the 5 second delay after pressing 2?

Any suggestions, ideas, or whatever, would be appreciated! Thanks! :slight_smile:

Might help you:

exten => 0000,1,NoOp(IVR)
exten => 0000,n,Read(audio,custom/entrada-ura,3,,,2)
exten => 0000,n,Gotoif($[“${audio}”==””]?continua)
exten => 0000,n,Goto(${audio},1)
;Do not type anything, forwards the call to the operator
exten => 0000,n(continua),NoOp(URA: Do not type anything, forwards the call to the operator)
exten => 0000,n,Dial(SIP/1000,30,TWK)
; Enter the desired extension
exten => _XXX,1,Noop(URA: Digitou o ramal ${EXTEN})
exten => _XXX,n,Dial(SIP/${EXTEN},30,TWK)
; Option 1
exten => 1,1,Noop(IVR: Option 1)
exten => 1,n,Dial(SIP/1001,30,TWK)
; Option 2
exten => 2,1,Noop(IVR: Option 2)
exten => 2,n,Dial(SIP/1002,30,TWK)
; Option 3
exten => 3,1,Noop(IVR: Option 3)
exten => 3,n,Dial(SIP/1003,30,TWK)
; Treatment mistyping
; Return to start of options
exten => i,1,Noop(URA: Entered incorrectly)
exten => i,n,Playback(invalid)
exten => i,n,Goto(ura,0000,1)

GoTo a new context before asking for the 1, 2, 3, choice.

@jersonjunior It appears everything in yours is in the same context with the exception of that last line.
My IVR is in a separate context from my phones and if I add the phones context back in as an “include” with the IVR context, I get the delay because it is trying to share that first extension digit with one of my options.

So I dial 2, and there is a 5 second delay before I hear the department directory menu recording. This also exists when the IVR options are put in the same context as the phones because of the same reason. As long as asterisk is searching through the phones context, it sees my extensions are 200’s, and that first number…2…becomes semi reserved.

@david551 What you’re suggesting wouldn’t work because if a person wants to enter an extension while these options are playing, that won’t work without including my phones context. So for example someone calls in and you hear “Thanks for calling my company…if you know your party’s extension you may enter it at any time…for a directory of personnel dial 1, for a directory of departments 2…” suddenly the caller remembers the persons extension is 202 lets say and they dial it. Unfortunately 202 is not in the IVR context, it’s in the phones context and it doesn’t work. Catch 22 is that if I include the phones context in the IVR to alleviate this issue, when option 2 is dialed…there’s a 5 second delay before the prompt plays because it’s waiting for another two digits first.

Hopefully I’ve understood you guys. Thanks for your input.

I’d recommend not using option 2 in your menus if you are including extensions that start with a 2 or asking your customers to press 2# instead.

Otherwise yes asterisk will wait for the digit timeout before selecting that option.

1 Like

Alright I kinda figured that’s what I’d end up having to do but wasn’t sure. Thanks!