IVR Menu Speed

I have a little issue, it’s nothing major just a little annoying. When a caller makes a selection from my IVR there is a delay, probably at least 5 seconds from when they make their selection until something actually starts to happen. Here is my extension layout. Is the delay due to the response timeout I have set or the DigitTimeout? Any help would be greatly appreciated. Like I said it works fine, just wish it was a bit faster after they make a selection!

exten => 99,1,Dial(SIP/200&SIP/201&SIP/202,15)
exten => 99,2,Answer
exten => 99,3,DigitTimeout,5
exten => 99,4,ResponseTimeOut,6
exten => 99,5,Background(custom/cell-test)

exten => 1,1,Background(pls-hold-while-try) ;if you press 1 you get my cell phone
exten => 1,2,Dial(SIP/axvoice/mycellnumber)
exten => 1,3,Hangup

exten => 2,1,Background(pls-hold-while-try) ;if you press 2 you get Jason
exten => 2,2,Dial(SIP/202)
exten => 2,3,VoiceMail(202@default)
exten => 2,4,Hangup

exten => 3,1,VoiceMail(201@default)
exten => 3,2,Hangup

exten => i,1,Background(privacy-incorrect) ;wrong number pressed
exten => i,2,Goto(from-internal-custom,99,5)

exten => t,1,VoiceMail(201@default)
exten => t,2,Hangup

Hi

We I would expect it to wait 5 seconds as thats what you asked it to.

exten => 99,3,DigitTimeout,5 ; WAIT 5 SECONDS FOR ANOTHER DIGIT exten => 99,4,ResponseTimeOut,6 ; WAIT 6 SECONDS FOR A DIGIT TO BE DIALED

The digit time out is what I would call the interdigit timer. Ie the time before * decides you are not going to dial any more digits

So would it be safe to removed that line? They only have the option to enter a single digit.

Thanks for the help!

Edit: I removed that line, but the delay is still there… hmm wonder what is the deal?

The problem is probably an include or something you have not mentioned here.

Every time caller types a digit, Asterisk checks the dialplan to see what extensions they can and are possibly trying to dial.

Say your dialplan has the following extensions

1
12
123
24
5
6
83

If you dial 1 or 12, it will keep waiting for the digittimeout to see if you are going to still dial a 3, for 123. If you dial 124 it will send you to ‘i’ because there is no 124. If you dial 2 it will wait for you to dial 4, but if you don’t (and digittimeout expires) or if you dial something other than 4 you get sent to ‘i’. Same deal with 8 (83). If you dial 5 or 6, you will be connected immediately because there is nothing more for you to dial, what you have dialed only matches one choice.

So what is probably happening is whatever you dialed also may match something else in your dialplan. Check the entire context you are in as well as anything include => 'd in it…

Should you not use Playback in the digit extensions instead of Background. Surely it does not need to wait for further input, just get on and connect the caller?

Here is how I would have done this…

[code]exten => 99,1,Goto(cell-menu,s,1)

[cell-menu]
exten => s,1,Dial(SIP/200&SIP/201&SIP/202,15)
exten => s,2,Answer
exten => s,3,Wait(1)
exten => s,4,Background(custom/cell-test)
exten => s,5,WaitExten(6)
exten => s,6,VoiceMail(201@default)
exten => s,7,Hangup

exten => 1,1,Playback(pls-hold-while-try) ;if you press 1 you get my cell phone
exten => 1,2,Dial(SIP/axvoice/mycellnumber)
exten => 1,3,Hangup

exten => 2,1,Playback(pls-hold-while-try) ;if you press 2 you get Jason
exten => 2,2,Dial(SIP/202)
exten => 2,3,VoiceMail(202@default)
exten => 2,4,Hangup

exten => 3,1,VoiceMail(201@default)
exten => 3,2,Hangup

exten => i,1,Playback(privacy-incorrect) ;wrong number pressed
exten => i,2,Goto(s,4)

exten => t,1,VoiceMail(201@default)
exten => t,2,Hangup
[/code]

I hope I got the right end of the stick! In the past I have had problems with specifying timeouts, so now I avoid if possible.

Mike.

no, Background and Playback operate exactly the same, the only diff is that with background you can dial while it’s playing, which will make it stop playing and just listen for the next digit. This guy has another exten somewhere that asterisk is waiting to match…

Well I’m not sure what made the difference, but the code you posted fixed the problem. Thanks a bunch, I appreciate it!

Glad you got it figured!

Mike.

You get all the credit! I was confused!