03-28-2011 05:18 PM - edited 03-14-2019 07:39 AM
Hey Team, I am looking for the proper way to do this if the way I am doing it is not correct.
I use a get digit string and play a menu prompt to a caller
Press 1
Press 2
Press 3
Etc...
But if the caller presses a 5 digit code they get a super secret special menu. All this works great. When i do the debug I see the digits being passed to the sCED variable I use. 99% of all callers are not pressing the pound key after thier key press so the get digit string timeout brance gets used.
I have fixed this in two ways. I use an if statement in the timeout to check if sCED has a value I then send it to another if statement for routing to the various menu options.
THe out way I fixed this is I just send every call which hits the time out on to be processed and evaluated.
Am I doing this correctly? It all works fine but I wanted to make sure there are no gotchas or better ways to accomplish this.
Having the caller pass both a single digit and 5 digits is why I use the get digit string instead of a menu step.
See screen shot. Thanks in advance for any feedback.
Go Butler Bulldogs!!
03-29-2011 12:17 AM
Hello,
What you are doing is fine , i did the same , one time a customer asked us to use the UCCX as AA so he wanted the caller either to press the extension or 0 for opertaor , the get digit string is tied to a number of digits so the only way to this is the timeout then i send it for verification , if the get digit string is == 0 then go to opertaor otherwise it is timeout and i activated a counter for three times then kick out.
I spend alot of time finding another solution but i couldn't , this is the only solution and there is no problem with it.
Amer
03-29-2011 08:33 AM
A couple of suggestions in the form of pseudo code (all in the name of effeciency):
label main_menu_reset
set counter = 0
label main_menu
ced = get digit string(timeout 3 sec, inter-digit 1 sec, no terminating or cancel digit, no retries)
successful
label main_menu_success
if (ced == super_secret_key)
true
goto super_secret_section
false
switch (ced)
case "1"
/* do menu option 1 tasks */
case N
/* do menu option N tasks */
default
goto main_menu_failure
timeout
goto main_menu_success
unsuccessful
label main_menu_failure
play prompt (invalid)
if (++counter > maximum)
true
goto customer_service
false
play prompt (try_again)
goto main_menu
Questions to ask yourself about your approach and this new approach:
How many steps do I have in this solution (not counting branches)?
How many steps for best case scenario execution?
"" worst case scenario?
How easy is it to change the super secret key (and length of key)?
How easy is it to add/remove menu options (steps required to add)?
At how many points are you addressing the failures in your menu?
03-30-2011 06:42 AM
Thanks Amer and Anthony for your responces.
I like your suggestion Anthony, It makes is easier to add on later on with the way your suggesting. Thank you!
.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide