In incoming context (from PSTN) why is it when i use “one” or “two” digit to connect a certain extension it takes time or it wait more or less 10 seconds before executing the called extensions.
whereas when i use “3” digits it will directly execute the called extensions.
how to solve this? is there a way to set the time so even i use “one” digit of extension it will directly execute the called code?
In incoming context (from PSTN) why is it when i use “one” or “two” digit to connect a certain extension it takes time or it wait more or less 10 seconds before executing the called extensions.
whereas when i use “3” digits it will directly execute the called extensions.
how to solve this? is there a way to set the time so even i use “one” digit of extension it will directly execute the called code?
I think this is the same problem I orginally had… When you press 1 ( or any number) there was a few second pause and then it would forward you to that extension…
This sorted out the problem… You need to set a digit timeout to accomodate only 1 digit, you where entering 1 digit and it was waiting to see if you were going to enter any more, we can assume you wont enter more then 1 digit in this dial extension, so you set a digit timeout of 1.
exten => s,6,Set(TIMEOUT(digit)=1)
As soon as you press the digit, it transfers you to that extension…
the real problem is that the internal context is included. asterisk keeps waiting for more digits as long as there is a possibility that you are dialing another exten.
say you have the following extens in a context
1
12
123
13
2
if you dial 1 or 12 it will keep wating to see if you are going to dial 123. if you dial 13 or 2 it will connect you immediately because there is no other possibility you can dial.
so something from your internal context is waiting to be matched…
digittimeout=1 is a hack, it just means if you are going to dial more digits you have to do it fast…
Basically if you put your menu into a context of its own and then use goto from your incoming context then there is no problem with overlapping extensions.
Another thing i want to happen with the IVR is it will state only “one” digit
or inform the caller with the “one” digit extension number as choices to connect to a certain extension, but in behind, if the caller will press the correct “3” digits extension number (assigned to a SIP or IAX user) he/she will be connected on it without delay.
read what Iron Helix posted (and the rest of the thread). you want instant 1-digit transfer and waiting for up to 3 digits ?? hardly conditions that appear compatible.
if the caller can call both, then having the call connect immediately after pressing 1 is not physically possible because if it does then you will be unable to dial 111.
If you do want this anyway your only option is to shorten the digittimeout to 1 but then they must dial 111 quickly or risk getting connected to the wrong exten.
a better idea perhaps- have your IVR in its own context (no includes) with only 1 digit extens. One of these is an option not listed in the main menu, maybe * or #. This takes you to another context (which includes the ivr context) and you can dial 3 digit extens from there. You include the ivr context so if they got there by accident they can dial an ivr exten and get back.
do you mean they get three tries to enter an extension after which they get dumped?
If so just do something creative with the ‘i’ exten. When a user dials an invalid exten they go to ‘i’. Have i increment a variable, then check to see what it is, and if it’s a certain number (say 3) then hang up on them.
or do you mean that they can type extens up to 3 digits?
to do this just put extens that are 3 digits long in the context or include them to the context… asterisk will automatically wait to see if they are trying to be dialed.
i mean 3 trials as the limit of chance of entering the right extension before the sytem hangup the current active channel
yes that could solve the issue and apply for those regular or more familiar with the IVR. but i consider more on new caller to my ivr in which they are not yet familiar. and also i consider the phone they are going to use, what if the new caller will use a phone where the keypad is between the mic and ear phone(like cordless phone) they might enter the choice after one second.
if that is so they will have hard time in entering the right choice, and as a feedback your system might not be a user friendly to them.
therefore i second the motion with IronHelix as DigitTimeout is not good in incoming context
ah then try the variable thing, if you need it i might be able to dig up a code example (I know I’ve done this before…).
Also remember Timeout and DigitTimeout are two different things-
normal timeout is when the script or whatever finishes and it waits for you to do something. If that expires, it goes to exten t. This as i recall is somewhat depreciated, as now if you fall off the end of the dial plan it just hangs up.
DigitTimeout is how long it waits for the NEXT digit. Once you push one digit, it waits for the digittimeout to see if you will push another one. ie if you have extens 1 and 123, when you push 1 it waits for (digittimeout seconds) to see if you will push 2. I agree that 1sec digittimeout is usually too slow. However digittimeout won’t be an issue for people with keypad phones, because the time between them taking the phone off their face and starting to dial won’t be part of the digittimeout (make sense?)
as i believe this thread i have posted is about the the delay of “one” digit context. but i am enlighten with IronHelix as its an “include issue”.
meanwhile, i have solve the 3 trials here forums.digium.com/viewtopic.php?t=10993
its about granting the caller extensions entry.
as when caller enter the wrong extension he has 2nd up to 3rd chance.