IVR MENU help

please help me with my IVR menu problem.

my current IVR setup is this

exten => s,1,Set(NUMINVALID=0)
exten => s,2,Set(NUMTIMEOUTS=0)
;exten => s,1,Background(day_recording)
exten => s,3,Background(day_recording)
exten => s,4,Set(TIMEOUT(digit)=5)
exten => s,5,Set(TIMEOUT(response)=10)
exten => s,6,WaitExten(5)

exten => t,1,Set(NUMTIMEOUTS=$[${NUMTIMEOUTS}+1]})
exten => t,2,Gotoif($["${NUMTIMEOUTS}" < “3”]?s,3)
exten => t,3,Background(vm-goodbye)
exten => t,4,Hangup()

exten => i,1,Set(NUMINVALID=$[${NUMINVALID}+1]})
exten => i,2,Gotoif($["${NUMINVALID}" < “4”]?:10)
exten => i,3,Background(invalid)
exten => i,4,Goto(s,3)
exten => i,10,Playback(vm-goodbye)
exten => i,11,Hangup()

exten => 1,1,Goto(context1,s,1)
exten => 2,1,Goto(context2,s,1)
exten => 0,1,Goto(context3,s,1)

the problem is it doesn’t accept direct extension dial, it goes the context2 for we have extension range 2xxx, and I tried dialing the group extension 4xxx and always go to an invalid entry.

thanks

Do you include the context where the extensions are defined in your IVR context?

you mean this one?

[context1]
exten => s,1,Dial(SIP/2020,30)

[context2]
exten => s,1,Dial(SIP/2020,30)

[context3]
exten => s,1,Dial(SIP/2020,30)

Nope, I mean:

[your ivr context]
exten => s,1,Set(NUMINVALID=0)
exten => s,2,Set(NUMTIMEOUTS=0)
;exten => s,1,Background(day_recording)
exten => s,3,Background(day_recording)
exten => s,4,Set(TIMEOUT(digit)=5)
exten => s,5,Set(TIMEOUT(response)=10)
exten => s,6,WaitExten(5)

exten => t,1,Set(NUMTIMEOUTS=$[${NUMTIMEOUTS}+1]})
exten => t,2,Gotoif($["${NUMTIMEOUTS}" < "3"]?s,3)
exten => t,3,Background(vm-goodbye)
exten => t,4,Hangup()

exten => i,1,Set(NUMINVALID=$[${NUMINVALID}+1]})
exten => i,2,Gotoif($["${NUMINVALID}" < "4"]?:10)
exten => i,3,Background(invalid)
exten => i,4,Goto(s,3)
exten => i,10,Playback(vm-goodbye)
exten => i,11,Hangup()

exten => 1,1,Goto(context1,s,1)
exten => 2,1,Goto(context2,s,1)
exten => 0,1,Goto(context3,s,1)
include=>your_extensions_context  with this line you allow to dial directly to extensions

[context1]
exten => s,1,Dial(SIP/2020,30)

[context2]
exten => s,1,Dial(SIP/2020,30)

[context3]
exten => s,1,Dial(SIP/2020,30)

[your_extensions_context] Here you dial to your extensions 
exten=> _20XX,1,dial(SIP/${EXTEN},15)
same=>n,hangup()

Is that what you want?

thanks,

I’ll try this one

Thank you navaismo

it Worked