Incoming context delay when one digit is used

Hello

Anyone tried this scenario.?

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?

here is my code

Thanks

Hello

Anyone tried this scenario.?

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?

here is my code

Thanks

Hi Kerberos

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…

Hope this helps…

From SuperX

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…

Have a look at http://forums.digium.com/viewtopic.php?p=35513.

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.

I hope this helps.

Mike.

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.

say you have two extensions, 1 and 111

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.

ok thank you very much for additional info additional info.
im about to try it .

Thanks really

IronHelix

what could you suggest if im going to allow only 3 trials in my incming context? how to do it? any functions?

Thanks really

IronHelix: I have been banging my head on this issue for a long time. Just figured it out the other day. Too bad I didnt ask earlier.

Kerberos: What do you mean by three trials ?

What I did to remedy the issue was to set the digit time out to 1 second. This means the user only has one second between entering digits.

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?)

my boss’s

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.

IronHelix. please check my code here
forums.digium.com/viewtopic.php?t=10993
if it has logical error.

Thanks really and Sorry if i got u deceived my thread but again i believed the has different topic

exten => 1,1,Goto(ivr1.0000,1)
exten => 2,1,Goto(ivr2.0000,1)

exten => ivr1.0000,1,SetCIDName(OPERATIONS CALL)
exten => ivr1.0000,2,Macro(customivrdial,XXXXXXX,XXX)
exten => ivr2.0000,1,SetCIDName(SALES CALL)
exten => ivr2.0000,2,Macro(customivrdial,xxxxxxxxx,xxxxxx)

and create a cusom macrto for dialing each sip phone

something that does the rings, then the VM

get creative with the contexts and extensions.

just use the dtmf to trigger undialable extensions behind the scene

[quote=“kerberos”]ok thank you very much for additional info additional info.
im about to try it .

Thanks really[/quote]

ok i really apprecite the add info:)