utilizing the power of the uui and local shared ... - avaya
TRANSCRIPT
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
CONTENTS
1. Preface…………………………………………………………………………………………………………………....... 2
2. Design Summary and Requirements .………………………………………………………………………... 3
2.1 Assumptions…………………………………………………………………………………………………. 3
2.2 Client Requirements…………………………………………………………………………………….. 3
2.3 Programming Overview…………………………………………….………………………………….. 3
3. Detailed Programming Logic………………..…………………………………………………………………….. 4
3.1 Variables…...…………………………………………………………………………………………………. 4
3.2 Vdns………………………..…………………………………………………………………………………….. 5
3.3 Vector Logic………………..…………………………………………….………………………………….. 6
Page 2
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
1. PREFACE
Variables in Vectors were introduced in CM Release 2.0 and expanded on with every new release of CM.
Additional capacity, as well as new ways to use the variables has been an ever evolving process in the
design of Contact Center Vectors ever since. Implementing variables in several different ways allows for
consultants to be both creative in their programming as well as aid in consolidation and efficiency of the
call processing.
While no designs are ever the exact same there are several methods to implementing variables that can
be used over and over as applicable.
As a consultant or programmer we must always use caution when working with variables, as while we
may understand the concepts, some Clients can be reluctant to implement them due to a lack of
understanding. For that reason alone it is always a wise choice to use comments in vectors so that the
Clients can understand what the logic is doing.
An assumption when integrating variables in vectoring is that you have a firm grasp of how each type of
variable can used, specifically how the asai-uui variable can be utilized. An understanding of Vdn
Variables, Announcements, Vector Directory Numbers (VDNs), Hunt Groups, and Vector Programming
concepts is also necessary.
-Curtis Nunn, Avaya Professional Services
February, 2013
Page 3
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
2. Design Summary and Requirements
2.1 Assumptions
CM will be on CM Release 5.2 or higher.
Client allows use of variables in the Vectors.
2.2 Client Requirements
The client requests programming that will allow for individual skills to have separate Emergency checks
and does not want to manage several vectors. The skills are managed by different Managers so the
need for protected activation of Emergency is a requirement. They would also like to be able
activate/deactivate the emergency treatment internally from any Avaya telephone set, as well as
externally from a cell phone. Each skill would also need the capability of up to three different three
treatments (Mailbox, Extension, Announcement) in an emergency condition. The client is also using
several variables and would like to use a single one that can support up to 16 skills each. They would
also like to expand on this so that each new single variable added can support up to 16 skills. They
would also like the ability to have custom hold and greeting messages for each Vdn used. Call priorities
should be determined by the Vdn that directs the caller to the vector processing logic.
2.3 Programming Overview
We will be using several UUI variables to handle the activation of the emergency values for each Skill.
One global collect variable will be used to support the 16 different skills. Three local collect variables to
handle the custom hold messages, call priorities, and emergency flags. A stepcount variable will also be
added to prevent disconnection of callers. A total of five vectors will be used to setup this logic up.
One of the vectors can be used enterprise wide while the other four would just need to be duplicated
with only some minor logic changes to support each set of 16 Skills.
Special Note on the Variables: UUI and the local collect variables only need to be built once and can
reused system wide. For each additional group of up to 16 Skills you add one additional global collect
variable that is setup identical to variable we are using in our example.
Page 4
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
3. Detailed Programming Logic
3.1. Variable Reference Screen
Definitions of the Variables Used
1. A: Local collect type with a length of 1. Used to store the Emergency Flag Value. Can be used
system wide for other applications.
2. B: Local collect type with length of 4. Used to store announcements, mailbox numbers, and
Extension Numbers. . Can be used system wide for other applications.
3. C: Local collect type with a length of 2. Used to store the Skill Number. Can be used system
wide for other applications.
4. D: Global collect type with a length of 16. Used to support the first set of 16 Skills, with each
position being a flag value for each of these Skills. For each new set of 16 Skills you would add
an additional variable of this type.
5. E – T: Temporary locations to store values of each Skills Emergency Flag Values into UUI.
Remember UUI stays with each call until completion. Can be used system wide for other
applications.
6. U: Temporary full 16 digit String of UUI value, each position represents a Skills Emergency flag
value.
7. V: Stepcount variable used in vector logic so that the maximum number steps are not reached.
Limits are 1000 for release CM 5.2 and lower and 10000 starting in CM release 6.0
Page 5
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
3.2. Vdn Reference Screen- Example of 5 Vdns to understand logic
Vdn Name Vector V1 Desc V1 Value V2 Desc V2 Value
3000 Eastern Sales Skill 10 1 Pri,Sk,Emrg Opt 210400050001050 Queue Msgs 110011011102
3001 Central Sales Skill 11 1 Pri,Sk,Emrg Opt 111400150011051 Queue Msgs 110311041105
3002
Mountain Sales Skill
12 1 Pri,Sk,Emrg Opt 312400250021052 Queue Msgs 110611071108
3003 Pacific Sales Skill 13 1 Pri,Sk,Emrg Opt 413400350031053 Queue Msgs 110911101111
3004
3173290111 Emerg
DID 3
Password
Prompt 1000
Options
Prompt 1002
Breakdown of Settings
1. Vdn: Number assigned for call processing
2. Name: Description of Call Type
3. Vector: Which vector the Vdn will point to for call processing
4. V1 Desc: Shortened verbiage for what we will be using the values in V1 for
5. V1 Value: 1st
Digit=Queue Priority, 2nd
– 3rd
Digits=Skill number, 4th
– 7th
Digits= Emergency
Mailbox Number, 8th
– 11th
Digits=Emergency Extension Number, 12th
– 15th
Digits= Emergency
Announcement Number
6. V2 Desc: Shortened verbiage for what we will be using the values in V2 for
7. V2 Value: 1st
– 4th
Digits=Greeting Announcement Number, 5th
– 8th
Digits=First Hold
Announcement Number, 9th
– 12th
Digits=Continue Hold Announcement Number
NOTE: Be sure you understand the VDN Override Rule. These Vdns need to be the Active one in control
otherwise the V1 and V2 values will not work.
Page 6
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
3.3. Vector Logic
Page 7
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Let’s review the rationale behind the relevant program steps one at a time:
4) This is an optional step but is still widely used to start the call processing
6) Step will grab the positions 2 and 3 from left to right in what is stored in Vdn Variable V1. The value
will then be stored in a local variable “C”. The SEL 14 statement means to look at the entire string of
numbers in V1 and then move from right to left 14 positions. Since Variable “C” is defined as 2 digits in
length it will grab the 1st
two digits in the string.
8) This will run our emergency subroutine; the logic will be explained further in that subroutine vector
10) Step will grab the first 4 digits from left to right in what is stored in Vdn Variable V2. The value will
then be stored in a local variable “B”. The SEL 12 statement means to look at the entire string of
numbers in V2 and then move from right to left 12 positions. Since Variable “B” is defined as 4 digits in
length it will grab digits 1-4 in the string. P will now be the Greeting Announcement Number
11) Greeting Announcement is now played, the Extension Number is now stored in variable “B”
13) This will run our priority and queuing subroutine, the logic will be explained further in that
subroutine vector
15) Step will grab the second set 4 digits from left to right in what is stored in Vdn Variable V2. The
value will then be stored in a local variable “B”. The SEL 8 statement means to look at the entire string
of numbers in V2 and then move from right to left 8 positions. Since Variable “B” is defined as 4 digits in
length it will grab digits 5-8 in the string. P will now be the First Hold Announcement Number
16) First Hold Announcement is now played, the Extension Number is now stored in variable “B”
20) Using a Stepcount Variable “V” we need to make sure that if more than 950 steps have been
executed for this call that we break the loop while in queue. Send the call to music only if the value has
been exceeded.
22) Step will grab the third set 4 digits from left to right in what is stored in Vdn Variable V2. The value
will then be stored in a local variable “B”. The SEL 4 statement means to look at the entire string of
numbers in V2 and then move from right to left 4 positions. Since Variable “B” is defined as 4 digits in
length it will grab digits 9-12 in the string. B will now be the Continue Hold Announcement Number
23) Continue Hold Announcement is now played, the Extension Number is now stored in variable “B”
25) This will run our emergency subroutine; the logic will be explained further in that subroutine vector
26) Looping command to continue processing. Will send back to step 17 which will play music
27) Used to play music if the stepcount threshold is met
Page 8
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Vector 2 Continued Next Page
Page 9
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Vector 2 Continued Next Page
Page
10
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Let’s review the rationale behind the relevant program steps one at a time:
2-17) We use this ladder check to see the value of variable “C”. Remember we set this value to the
actual Skill number in the queuing vector. Depending on the value the call will be sent a specific step so
we can further process the emergency logic. If the value is not set or is not in the ladder check we
return back to the queuing vector at the next step in line.
22-53) These steps handle setting up the value of Variable “A”. Each different Skill uses a specific
position in the Global Variable “D”. Remember “A” is one digit in length whereas “D” is the full sixteen
digits allowed. “A” is also a local variable so it can be changed again and again throughout the call. Now
let’s take a closer look at step 22. Step 22 is using the SEL command again. In particular what the logic
does is to make “A” equal to the 1st
position in the sixteen digit string contained in “D”. The SEL
command says 16, so we move from right to left 16 positions, and since “A” is only one digit in length we
grab that value and make “A” equal to it. Example: D= 2000000000000000 then step 22 would make
the value of “A” equal to 2.
This process then repeats for each skill, with each using a specific position, thus in step 24 you will see
the SEL 15 statement, step 26 would use the SEL 14 statement, and so on and so forth until all sixteen
positions are accounted for. Thus you have now given each individual Skill a specific location within the
Global variable “D”.
We then go to step 56 for further processing.
57-60) Using another ladder check we are just looking at the value of “A” so a decision can be made as
to how to handle the call. If A equals 1 or an invalid value we simply return back to the queuing vector
at the next step in line. If A equals 2, 3, 9 then we continue on for further processing.
64)This logic is valid if “A” was equal to a value of 2. Which means send the call to a mailbox. Step will
grab the positions 4-7 from left to right in what is stored in Vdn Variable V1. The value will then be
stored in a local variable “B”. The SEL 12 statement means to look at the entire string of numbers in V2
and then move from right to left 12 positions. Since Variable “B” is defined as 4 digits in length it will
grab digits 4-7 in the string. “B” will now be the Mailbox Number
Page
11
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
65)Will send the call to the Messaging System and open the mailbox number that is now stored in
variable “B”
67) This logic is valid if “A” was equal to a value of 3. Which means send the call to an extension. Step
will grab the positions 8-11 from left to right in what is stored in Vdn Variable V1. The value will then be
stored in a local variable “B”. The SEL 8 statement means to look at the entire string of numbers in V2
and then move from right to left 8 positions. Since Variable “B” is defined as 4 digits in length it will grab
digits 8-11 in the string. B will now be the Extension Number to route the call to.
68)Will route the call to the extension number which is now stored in “B”
70) This logic is valid if “A” was equal to a value of 9. Which means play a announcement and
disconnect. Step will grab the positions 12-15 from left to right in what is stored in Vdn Variable V1.
The value will then be stored in a local variable “B”. The SEL 4 statement means to look at the entire
string of numbers in V2 and then move from right to left 4 positions. Since Variable “B” is defined as 4
digits in length it will grab digits 12-15 in the string. B will now be the announcement extension number
to play
71)Will play the emergency announcement and disconnect the caller. Announcement extension to play
is now stored in “B”
Page
12
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Vector 3 Continued Next Page
Page
13
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Vector 3 Continued Next Page
Page
14
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Vector 3 Continued Next Page
Page
15
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Page
16
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Let’s review the rationale behind the relevant program steps one at a time:
3-22) Using a ladder check we are just looking at the value of the digits entered so we can send the
caller to specific steps within this vector, or vector 4. The digits entered in this case are password digits
that are for specific control of the 16 individual skills. The prompt is played first (announcement
extension stored in Vdn variable V1), and a there is an invalid announcement played at the end of the
ladder check if the digits are not correct.
23-64) The sequence in these steps is essentially identical; however the major difference is where we
are storing the value entered in the Global Variable “D”. To break this down let’s examine how steps 25-
28 actually work.
-Step 25 we first must take the current 16 digit value of Global Variable “D” and insert it into the UUI
Variable “U”. Example: D equal 3420000000000000, so the command in step 25 we make UUI Variable
“U” equal to this same value.
-Step 26 will play a prompt asking the caller what treatment they want the emergency value set to
(Prompt announcement number is stored in Vdn Variable V2)
-Step 27 will load the value of the digit entered into Position one of the UUI String. This is because UUI
variable E is defined as the first position in the digit string, and is a length of 1. So looking back at what
happened in Step 25 the current value of U would be 3420000000000000. In an example let’s say the
caller wants to return the emergency value back to normal operations, they would enter a value of 1 at
the prompt. Since variable E represents start position one the new value of the UUI string is now set to
1420000000000000. Notice the change, position one is now equal to value of 1.
-Step 28 then sends the caller to further processing at step 65, which will be explained in detail after the
next paragraph.
Now that we have examined the process in steps 25-28 the logic remains the same all the way to step
64, with the difference being which UUI Variable is used to store the single digit value. Notice that each
one of these is a length of 1, but the Start position is sequentially incremented. So Variable F would
start at position two, G would be at position three, and so forth.
65-66)Since we have now changed a value in UUI Variable “U” we must now reverse the logic so that we
make the value of Global Variable “D” equal to what is stored in “U”. Using the example given in step
27 the value of “U” is 1420000000000000, so the Set command in step 66 will make “D” equal to that
value.
69-80) First thing we want to do is make Variable “A” equal to the digit that was entered in the
Emergency Value prompt. This is followed by a ladder check to look at the value of “A”. Depending on
the value different announcements are played and the caller disconnected. Default is normal. This is
done as a courtesy to the caller so that they can check the current value, or verify the entered the
correct option.
Page
17
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Vector 4 Continued Next Page
Page
18
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Vector 4 Continued Next Page
Page
19
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Vector 4 Continued Next Page
Page
20
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Let’s review the rationale behind the relevant program steps one at a time:
(Same logic used in Vector 3, except the ladder check for the password is not necessary)
1-41) The sequence in these steps is essentially identical; however the major difference is where we are
storing the value entered in the Global Variable “D”. To break this down let’s examine how steps 2-5
actually work.
-Step 2 we first must take the current 16 digit value of Global Variable “D” and insert it into the UUI
Variable “U”. Example: D equal 3420000000000000, so the command in step 2 we make UUI Variable
“U” equal to this same value.
-Step 3 will play a prompt asking the caller what treatment they want the emergency value set to
(Prompt announcement number is stored in Vdn Variable V2)
-Step 3 will load the value of the digit entered into Position nine of the UUI String. This is because UUI
variable M is defined as the ninth position in the digit string, and is a length of 1. So looking back at
what happened in Step 2 the current value of U would be 3420000000000000. In an example let’s say
the caller wants to return the emergency value back to normal operations, they would enter a value of 1
at the prompt. Since variable M represents start position nine the new value of the UUI string is now set
to 3420000010000000. Notice the change, position nine is now equal to value of 1.
-Step 5 then sends the caller to further processing at step 42, which will be explained in detail after the
next paragraph.
Now that we have examined the process in steps 2-5 the logic remains the same all the way to step 41,
with the difference being which UUI Variable is used to store the single digit value. Notice that each one
of these is a length of 1, but the Start position is sequentially incremented. So Variable N would start at
position ten, O would be at position eleven, and so forth.
42-43)Since we have now changed a value in UUI Variable “U” we must now reverse the logic so that we
make the value of Global Variable “D” equal to what is stored in “U”. Using the example given in step
27 the value of “U” is 3420000010000000, so the Set command in step 43 will make “D” equal to that
value.
Page
21
44-57) First thing we want to do is make Variable “A” equal to the digit that was entered in the
Emergency Value prompt. This is followed by a ladder check to look at the value of “A”. Depending on
the value different announcements are played and the caller disconnected. Default is normal. This is
done as a courtesy to the caller so that they can check the current value, or verify the entered the
correct option.
Page
22
UTILIZING THE POWER OF THE UUI AND LOCAL SHARED VARIABLES
Let’s review the rationale behind the relevant program steps one at a time:
5) Step will grab the position 1 from left to right in what is stored in Vdn Variable V1. The value will then
be stored in a local variable “A”. The SEL 15 statement means to look at the entire string of numbers in
V1 and then move from right to left 15 positions. Since Variable “A” is defined as 1 digit in length it will
grab digit position 1 in the string.
6-11) We use this ladder check to see the value of variable “A”. Remember we set this value to the
priority in step 5. Depending on the value the call will be queued at a specific priority level. Value 1
equal low, 2 equal medium, 3 equal high, 4 equal top. Invalid numbers and the default treatment are
set to low priority.
13-23) These steps are used to actually queue the call up to the correct priority and then the call is
returned back to the queuing vector at the next step in line. The ladder check used in steps 6-11 is how
calls will reach the 13-23 steps.