Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

How to use variables to create menus with inputs of varying lengths.

Vector Programming

How to use variables to create menus with inputs of varying lengths.

by  Zen216  Posted    (Edited  )
Using Variables for Menu Inputs of Different Lengths.

We have a menu for our callers giving them the option to get to different departments, and the option to dial an extension directly. The prompts to get to different departments use one digit, but all of our extensions are 4 digits long. We donÆt want to have callers wait for the inter-digit timeout or dial an extra digit, like a pound sign. So,, what to do? Use variables and concatenation. HereÆs how.

First set your variables, type is collect, scope is local (local to the vector calling the variable)
Length and Start will both be 1à


VARIABLES FOR VECTORS


Var Description Type Scope Length Start Assignment VAC

A First Option collect L 1 1
B Last three digits of extens collect L 3 1
C Full 4 digit extension collect L 4 1


Now for the vectorà
1 wait time 2 seconds hearing ringback
2 collect 1 digit after announcement xxxx for A (Main greeting, hit one for dept 1, 2 for dept 2 etc..)
3 Goto Vector xx @ step 1if digit = 1 (these will route to the different one digit options)
4 Goto vector xx @ step 1 if digit = 2
5 goto step 8 if digit = 5+ (My extensions all start with 5, replace with the leading digit of your extension range)
6 announcement xxxx (invalid option or try again,, )
7 goto step 2 if unconditionally
8 collect 3 digits after announcement none for B (collecting the last three digits of the extension)
9 set C = A CATR B (this sets variable C to be the 4 digit extension, it puts the three digits of B to the Right of the digit from A)
10 route to number C with cov y if unconditionally

When the caller enters the 4 digit extension after the first announcement, the system will collect the last three digits as 'look ahead' digits for the next collect step. So when the next collect step happens it uses the three digits that the caller already entered. That is why it is collect 3 digits after announcement none.

If you had several vectors that had menu prompts, and you wanted to give the option to dial an extension at any of the menus. You could create a sub-routine that all vectors used.

Vector with menu
1 wait time 2 seconds hearing ringback
2 collect 1 digit after announcement xxxx for A
3 goto step 8 if digit = 5+
4 route to number xxxx if digit = 1
5 goto vector xx @ step 1if digit = 2
6 goto step 2 after announcement xxxx (invalid option, try again, etc)
7 stop
8 goto vector 2 @ step 1 if unconditionally
9 route to number c with cov y if unconditionally.

Extension Vector Sub-Routine
1 collect 3 digits after announcement none for B
2 set C = A CATR B
3 Return


the Return will send it back to the original vector, with the Variable C set as the 4 digit extension. You could also just put in the route to number C instead of return in step 3.

If you want to limit a caller to three attempts to get a menu item correct, you could add in a counter step as wellà The variable would be set the same as the others, collect, local, etc.


1 wait time 2 seconds hearing ringback
2 set D = none add 1
3 collect 1 digit after announcement xxxx for A (Main greeting)
4 goto vector xx @ step 1if digit = 1
5 goto vector xx @ step 1 if digit = 2
6 goto step 14 if digit = 5+
7 goto step 12 if D = 3
8 set D = D add 1
9 announcement xxxx (invalid option, try again)
10 goto step 3 if unconditionally
11 stop
12 disconnect after announcement xxxx (Too many invalid attempts, goodbye)
13 stop
14 collect 3 digits after announcement none for B (or send to the sub-routine mentioned above)
15 set C = A CATR B
16 route to number C with cov Y if unconditionally

Register to rate this FAQ  : BAD 1 2 3 4 5 6 7 8 9 10 GOOD
Please Note: 1 is Bad, 10 is Good :-)

Part and Inventory Search

Back
Top