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!

Scripting: Transfer to other skillset, or give IVR treatment.

Status
Not open for further replies.

Benighted

Technical User
May 2, 2006
43
SE
I'm still a newbie when it comes to scripting so bear with me :)

What I want to do is the following :
When a call comes in on skillset_A, and noone is logged on I want to transfer the call to skillset_B. If noone is logged on to skillset_B, I want to give a message.

Script looks like this :

/* Title: CDN 6497 Test */

/* Ko Script*/

IF OUT OF SERVICE Skillset_A THEN
IF NOT OUT OF SERVICE Skillset_B THEN
QUEUE TO SKILLSET Skillset_B
WAIT 2
END IF
END IF

WAIT 10

IF OUT OF SERVICE Skillset_B THEN
GIVE IVR 6121 WITH TREATMENT 1052
WAIT 2

END IF

/* Ko Script */


QUEUE TO SKILLSET Skillset_A
WAIT 2

GIVE RAN first_ran
GIVE MUSIC music_route

SECTION WaitLoop
IF NOT OUT OF SERVICE Brann THEN
DISCONNECT
END IF
WAIT 28
IF NOT QUEUED THEN
IF OUT OF SERVICE Skillset_A THEN
GIVE RAN closed_ran
GIVE SILENCE
WAIT 2
DISCONNECT
ELSE
WAIT 2

END IF

END IF

GIVE RAN second_ran

EXECUTE WaitLoop
--------------------------------

The following works :
- when skillset A is out of service the call is transferred to skillset_B with skillset_A showing in the display on the terminal
- when skillset_A has a queue the call get's music until agent is available on skillset_A
- when both skillset_A and B are out of service you get the correct message

The following is not working as expected :
- when skillset_A is in service and has an available agent, uou can see skillset_A in the display as you should. But if you look at realtime displays it shows that the agent is handling skillset_B. This also happens if I set the agent on standby on skillset_B??
------

There's probably a simpler way to do it. As I said, I'm just a newbie. There's probably to much code in the script, since this is an existing script that I have edited :)

All helps is much appreciated! Thanks.
 
How about:

IF NOT OUT OF SERVICE skillset_A THEN
QUEUE TO SKILLSET skillset_A
WAIT 2
ELSE
IF NOT OUT OF SERVICE skillset_B THEN
QUEUE TO SKILSET skillset_B
WAIT 2
ELSE
GIVE IVR 6121 WITH TREATMENT 1052
DISCONNECT /* end call */
END IF
END IF

If skillset_A is open, call is queued to skillset_A only. If skillset_A is closed then skillset_B is checked. If skillset_B is open the call is queued to skillset_B only. If both skillsets are closed then the GIVE IVR command is executed. If the GIVE IVR command is a closed message, you need to put a DISCONNECT command after it (WAIT 2 is not required), or else the call will continue on in your script.
 
How about...

IF NOT OUT OF SERVICE Skillset_A THEN
QUEUE TO Skillset_A
WAIT 2
ELSE
IF NOT OUT OF SERVICE Skillset_B THEN
QUEUE TO Skillset_B
WAIT 2
ELSE
EXECUTE message_section
END IF
END IF

SECTION loop_section

/* USUAL LOOP SECTION CHECKS HERE */

SECTION message_section

/* Play message */

You'll need to be careful if you do IF NOT QUEUED checks against your skillsets as you'll need to only check the ones that are purposely queued against.

One way around this is to use a call variable (cv_skillset) like this...

IF NOT OUT OF SERVICE Skillset_A THEN
ASSIGN Skillset_A TO cv_skillset
ELSE
IF NOT OUT OF SERVICE Skillset_B THEN
ASSIGN Skillset_B TO cv_skillset
ELSE
EXECUTE message_section
END IF
END IF

QUEUE TO cv_skillset
WAIT 2

SECTION loop_section

/* USUAL LOOP SECTION CHECKS HERE */

SECTION message_section

/* Play message */

Now you do your checks against cv_skillset being out of service or not in the LOOP section
 
Thanks a lot for these godd suggestions. I will try them out, and come back :)
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top