cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
803
Views
5
Helpful
2
Replies

DTMF or Speech Recognition with Get Digit String in CCX 8.x/9.x

Samuel Womack
Level 5
Level 5

I have a Get Digit String in an ASR enabled script where the user either enters their Account Number via Touch Tones or Speech; if the user uses Touch Tones, I need to just move on to the next step in the script; however, if the user uses Voice I need to confirm the accuracy of the "input" then I can move on.  How do I make the script detect which was used and where would I go to change the associated Variable from true to false...

Hope this makes sense.

2 Replies 2

Anthony Holloway
Cisco Employee
Cisco Employee

This is a tricky one for the community most likely because ASR is used very little with UCCX, and more with UCCE.  That's my opinion anyway.

Ok, so, according to the documentation it doesn't look like there's a way to directly tell if the user spoke or pressed keys.  Here's what I found that seemed likely to be helpful:

The Get Digit String step waits for input until the caller does one of the following:

  • Presses the terminating key (DTMF only)
  • Exhausts the maximum number of retries
  • Enters the maximum number of keys (DTMF only)
  • Does not respond before the timeout length is reached
In ASR mode, the step will take an entire spoken digit string but will return the digit result only up the specified Input Length.

This got me thinking, what if you used a fake terminating digit?  Normally the terminating digit is just discarded, but if you turned off that feature, and still asked for it, then you'll be able to analyze the input for it.

You could say in your prompt something like the following:

"Using your touch tone keypad, enter your five digit account number followed by the pound sign.  For your convenience, you may also speak your account number now."

This way, if the caller is a good listener, and presses the terminating digit, which is only a trick to get them to identify themselves as having used the keyboard, you can use this method to check for it:

If (CED.endsWith("#"))

  True

    /* The caller pressed the pound key and thus is using the keypad */

    /* Remove the pound sign at the end of the input */

    Set CED = CED.replace("#", "")

  False

    /* The caller did not press the pound key and thus is using speech */

What are you thoughts on that solution?  I wish I had an ASR to play with, and then I could actually try a few things.  You're lucky to have access to such advanced technology.

Anthony Holloway

Please use the star ratings to help drive great content to the top of searches.

I think this is a great idea...I was sort of thinking along the same lines.  About the ASR, I don't actually have 1 yet to play with.  It's a requirement on a Project I'm currently in the beginning phases of so I'm trying to get in front of a few requirements for the customer's IVR.  Hopefully I will be able to spin something up in a sandbox though for future use.

Sam