cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2770
Views
0
Helpful
9
Replies

uccx menue script

Jeff Thompson
Level 1
Level 1

we running uccx 5.0.2SR2 enhnaced and in one of our scripts we present the customer with a menu option (ie, to reach sales, press 1, to reach service press 2)

Is there any way that if you state in your greeting 'if you know your party's extension you may dial it at any time' to collect those digits with out them having to input some filter key within the menu first in order to collect the digits and transfer the call.

Thanks in advance.

1 Accepted Solution

Accepted Solutions

Anthony Holloway
Cisco Employee
Cisco Employee

Don't think "Menu", and think "Get Digit String"

Pseudo Script:

:QueueLoop

callerInput = Get Digit String (P[if_you_know] + P[sales1_service2])

-- Successful

---- :CheckCallerInput

---- if (callerInput.length() == 1)

------ true

-------- switch (callerInput)

---------- Sales (Option 1)

------------ Call Redirect x12345

---------- Service (Option 2)

------------ Call Redirect x23456

------ false

-------- if (callerInput.length() == 5)

---------- true

------------ Call Redirect callerInput

---------- false

-- Timeout

---- Goto CheckCallerInput

-- Unsuccessful

Goto QueueLoop

View solution in original post

9 Replies 9

Anthony Holloway
Cisco Employee
Cisco Employee

Don't think "Menu", and think "Get Digit String"

Pseudo Script:

:QueueLoop

callerInput = Get Digit String (P[if_you_know] + P[sales1_service2])

-- Successful

---- :CheckCallerInput

---- if (callerInput.length() == 1)

------ true

-------- switch (callerInput)

---------- Sales (Option 1)

------------ Call Redirect x12345

---------- Service (Option 2)

------------ Call Redirect x23456

------ false

-------- if (callerInput.length() == 5)

---------- true

------------ Call Redirect callerInput

---------- false

-- Timeout

---- Goto CheckCallerInput

-- Unsuccessful

Goto QueueLoop

Thanks for your response. I tested the script you suggested and it works though I am still faced with having the customer enter a 'filter' key for this funtion.

In this case if the customer knows the party's ext, they would be entering a 4 digit number, if they want to reach a department they would be entering only 1 digit: 1, 2, ect... for the options. So I assuming within my 'Get Digit String' I need to have my 'input length' set to 4 in order to collect all possible digits, but by doing so I need to specify a 'Terminating Digit' in order to only collect 1 digit to route them to the option they choose in which case I am forced to let the customer know about a filter key they must press to route their call occordingly.

Is there still any way around this?

Thanks

So don't let them have a terminating key, and set the input length to 50. This forces them to the Timeout branch. Even if a Timeout occurs, you still get the digits they entered.

Yes that works. I also needed to adjust the "Maximum Retries" to '0' other wise if I didn't reach my Input Length it would ask me "are you still there" and want me to re-enter my options.

Thanks for all your help

You can also move the if & switch nodes after the entire get string step (leaving the success and failure nodes blank). This keep callers from having to wait for the timout.

I will challenge that and say the Timeout still plays regardless of where you place the if and switch steps. Yes you can move them out of the Successful branch, however I do not see a logical reason for moving it.

Set the input length back to 4 from 50 and as soon as a caller enters the 4th digit, they will go to the transfer step. You will still encounter a timeout on the menu options because it is waiting for the 4 digits. You can lower the timout and interdigit timeouts to reduce the wait time though.

So you agree then. Moving the if and switch steps do not eliminate the timeout?

Additionally, I would suggest not lowering the timeouts lower than 3 seconds, or you run the risk of frustrating callers who want to dial by extension.

The reason for setting the input length to 50 is so you don't have to care what the dialplan length is.

I agree, you will not completely eliminat the timout. But this is one instance where you could take the interdigit timout down to 1 or 2 seconds because people typically know the 4 digit extension that they are dialing. If this was an account number I would say put the interdigit to 5 seconds, but 1 should be fine here.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: