As I understand it, building a menu is best done in a separate context, done for the menu.

I'm guessing a bit, but my tests indicate that Asterisk finds out the longest 
extension within
the context (including included contexts) and listens until you've entered as many 
digits as the
longest one, or a DigitTimeout. So if you have a menu with a "1" and one "3000" as the 
longest one,
entering 3000 makes Asterisk stop listening and start processing directly, but entering 
"1" makes
Asterisk wait until a DigitTimeout. User's appreciate fast processing, so try to keep 
your
menues consistent in input length.

The 'i' extension is used for invalid input, catch it. It has to be within the menu 
extension.
The 't' extension is for timeouts. Catch that too.

Rich's example:
> > exten => 620,1,Wait,1
> > exten => 620,2,Answer
> > exten => 620,3,DigitTimeout,5
> > exten => 620,4,ResponseTimeout,10
> > exten => 620,5,Background(npi-greeting)  ; "Thanks for calling press 1 for"
> >
> > exten => 1,1,Goto(npi-directory,s,1)


I would change this to something like


exten => 620,1,Goto(richsmenu,s,1)

[richsmenu]
exten => s,1,wait(1)
exten => s,2,Answer
exten => s,3,DigitTimeout(5)
exten => s,4,ResponseTimeout(10)
exten => s,5,Background(npi-greeting)

;Possible choices
exten => 1,1, blablabla
exten => 2,1, blablabla

;Catch three character extensions
exten => _XXX,1,goto(myextensions,${exten},1

;Invalid extensions
exten => i, 1, Playback(invalid)
exten => i, 2, goto(s,5)
;Timeouts, restart
exten => t, 1, goto (s,5)


Also make sure there's an 'i' extension in [myextensions]


Of course one could include 'myextensions' but there might be other stuff in there 
that you
won't want to be reachable from a menu.

http://www.voip-info.org/tiki-index.php?page=Asterisk+cmd+BackGround
http://www.voip-info.org/wiki-Asterisk+tips+ivr+menu

Good luck building menues! It's fun.
/Olle

_______________________________________________
Asterisk-Users mailing list
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to