cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1211
Views
8
Helpful
3
Replies

Get Digit String issue

Live2 Bicycle
Level 3
Level 3

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!!

GetDigitString.jpg

3 Replies 3

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

Anthony Holloway
Cisco Employee
Cisco Employee

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?

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!

.