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 Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Confusing about some Vector's Terms 1

Status
Not open for further replies.

sanniadnan

Technical User
Oct 30, 2019
31
BD
Hi guys, hope you all are doing great.
I'm new at vector. Need to change the IVR tree so trying to understand few terms from existing vector.

Here is the current one which is working fine:

01 wait-time 2 secs hearing ringback
02 goto step 19 if ani in table 1
03 goto step 19 if ani in table 2
04 goto step 19 if ani in table 3
05 set L = L ADD 1
06 collect 1 digits after announcement V1 for none
07 goto step 10 if digits = 1
08 goto step 17 if L >= 3
09 goto step 5 if digits <> 1
10 queue-to skill 1st pri m
11 announcement V2
12 wait-time 10 secs hearing music
13 announcement V3
14 wait-time 10 secs hearing music
15 goto step 13 if unconditionally
16 stop
17 disconnect after announcement none
18 stop
19 queue-to skill 2nd pri t
20 goto step 11 if unconditionally
21 stop


My questions are following:
1. 06 collect 1 digits after announcement V1 for none
- Where does "announcement V1" come from? Isn't it "announcement XXXX"? Where XXXX is extension of the announcement file.​
2. Line 13,14,15
Is it creating indefinite loop?​
3. 10 queue-to skill 1st pri m
what does it mean "skill 1st"? Hunt-Group? Then where I should map skill to hunt-group?​

Thanks.
 
V1 through V9 are Variables. The values are assigned on the VDN, page 3.
Skill 1st is also a variable that is assigned on the VDN. A skill is a type of hunt group.

Lines 13, 14, and 15 technically create an infinite loop. However, since the call has already been placed in queue (step 10) then the call waits until an agent becomes available.
I personally don't like infinite loops, but they do work to keep a call in queue until answered by an agent or the caller hands up.

I hope that helps
 
Thank you so much @ZeroZeroOne for your reply. It cleared my all confusions.

I want to do following things:
1. If incoming numbers mentioned in table 1,2,3 it will queue to Skill 2nd without playing any IVR.
2. If caller press 1 after playing greeting IVR (Press 1 for A and Press 2 for B), it'll queue to skill 1st
3. If caller press 2 after playing greeting IVR, it'll queue to skill 3rd.
4. Other than press 1 and 2, if caller press any other number, it will play the greeting once more.

I've written the vector as below:

01 wait-time 2 secs hearing ringback
02 goto step 30 if ani in table 1
03 goto step 30 if ani in table 2
04 goto step 30 if ani in table 3
05 set L = L ADD 1
06 collect 1 digits after announcement V4 for none
07 goto step 18 if digits = 1
08 goto step 25 if digits = 2
09 goto step 28 if L >= 2
10 goto step 5 if digits = 3
11 goto step 5 if digits = 4
12 goto step 5 if digits = 5
13 goto step 5 if digits = 6
14 goto step 5 if digits = 7
15 goto step 5 if digits = 8
16 goto step 5 if digits = 9
17 goto step 5 if digits = 0
18 queue-to skill 1st pri m
19 announcement V2
20 wait-time 10 secs hearing music
21 announcement V3
22 wait-time 10 secs hearing music
23 goto step 21 if unconditionally
24 stop
25 queue-to skill 3rd pri m
26 goto step 19 if unconditionally
27 stop
28 disconnect after announcement none
29 stop
30 queue-to skill 2nd pri t
31 goto step 19 if unconditionally
32 stop


Is there any better way to achieve the same thing? How can I write line 10 to 17 in single line?

Thanks.
 
I am no vector expert but if you don't have a match in 7,8 & 9 then

10 goto step 5 if unconditional

would seem logical
 
You could use the following to replace steps 10 thru 17:
goto step 5 if digits > 2
or
goto step 5 if digits = ?

Or follow what bignose said and just put goto step 5 if unconditionally
 
Yes, a single line of "goto step 5 if unconditionally would solve that. Any entry other than "1" or "2" would result in the menu repeating. Pressing "*" or "#" would also repeat the menu.

One thing to keep in mind is what happens when the caller selects nothing. In the current menu, "nothing" doesn't match any of the digits so the vector continues to step 18 and queues the call. That may be a desired action but I suspect you would prefer to have "nothing" counted like the other invalid entries.

Here's an alternative way to program. This isn't "correct", it's just different to help you see how calls can flow.

Code:
01 wait-time 2 secs hearing ringback
02 goto step 19 if ani in table 1
03 goto step 19 if ani in table 2
04 goto step 19 if ani in table 3
05 set L = L ADD 1
06 collect 1 digits after announcement V4 for none
07 goto step 13 if digits = 1
08 goto step 16 if digits = 2
09 goto step 5 if [highlight #EF2929]L <= 2[/highlight]
10 # Menu Timeout 
11 disconnect after announcement none
12 stop
13 # Option 1
14 queue to skill 1st pri m
15 goto step 22 if unconditionally
16 # Option 2
17 queue to skill 3rd pri m
18 goto step 22 if unconditionally
19 # Priority Queue (CLID in tables)
20 queue to skill 2nd pri t
21 # -------------------------------------------
22 # Queue Behavior
23 announcement V2
24 wait-time 10 secs hearing music
25 announcement V3
26 wait-time 10 secs hearing music
27 goto step 25 if unconditionally
28 stop

Notice I switched your counter L so that the menu repeats if L is less than or equal to 2. It still loops the menu a couple of times and then proceeds to the next step (Menu Timeout) once the counter equals 3. You could have an unconditional loop to step 5 with a breakout if L >= 2. Either way works and just depends on how you want to read it.

It's a habit if mine, but I prefer to step down the vector instead of up for referencing shared commands, such as the queue behavior, which I've moved to the bottom. There's nothing wrong with one way or another and I'm sure you'll develop you own style. I also use lots of comments "#" to help with the readability of the vector. They aren't processed but they do help when you're staring at lines of code.

I would add a few other touches, such as a disconnect announcement to be a little more polite than just dropping the call. You can also add lines to check if any Agents are staffed in the different queues to keep callers from being stuck in queue with no chance of the call being answered.


 
Thanks bignose21 and Sean655 for your suggestions. It makes more sense. Thanks.
Thanks again ZeroZeroOne, I didn't know we can use the comments. It'll definitely help to organize the code. Thanks for your time to rewrite the code in simple way. Can you suggest some links/pbf to study further more?
 
I would start with the Avaya Documentation: You'll find example vectors along with a lot of definitions.

Then I would set up some VDNs and Vectors just for you to play around and figure out how things work. There are examples in this forum that you can look at, too. Those can be a little hard to find but they are free.

If you want to get serious and have a company willing to pay, you can take a course from Avaya on Call Center Elite.
 
in youtube there is quite a bit on vectors as well that you may find helpful
 
Thanks ZeroZeroOne and Bignose21 for your kind suggestions.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top