You are on page 1of 62

Virtual Hold for UCCX

Installation and Configuration Guide

Document Information Virtual Hold for UCCX, Installation and Configuration Guide Publication Date: September 4, 2013

Before using this document, ensure that you have the latest version. For customers and partners, visit our Online Document Library at http://odl.virtualhold.com. For VHT employees, visit Salesforce at https://login.salesforce.com. It is recommended that you subscribe to frequently used documents to receive notifications about changes to those documents. Download the Virtual Hold Software from the VHT Download Center at https:// virtualhold.flexnetoperations.com. Copyright Information Printed in the United States of America. Except as permitted under the Copyright Act of 1976, no part of this publication may be reproduced, distributed, e-mailed, or displayed in any form or by any means, or stored in a database, retrieval system, or other media without the prior express written permission of Virtual Hold Technology, LLC. Disclaimers This document is the property of Virtual Hold Technology, LLC. Its contents are proprietary and confidential. Licensure Virtual Hold is a licensed software solution. The use of each Virtual Hold product requires permission, and a valid license from Virtual Hold Technology, LLC.

Contents
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Business Perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Solution Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Inbound Call Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Outbound Call Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Design Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Inbound Callflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Chose Hold Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Abandon in Queue Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Chose Callback Scenario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Outbound Callflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Requirements (Components, Software, Licenses, Versions) . . . . . . . . . . . . . 16 Known Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16


UCCX Engine Restarts Cause Incorrect Call Fates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Name-Recording Feature Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Installation and Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18


Prepare the Cisco UCCX Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Deploy Custom Java .jar Files while Deploying UCCX Scripts . . . . . . . . . . . . 18
VHT .jar Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Add a New .jar File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upload the Java .jar File to the UCCX Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Assign Custom Java .jar Files to the Classpath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Restart Cisco Unified CCX Engine and Administration, and Network Services. . . . . . . . . . . 18 18 18 19 19

Import VHT Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20


Create VHT Directory from Script Management Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download Script Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upload Scripts to VHT Folder from Script Management Screen . . . . . . . . . . . . . . . . . . . . . . Use the Custom UCCX Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inbound Callflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outbound Callflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configure the Outbound Callflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 20 21 21 21 23 24

Deploy Core Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27


Install Core Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Configure Core Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Deploy VXML Interaction Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32


Installing Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installing or Updating VXML Plug-ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Retrieving Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding Source Files into Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Updating the VXML Interaction Server in Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Extension Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Revert to a Previous Version of the Extension Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Create the VHT_VIS.war File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deploy the VHT_VIS.war File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring the VXML Interaction Server (toolkit.properties) . . . . . . . . . . . . . . . . . . . . . . . . Optional: Change the Location of the toolkit.properties File . . . . . . . . . . . . . . . . . . . . . . . . . 33 33 33 34 34 34 35 35 35 35 36 36 37 37

Brands and Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38


Create and Upload a Voice Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Add a Language to a Workflow Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Create Brands and Assign Languages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Build and Deploy the VHT_VIS.war File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Change the Log Level for VXML Interaction Server on Apache Tomcat. . . . . . . . . . . . . . . . Change the Log Level Temporarily . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Change the Log Level Permanently. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 40 41 43 44 44 44

Deploy Outbound Contact Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45


Install Outbound Contact Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 How to Change the UCCX Specific Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
UCCX Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Troubleshoot UCCX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Cisco Unified CCX Real-Time Monitoring Tool (RTMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Download the RTMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Start the RTMT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View Logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 52 53 53

Writing/Generating Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Annotated Logging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Delete an Old .jar File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54


Remove the .jar File from the Classpath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Assign a .jar File to a Class Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Delete the .jar File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

High-Level Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Virtual Hold for UCCX Installation and Configuration Guide

Overview

Overview
This document provides guidance for the VHT-Cisco Unified Contact Center Express (UCCX) integration process. In particular, it covers the following topics: A typical architecture for this solution. Advice for designing a solution. A typical callflow for this solution. Instructions for preparing your environment.

Benefits
The VHT-UCCX integration helps VHT provide its solution to departments, branches and small- to medium-size contact centers planning to deploy entry-level or mid-market contact center solutions. This easily deployed solution enables companies using UCCX to leverage Virtual Holds PTK Queue Abstraction feature, which means this integration is not dependent upon CTI interfaces. This Virtual Hold integration helps transform the customer experience via: Conversation Bridge (multichannel callback platform) Intelligent Callback (for mobile app users) ASAP Callback Scheduled Callbacks Proactive Notification Queue Watch Queue Info

Business Perspective
The VHT-UCCX integration leverages a number of UCCX platform capabilities, including: VoiceXML HTML Web integration Custom Java extensions The VHT-UCCX integration requires the Unified CCX Premium, which adds full Unified IP IVR support (including database integration), Voice eXtensible Markup Language (VoiceXML), HTML Web integration, custom Java extensions and e-Notification services such as e-mail. The outbound feature is also bundled with the Premium package. UCCX can be implemented using two deployment models: the Single-Server Non-High Availability Deployment Model and the Two-Server High Availability Deployment Model. However, the VHT-UCCX integration has only been designed and validated with the single-server model. UCCX supports up to 400 agents and 300 Unified ports. A Unified IP IVR port refers to a premium selfservice port for the Premium package. See UCCX Platforms for more information about all available UCCX packages.

Virtual Hold for UCCX Installation and Configuration Guide

Overview

Solution Architecture
Cisco Unified Communications Manager (UCM) sends a route request to UCCX when a dialed number associated with a CTI Route Point is called. UCCX software selects an available CTI Port with which the dialed number is associated from the CTI Port Group. UCCX returns the CTI Port extension to UCM, which sends a ring message to UCCX to set up a call to that extension (CTI Port). The UCCX server begins executing the script associated with that triggers application when UCCX receives the ring message. The first step in a script is typically an Accept step, which will answer the call by sending a message to UCM. This establishes an RTP stream between the selected CTI Port and the Voice Gateway (VG) port (or calling IP Phone). The application can then prompt callers for input and provide the caller selfservice. When either the caller hangs up or the application executes a Terminate step, UCM tears down the call.
Figure 1: Cisco Unified CCX Integration Architecture

Inbound Call Handling


Virtual Hold treatment is offered to callers through the Virtual Hold VXML Interaction Server (VIS) when Estimated Wait Time (EWT) is over a configured threshold. The VIS is a Java application which, when executed, generates VoiceXML, which delivers the Virtual Hold Offer treatment through voice self-service.
7

Virtual Hold for UCCX Installation and Configuration Guide

Overview

Control is returned to the UCCX application, where queuing treatment is provided, if the caller elects to hold. The callers Virtual Hold context is saved before disconnecting the call if the caller chooses a callback.

Outbound Call Handling


A request is issued through the Virtual Hold Outbound Contact Client (OCC) to UCCX when the callback is ready to be made. A UCCX HTTP Trigger is employed to pass the request to a Virtual Hold UCCX application provisioned for this purpose. The application places the outbound call, which is transferred to a Telephony Trigger with an associated Virtual Hold callback treatment UCCX application upon successful answer disposition. The callback treatment is again provided through the VXML Interaction Server. Control is returned to the UCCX application where queuing treatment is provided if the caller elects to take the callback. The priority of the call is increased to ensure the call is answered by the next available agent.

Virtual Hold for UCCX Installation and Configuration Guide

Design Overview

Design Overview
UCCX leverages the custom Java wrappers to integrate with Virtual Hold via the Platform ToolKit Web service. This Web service provides an interface to track the calls that enter and leave the queue without having to depend on a CTI connection.

Inbound Callflow
This section outlines the various scenarios that can occur during the inbound callflow.

Chose Hold Scenario


The following steps describe a Chose Hold Scenario: A call arrives on the Cisco Voice Gateway (VG). A route request is generated to the Cisco Unified Call Manager (UCM). The route request triggers the application in Cisco UCCX. UCCX selects an available CTI port, and then returns the extension to the UCM. UCM sends a ring message to UCCX, which sets up a call with the selected CTI port. UCCX server begins executing the script associated with the trigger application. The call is accepted by UCCX, and an RTP stream is established. After self-service is provided to the caller, the Virtual Hold subscript is invoked, which in turn, will invoke the Virtual Hold VXML Interaction Server (VIS). VIS checks for the queue conditions in Virtual Hold by invoking the Platform ToolKit (PTK) method GetSegmentState, which, in turn, sends the message to VHT Queue Manager. Queue Manager responds with EWT and whether the call should be offered Virtual Hold treatment. If treatment should be offered: - VIS requests to create an interaction by invoking PTK method CreateInteraction. An Interaction ID is returned to VIS, and then VIS provides Virtual Hold treatment. - Upon the callers request to remain on Hold, VIS invokes PTK method InteractionSendToQueue so Queue Manager can expect the call to be queued. - VIS returns control to UCCX with Caller_input 1. - UCCX invokes the custom Java plug-in (provided by Virtual Hold) to notify Queue Manager that the call is queued to a skill and to include it in the EWT calculation. - UCCX queues the call to a skill and provides a queue treatment. - When an agent becomes available, UCCX sends a message to UCM, which will connect the caller with that agent.
9

Virtual Hold for UCCX Installation and Configuration Guide

Design Overview

UCCX invokes the custom Java plug-in (provided by Virtual Hold) to notify Queue Manager that the call is de-queued from the skill, and it can clean up the call with the appropriate final fate.

Otherwise, control of the call is returned to UCCX so it can queue the skill appropriately.

Figure 2: Cisco Unified CCX Chose Hold Scenario

Abandon in Queue Scenario


The following steps describe an Abandon in Queue Scenario: A call arrives on the Cisco Voice Gateway (VG). A route request is generated to the Cisco Unified Call Manager (UCM). The route request triggers the application in Cisco UCCX. UCCX selects an available CTI port, and then returns the extension to the UCM. UCM sends a ring message to UCCX, which sets up a call with the selected CTI port.
10

Virtual Hold for UCCX Installation and Configuration Guide

Design Overview

UCCX server begins executing the script associated with the trigger application. The call is accepted by UCCX, and an RTP stream is established. After self-service is provided to the caller, Virtual Hold VXML Interaction Server (VIS) is invoked. VIS checks for the queue conditions in Virtual Hold by invoking the Platform ToolKit (PTK) method getSegmentState, which, in turn, sends the message to VHT Queue Manager. Queue Manager responds with EWT and whether the call should be offered Virtual Hold treatment. If treatment should be offered: - VIS requests to create an interaction by invoking PTK method createInteraction. An Interaction ID is returned to VIS, and then VIS provides Virtual Hold treatment. - Upon the callers request to remain on Hold, VIS invokes PTK method InteractionSendToQueue so Queue Manager expects the call to be queued. - VIS returns control to UCCX with Caller_input 1. - UCCX invokes the custom Java plug-in (provided by Virtual Hold) to notify Queue Manager that the call is queued to a skill and to include it in the EWT calculation. - UCCX queues the call to a skill and provides a queue treatment. The Caller abandons in queue.

UCCX invokes the custom Java plug-in (provided by Virtual Hold) to notify Queue manager that the call is de-queued from the skill with reason of Abandon, so Queue Manager will clean up the call with the appropriate final fate.

Otherwise, control of the call is returned to UCCX so it can queue the skill appropriately.

11

Virtual Hold for UCCX Installation and Configuration Guide

Design Overview

Figure 3: Cisco Unified CCX Abandon in Queue Scenario

Chose Callback Scenario


The following steps describe a Chose Callback Scenario: A call arrives on the Cisco Voice Gateway (VG). A route request is generated to the Cisco Unified Call Manager (UCM). The route request triggers the application in Cisco UCCX. UCCX selects an available CTI port, and then returns the extension to the UCM. UCM sends a ring message to UCCX, which sets up a call with the selected CTI port. UCCX server begins executing the script associated with the trigger application. The call is accepted by UCCX, and an RTP stream is established. After self-service is provided to the caller, Virtual Hold VXML Interaction Server (VIS) is invoked. VIS checks for the queue conditions in Virtual Hold by invoking the Platform ToolKit (PTK) method getSegmentState, which, in turn, sends the message to VHT Queue Manager.
12

Virtual Hold for UCCX Installation and Configuration Guide

Design Overview

Queue Manager responds with EWT and whether the call should be offered Virtual Hold treatment. If treatment should be offered: - VIS requests to create an interaction by invoking PTK method createInteraction.

An Interaction ID is returned to VIS, and then VIS provides Virtual Hold treatment. - Upon the callers request for a Callback, VIS collects the callback information and invokes PTK method InteractionRequestContact so Queue Manager can create a Callback. - VIS returns control to UCCX with Caller_input 0, and then UCCX releases the call.

Figure 4: Cisco Unified CCX Callback Scenario

13

Virtual Hold for UCCX Installation and Configuration Guide

Design Overview

Outbound Callflow
The following steps describe an Outbound Sequence Scenario: Queue Manager initiates a callback request to Outbound Contact Client (OCC), which sends an HTTP POST to UCCX. UCCX extracts the callers contact information from the HTTP POST and places the call through the Voice Gateway. If unsuccessful, then UCCX sends an HTTP Response to OCC; in turn, OCC sends the Callback Response to Queue Manager, and then the call is rescheduled. If successful, the call is redirected to a telephony trigger. Note: Redirecting the call will force UCCX to consider the call as an inbound call, which allows UCCX to pass the Callback user data to the Agent Desktop. The telephony trigger executes UCCX script to invoke VIS, which uses the PTK method GetInteractionData, to get all interaction-related data. VIS receives the interaction-related data and provides outbound treatment to the caller. If the Caller decides to speak with an Agent, VIS invokes PTK method InteractionSendToQueue to notify Queue Manager to change the state appropriately and expect the call to be queued. VIS returns the Caller Input of 1 to UCCX, which increases the calls priority. UCCX invokes the custom Java plug-in (provided by Virtual Hold) to notify Queue Manager that the call is queued to a skill. UCCX queues the call to a skill and provides a queue treatment. When an agent becomes available, UCCX sends a message to UCM, which will connect the caller with that agent. UCCX invokes the custom Java plug-in (provided by Virtual Hold) to notify Queue Manager that the call is de-queued from the skill, and it can clean up the call with the appropriate final fate. An RTP stream is established between the Agent and the Caller.

14

Virtual Hold for UCCX Installation and Configuration Guide

Design Overview

Figure 5: Unified CCX Outbound Sequence Diagram

15

Virtual Hold for UCCX Installation and Configuration Guide

Design Overview

Requirements (Components, Software, Licenses, Versions)


This integration requires the following: Cisco Unified CCX Premium package 8.5(1) SU4 A VoiceXML browser, which we leverage for use with VXML Interaction Server (VIS). HTML Web Integrationused with Web application integration. HTTP-type interface is used with VHTs Outbound Callback integration.

Virtual Hold version 7.5 OCC version 1.2 PTK version 4.0 Microsoft Internet Information Services (IIS) VIS version 4.2 R2, which requires the following: Java Runtime Environment (JRE) and Java Development Kit (JDK) Apache Tomcat version 6.0 or 7.0 File Extraction Software Custom version 1 .jar files (VHT_PTKWrapper_v1_0.jar, VHT_OCCWrapper_v1_0.jar, VHT_Logger_v1_0.jar)

Microsoft .NET Framework version 2.0 or higher

Known Limitations
The following features are not currently supported in this solution: Answering Machine Detection Callback Double Check (CBDC) with rescheduled callbacks Dial Department Dial Extension IVR Extension Groups Line Status in Queue Watch Proactive Notification Notify Rapport

Prompt Recorder

UCCX Engine Restarts Cause Incorrect Call Fates


Virtual Hold uses the Identifier from Get Contact Info in UCCX as the External Tracking Id, which Virtual Hold associates to interactions. This Identifier is reset to 1 and increments automatically if the UCCX Engine is restarted. If an already existing interaction in Queue Manager has the same Identifier as an active call in UCCX, the attempt to associate the interaction to the duplicate Identifier will fail, and the call will not fate correctly if queued to a holding queue. There is little to no likelihood of this scenario occurring as it would equate to taking down your call center.
16

Virtual Hold for UCCX Installation and Configuration Guide

Design Overview

Name-Recording Feature Support


This feature is not currently supported due to Cisco defect CSCue35595. Therefore, it can be turned off so the system will continue to function as normal. Cisco has informed VHT that this defect will not be fixed in any release of UCCX 8.0. However, this defect is fixed in versions 8.5.1 SU4 ES1 and 9.0.2 SU0 ES2. These versions are Engineering Specials, so a TAC case must be opened with Cisco to gain access to these releases. You must reference defect CSCue35595 as the fix for which you need the Engineering Special. Cisco also indicated that this defect will be fixed in the first major release of 10.0.X, officially.

17

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Installation and Configuration


This section describes the process necessary for a successful VHT/UCCX deployment.

Prepare the Cisco UCCX Environment


The following are required for a successful VHT-UCCX configuration: Inbound DN-based trigger and applicationthis should already exist in the UCCX environment. Outbound HTTP triggerthis will need to be created. Outbound DN-based triggerthis will need to be created as it is used exclusively to redirect outbound Virtual Hold calls after the callback is successful so the user data will be displayed on the Agent Desktop. You will also need to upload custom Java code and custom VHT scripts, which are provided by Virtual Hold.

Deploy Custom Java .jar Files while Deploying UCCX Scripts


Custom Java .jar files are required before uploading the VHT UCCX scripts. Virtual Hold will provide custom Java .jar files, which you will need to deploy in Cisco Unified CCX Administration.

VHT .jar Files


All VHT .jar files are formatted as follows: VHT_<JavaClassname>_v<Major version number of .jar file>_<Minor version number of .jar file> (e.g., VHT_OCCWrapper_v1_0.jar). In the Custom Classes Configuration, there should be 3 VHT *.jar files in the Selected Classpath Entries section: VHT_PTKWrapper_v1_X.jarhandles communication to VHT Platform ToolKit for processing calls. VHT_OCCWrapper_v1_X.jartells the Outbound Contact Client how to mark the outbound call in Queue Manager; e.g., abandoned, etc. VHT_Logger_v1_X.jarwrites logs to the UCCX stdout.log file.

Add a New .jar File


The following details how to upload a Java .jar file to the UCCX server; assign custom .jar files to a classpath; and restart the Cisco Unified CCX Engine and Administration, as well as network services.

Upload the Java .jar File to the UCCX Server


Follow these steps to upload Java .jar files to the UCCX server: 1. Log in to Cisco Unified CCX Administration. 2. Select Cisco Unified CCX Administration from the Navigation drop-down. 3. Navigate to System > Custom File Configuration.
18

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

4. Click Upload Custom Jar Files, which opens the Document Management page. 5. Click Upload New documents, which opens the Upload Document pop-up window. 6. Browse to location of the .jar file you want to upload. The file upload pop-up window will open. a. Select the .jar file, and then click Open. This will return you to the Upload Document popup window. 7. Click Upload. This adds the file to the classpath. 8. Click Return to Document Management.

Assign Custom Java .jar Files to the Classpath


After you have uploaded the Java .jar file to the UCCX server, assign it to a classpath: 9. Navigate to System > Custom File Configuration, which takes you to the Custom Classes Configuration page. 10. Move the file(s) you just uploaded from the Available Classpath Entries list to the Selected Classpath Entries list. Select by highlighting the file, and then move it by clicking the right arrow. See the figure below for an example.
Figure 6: UCCX Administration Custom Classes Configuration

11. Click Update.

Restart Cisco Unified CCX Engine and Administration, and Network Services
After assigning the Java .jar file to a classpath, you must restart the Cisco Unified CCX Engine and Administration, as well as network services. Perform the following to complete this process: 12. Select Cisco Unified CCX Serviceability from the Navigation drop-down in the upper-right corner of the page, and then click Go. The Cisco Unified CCX Serviceability page will open. 13. Navigate to Tools > Control Center - Network Services. 14. Under the System Services section, select Cisco Unified CCX Engine, and then click Restart. The status section below Restart will indicate the service is restarting. When the status indicates Successfully updated the status of all services, proceed to the next step. 15. Under the Admin Services section, select Cisco Unified CCX Administration.

19

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

16. Click Restart, and then click OK on the pop-up window. The status section below Restart will indicate the service is restarting. When the status indicates Successfully updated the status of all services, proceed to the next step. 17. Restart the Cisco Unified CCX Editor if you were logged in to it during the preceding steps. You can now use the custom .jar in the Cisco Unified CCX Editor steps. Note: To delete . jar files, see the Appendix.

Import VHT Scripts


Through the UCCX Administration Web interface, upload VHT scripts to a folder created on the root directory for UCCX scripts called VHT. Note: It is recommended that you create a new folder, and then upload your scripts there. See HighLevel Diagrams in the Appendix for high-level flow of these scripts and how these scripts invoke the custom .jar files.

Create VHT Directory from Script Management Screen


Note: At this time, it is not recommended to use the Cisco Unified CCX Editor to create a new folder. Problems have resulted when the Cisco Unified CCX Editor is used. 1. Go to: Applications > Script Management. 2. Click Create New Folder. In the Create New Folder window, enter a Folder Name as VHT, and then click Create. Folder successfully created will be displayed in the Status porion of the window. 3. Close the Create New Folder window, and then refresh the Script Management screen to have the new folder appear.

Download Script Files


1. Import the .zip file containing the following UUCX scripts from the VHT Download Center at https://virtualhold.flexnetoperations.com: vht_offer.aef vht_callback.aef vht_ib_treatment.aef vht_ob_treatment.aef vht_queued.aef vht_sub_get_user_data_from_call.aef vht_sub_set_user_data_on_call.aef vht_sub_interaction_queued_by_identifier.aef vht_sub_interaction_dequeued_by_identifier.aef

20

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

vht_sub_get_segment_state.aef vht_sub_call_disposition.aef

2. Extract these files to a local directory.

Upload Scripts to VHT Folder from Script Management Screen


1. Upload New Scripts from extracted folder to the newly created folder, VHT. 2. Browse to the script, and then click Upload. Note: Repeat for each script file. 3. Refresh the Script Management screen to see the scripts you just uploaded.

Use the Custom UCCX Scripts


This section provides details regarding the Inbound and Outbound Callflows. Instruction is provided for calling the VHT Offer script on the Inbound side. Meanwhile, instruction is provided regarding the creation and configuration of UCCX applications and triggers. See High-Level Diagrams for depictions of the Inbound and Outbound Callflows.

Inbound Callflow
Note: An existing call center using Cisco Unified CCX likely already has an inbound trigger and application created. Therefore, it should not be necessary to create new ones. You will only need to create outbound triggers and applications. Call the VHT Offer Script The main UCCX script needs to call the subflow step into the VHT offer script, vht_offer.aef. 1. Open the Cisco Unified CCX Editor, and then open the Open Script window via the following: a. File > Open. b. Select Script Repository from the navigation pane at the left, and navigate to your inbound script. Click Open to load the script into the editor. 2. In the navigation tree, expand General, and then drag the Call Subflow to where you want to call VHT_Offer script. See the figure below for an example.

21

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Figure 7: Inbound Script/Call Subflow

3. Right-click on the Call Subflow, and then select Properties. The Call Subflow properties pop-up window will open to the General tab. 4. Click the Subflow Name drop-down arrow. Select SCRIPT[VHT/vht_offer.aef] from the list. This is where you target another script. Make sure Disable Interruptions is set to No.
Figure 8: Call Subflow General Tab

5. Add Input variables to the Inbound Script you imported from the Download Center: a. Open the New Variable dialog box by clicking the New Variable icon at the top-left corner of the Variable pane of the UCCX Editor window to open the New Variable dialog box. b. Provide a Name. c. Provide/Select a Value. d. Define the variable Type (i.e., String). e. Select Parameter. f. Click OK.

22

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Figure 9: New Variable Dialog Box

6. On the Input Mappings tab, click Add to map the following input variables with appropriate values to the vht_offer.aef script exactly as follows; otherwise, they will not map correctly: tenant visUrl csq ptkUrl segment(optional) If this is not passed in, the DNIS will serve as a segment.

Figure 10: Call Subflow Input Mappings Tab

Outbound Callflow
This section provides details for establishing an Outbound Callflow. When it is time to make a callback, the OCC issues an HTTP Request to the HTTP Trigger with the following variables: tenant interactionId csq visUrl ptkUrl callFlowType

23

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Get User Data to the Agent Desktop Create Extended ECC Variable: 1. In UCCX Editor, go to Settings > Expanded Call Variables. 2. Click New Variable arrow, which opens the Edit Expanded Call Variable dialog (see the figure below): a. Enter Name as vhtTreatmentVars b. Select Array from the Type drop-down. c. Enter Description (optional)
Figure 11: Expanded Call Variable

In order to pass user data to the Agent Desktop, it is necessary to use a Call Redirect, in lieu of a subflow, to pass data collected by the Outbound Contact Client (OCC).

Configure the Outbound Callflow


In order to configure the outbound callflow, the following steps are necessary: Create two applicationsone for the Cisco HTTP trigger and one for the Unified CM Telephony Trigger Create two triggersone HTTP trigger and one DN-based trigger. Create Application for HTTP Trigger 1. Log in to Cisco Unified CCX Administration. 2. Go to Applications > Application Management. 3. Click Add New to open the Add A New Application screen. 4. Select Cisco Script Application from the Application Type drop-down. 5. Click Next. The Cisco Script Application screen will open. a. Enter Name (e.g., VHT_HTTP). Note: This name will be used in the configuration of the Outbound Trigger. b. ID is auto-created. c. Enter Maximum Number of Sessions (typically, this is equivalent to 1/3 of the total number of licensed VHT ports).
24

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

d. Select Script from the drop-down. Select SCRIPT[VHT/vht_callback.aef] Note: A script must be associated to this application in order to add it. Otherwise, a dialog pop-up will instruct you to Please select a script name. Scripts should have been uploaded prior to creating this application for this reason.

e. Enter a Description by clicking in the fieldit will populate automatically. f. Select Yes to enable.

g. Leave Default Script as System Default. 6. Click Add. Create Trigger for New Application 1. Once the new application has been added, an Add new trigger link will appear on the left side of the Cisco Script Application screen. If you already returned to the Application Management screen, you can click the Application name to go to the Cisco Script Application screen. 2. Click Add new trigger. The Add a New Trigger pop-up window will be displayed. 3. Select Cisco HTTP Trigger, and then click Next. This opens the HTTP Trigger Configuration pop-up window. 4. Enter the URL as /vhtoutbound. 5. Select your appropriate regional Language; e.g., English [en_AU]. 6. The Application Name will already be populated with the name of the Application. 7. Enter the Maximum Number of Sessions. 8. Enter the Idle Timeout (in ms). Change the default to 2000. 9. Select Yes to enable. 10. Click Add. An HTTP Trigger has now been created. Create Application for Unified CM Telephony Trigger 1. Log in to Cisco Unified CCX Administration. 2. Go to Applications > Application Management. 3. Click Add New to open the Add A New Application screen. 4. Select Cisco Script Application from the Application Type drop-down. 5. Click Next. The Cisco Script Application screen will open. a. Enter Name. Note: This name will be used in the Outbound script that will be created later. b. ID is auto-created. c. Enter Maximum Number of Sessions. d. Select Script from the drop-down. Select SCRIPT[VHT/vht_ob_treatment.aef]
25

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

e. Enter a Description. f. Select Yes to Enable.

g. Select a Default Script from the drop-down. 6. Click Add. Create DN-Based Trigger for New Application 1. Once the new application has been added, a new trigger link will appear on the left side of the Cisco Script Application screen. If you already returned to the Application Management screen, you can click the application name to go to the Cisco Script Application screen. 2. Click Add new trigger on the left side of the screen. The Add a New Trigger screen will open. 3. Select Unified CM Telephony Trigger as the Trigger Type, and then click Next. The Cisco Unified CM Telephony Trigger Configuration pop-up will open. 4. Enter the Directory Number of any Route Point that is available/not being used by any other Application or Trigger. Note: Save this value for later with when configuring the OCC. 5. Select your appropriate regional Language; e.g., English [en_AU]. 6. The Application Name will already be populated with the Cisco Script Application Name. 7. Enter a unique Device Name. 8. Enter the Description. 9. Select the Call Control Group from the drop-down list. Note: Remember the value that you selected in this step for later use; e.g., Call Control Group 1(3). The 3 is the number you would need to remember (see the figure below).
Figure 12: DN-Based Trigger Configuration - Call Control Group

26

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

10. Click Add. A link for the newly created Trigger will appear on the left side of the Cisco Script Application screen. Set the callControlGroup Variable 1. Go to the UCCX Editor and open the vht_callback.aef script from the VHT folder. 2. Go to the list of variables, and find callControlGroup from the list. 3. Set the Value to the number that was set in Step 9 of the previous section, Create DN-Based Trigger for New Application.
Figure 13: Callback Script Variables

4. Save the script, and then close the script. 5. Return to the UCCX Administration page, and then navigate to Applications > Application Management. Select the HTTP Application created earlier for this script (VHT_HTTP), and then click Update; see Create Application for HTTP Trigger.

Deploy Core Software


The following section includes instructions for the installation and configuration of Virtual Hold core software needed for a successful UCCX integration deployment.

Install Core Software


Perform the following to install Virtual Hold: 1. Double-click setup.exe. 2. On the Custom Setup screen: a. Expand QueueManagement to display all features and components under it. Select to install QueueManager, but make sure NO TIALs are selected. b. Expand CallFlow to display all features and components under it. Neither CallFlow nor any of the features or components should be selected; i.e., make sure NO IVRs are selected.
27

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

c. PlatformToolKitWS v4.0 is installed by default as part of the InstallShield. Expand QueueInfo to verify it has been selected. d. At the SENSe Service to Monitor screen, clear IVR. Note: You can modify the SENSe .xml file to monitor/control OCC after the install. Note: See the Virtual Hold Deployment Guide for more details on how to complete InstallShield screens.

Configure Core Software


Run the Configuration Wizard and follow the steps in the Virtual Hold Deployment Guide. Note the following selections that are specific to this environment:
Figure 10: Configuration Wizard Switch Connection screen.

1. At the Switch Connection screen, click Add to open the Switch Types window.
Figure 11: Switch Types window.

2. Select Switch Type NONE, and then click Create.

28

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Figure 12: Configuration Wizard IVR Servers screen.

3. At the IVR Servers window, click Add.


Figure 13: IVR Servers window.

4. At the subsequent IVR Servers window, keep the defaults.


Figure 14: Configuration Wizard Queues window.

5. At the Queues window, click Add. The Callback and Holding Queues window will open. After you close the Queues window, the Callback and Holding Queues window appears.
29

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Figure 15: Configuration Wizard Callback and Holding Queues window

6. Click Add to open the following Callback and Holding Queues screen.
Figure 16: Callback and Holding Queues Window

a. At the top of the Callback and Holding Queues window, select the Site Name. b. In the Callback Queues Section of the window, perform the following steps: Enter the Callback Queue ID (CSQ ID): enter the CSQ name of the Callback Queue. Enter the Transfer Device: where you transfer the call from the IVR at callback or error decision. This is the same CSQ as the Callback Queue ID. Click Create. A message is displayed after the callback queue is created.

c. In the Holding Queues section of the window, perform the following steps: Enter the Holding Queue ID (CSQ ID): enter the CSQ name of the Holding Queue.
30

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Enter the Route Device: where you transfer the call at route time decision (the same CSQ as the Holding Queue ID). Enter the Transfer Device: where you transfer the call from the IVR at holding or error decision. This is the same CSQ as the Holding Queue ID. Click Create. A message is displayed after the item is created.

7. When you are finished, click Close. The Configuration Wizard Incoming Extensions window is displayed.
Figure 17: Configuration Wizard Incoming Extensions Window

This window adds Incoming Extensions that reference the proper Callback Queues and Holding Queues. Note: For UCCX integration, configure one Incoming Extension for each Segment in your telephony system. A segment is your Entry DN in UCCX for each skill. Use Treatment Type 20 in order for the Platform Toolkit to recognize the Incoming Extensions as Segments. a. Click Add to open the Incoming Extensions window.

31

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Figure 18: Configuration Wizard Incoming Extensions Setup Window

b. Enter the Site Name. c. Select the Queue ID: Select the Queue ID that corresponds to the Queue ID in the Queues section. When setting up a Rapport queue to be used to do outdialing, for Extension, enter the QueueID with uppercase RCL as the prefix. For example, a QueueID of VHT_Test would have Extension RCLVHT_Test. If a queue is going to be used for both in- and outbound Rapport calls, there will need to be two separate entries of this incoming extension in the database. One for inbound calls will be setup with the QueueID and the correct DN for the Extension. For example, QueueID of VHT_Test and Extension of 3001. Meanwhile, the Rapport incoming extension will have RCL prefixed to the same QueueID. For example, QueueID of VHT_Test and Extension of RCLVHT_Test. Extension*: Enter the Entry DN (Incoming Extension). Label: Enter a label, such as UCCX Entry DN. Country ID: Enter the country code; for example, 1 if US. Treatment Type: For UCCX integration, use Treatment Type 20. Script Number: This option is not utilized when a VXML IVR is being used. In this case, use Brand and Language settings in the EyeQueue application to select the brand for the segment and language for the IVR profile. IVR Group: Select the corresponding IVR associated with this queue. Holding Queue ID: Select the corresponding Holding Queue (CSQ) associated with this queue.
32

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Callback Queue ID: Select the corresponding Callback Queue (CSQ) associated with this queue. Under Threshold Queue ID*: Select the corresponding Under Threshold Queue (CSQ) associated with this queue. IB IVR Group ID: Leave NONE selected. OB IVR Group ID: Leave NONE selected.

d. Click Create. A message is displayed after the queue is created. e. Optional: If you created additional queues, you will need to create an incoming extension for each queue. Repeat the steps above for each queue. f. Click Close when finished.

Skip the Phone Number Configurations screen unless changes are necessary. The Finished screen will confirm you have completed Virtual Hold configuration.

Deploy VXML Interaction Server


This section walks you through all of the steps that are required to install and configure VXML Interaction Server on your system. It lists the third-party software required to complete the process, how to retrieve the code, how to add URLs and other important processes and procedures.

Installing Eclipse
You must install Eclipse on your local machine to build the VXML Interaction Server application. 1. Download the Eclipse for RCP and RAP Developers software for Eclipse Indigo SR2 from http://www.eclipse.org/downloads/packages/release/indigo/sr2 Important: You must install the version of Eclipse RCP and RAP for Developers that is for the Indigo release of Eclipse. Other versions will not work. Confirm that the version you are downloading is for the Indigo release. Tip: Eclipse provides both 32-bit and 64-bit versions. Download the version that is compatible with your local machine, where you are going to build the .war file. To check whether you have a 32-bit server or a 64-bit server, right-click My Computer > Properties. 2. Extract the files to the desktop. 3. Open the Eclipse folder inside the new folder on the desktop. 4. Run eclipse.exe. 5. In 32-bit environments only, if the screen pops up that offers selecting/sharing data, click No. 6. Select a workspace to house the project. You can use the default workspace. Add a note to name the file with the version of VIS. 7. Click OK.

33

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Installing or Updating VXML Plug-ins


This section details the installation, upgrade, and removal of a previous version for the Virtual Hold Extension Library and OpenMethods Toolkit URLs.

Installation
Install the files via the import.xml file. 1. Copy the import.xml file from the Sample Configuration folder and paste it into the folder where you unzipped Eclipse. Note: There are multiple versions of the import.xml file. Be sure to use the file that shipped with your version of the VXML interaction server. 2. To import the import.xml file, perform the following: a. Select Window > Preferences: b. Select Install/Update > Available Software Sites. c. Click Import and select the import.xml file. d. Select Open. e. Verify update sites were added and click OK. 3. To install the software, perform the following: a. Go to Help > Install New Software. b. From the Work with drop-down box, select All Available Sites. c. Once the window is populated with available software components, select the check box next to the OpenVXML 4.0 and Uncategorized labels and click Next. d. Review the Install Details window and click Next. e. Select the radio button to accept the license agreement and click Finish. Note: You may need to expand the section to get to the button. 4. Click OK if security warning appears. 5. Click Restart Now to restart Eclipse.

Validation
1. Go to the Help > About Eclipse. 2. Click on the Installation Details button. 3. Examine the Virtual Hold Extension Library on the Installed Software tab. 4. Confirm that the version number is correct for your version of VXML Interaction Server.

Retrieving Source Code


1. Download the VXML Interaction Server source code from the Virtual Hold Download Center and extract it to C:\Users\your username\Workspace (use the same workplace that has already
34

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

been created). Tip: Use Extract Here to avoid nesting the files. 2. Open the source code folder and copy all of the files into C:\Users\your username\Workspace. Important: DO NOT nest the source files directory.
Figure 19: An example of a nested directory.

Adding Source Files into Eclipse


Depending on how many times you have updated the VXML Interaction Server files in the workspace, perform the following steps in Eclipse. If this is the first time performing this procedure in Eclipse, do the following: 1. Navigate to File > Import > General > Existing Projects into Workspace. 2. Click Next. 3. Select the Root Directory. 4. Browse to the location of the source code: C:\Users\your username\Workspace. 5. Click OK. 6. Click Select All, and then click Finish. 7. Press F5 to refresh the project. 8. Select Project > Clean and ensure that rebuild is selected. Perform this step anytime an update occurs.

Updating the VXML Interaction Server in Eclipse


To update from an older version of the Virtual Hold Extension Library to the most recent, two procedures must be performed in this section. Note: The latest version (if you have more than two import.xml files installed) replaces the older version.

Extension Library
1. Go to Help > Check for Updates. 2. Select the Virtual Hold Extension Library from the list of Available Updates. 3. Click Next. 4. Click Next to go to the Review Licenses page and accept the agreement.
35

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

5. Click Finish. 6. Click OK if security warning appears. 7. Click Restart Now to restart Eclipse.

Platform
Perform Step 2 through Step 5 of Installation on page 33. Note: A window appears stating that some components have already been installed. This is normal. Continue to complete the upgrade.

Revert to a Previous Version of the Extension Library


To use an older version of the Virtual Hold Extension Library, remove it, and then install the desired version. 1. Go to the Help > About Eclipse. 2. Click on the Installation Details button. 3. Select the newer Virtual Hold Extension Library on the Installed Software tab. 4. Click Uninstall. 5. Accept default prompting to complete. 6. Perform Step 2 of Installation on page 33. 7. Delete the existing Virtual Hold Extension Library by performing the following: a. Select Window > Preferences: b. Select Install/Update > Available Software Sites. c. Select the name and click Remove. d. Click Yes when prompted. 8. Perform Step 3 through Step 5 of Installation on page 33. Turn on automatic updates: 1. Navigate to Window > Preferences > Install/Update > Automatic Updates to set up Eclipse to automatically check for updates. 2. Click Apply. 3. Click OK.

Create the VHT_VIS.war File


This topic outlines how to package and build the source files into a single file with a .war extension. Ensure the following procedures are complete BEFORE creating the .war file: VXML Interaction Server contains the latest updates. See Updating the VXML Interaction Server in Eclipse on page 35. If you would like to add support for additional Brands and Languages, see Brands and Languages.
36

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

To package and build the source files into a single file with a .war extension: 1. In Eclipse, select File > Export > Voice Tools > Web Application. 2. Click Next. 3. Select Archive File. a. Browse to the location where you want to save the .war file, and then click Open. Tip: Save the .war file in an easily accessible location, such as the desktop. b. In the File Name field, enter a name for the file (VHT_VIS.war). The file extension is case sensitive and should be written in lowercase. c. Click Open. 4. Click Next. 5. Click Select All. 6. Click Finish. You can ignore any warnings.

Deploy the VHT_VIS.war File


Copy the VHT_VIS.war file into the Apache Tomcat webapps directory (\\Tomcat\webapps). The file should unzip automatically. If it does not, restart Tomcat. Important: Delete any existing files before copying the .war file here. This includes previous .war files and unzipped .war files. Delete them in the following locations: \\Tomcat\webapps \\Tomcat\work\Catalina\localhost

Configuring the VXML Interaction Server (toolkit.properties)


The configuration information for the VXML Interaction Server is stored in a toolkit.properties file. The toolkit.properties file contains settings that are used to determine routing decisions within the system. The uccx.toolkit.properties template file is included with the build of VXML Interaction Server. This template file is located in the following location: \\x.x.x.xxxx.VXML_Interaction_Server.xxx\Sample Configuration To configure the VXML Interaction Server, perform the following steps: 1. Create a VirtualHold folder on the same server and same drive that Apache Tomcat is installed on. 2. Copy the uccx.toolkit.properties template file (\\x.x.x.xxxx.VXML_Interaction_Server.xxx\Sample Configuration) to the VirtualHold directory. 3. Rename the template file to toolkit.properties. 4. Open the toolkit.properties file in a text editor. 5. Change com.virtualhold.toolkit.baseurl to point to the appropriate PTK location. For example, http://IPAddress:Port/VHTPlatformWS-v4/ Note: Make sure it is pointing to PTK version 4.
37

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

6. Change com.virtualhold.toolkit.audiopath to point to the appropriate directory where the name files are stored. For example, C:/Program Files/Apache Software Foundation/Tomcat 7.0/ webapps/ROOT 7. Change com.virtualhold.toolkit.webaudiopath so Tomcat (or some other Web server) can fetch the name files from the directory used above. For example, http://Tomcat (or similar Web server) IP Address:Port/Change com.virtualhold.toolkit.useDnisAsSegment to true if it was set to false. This will enable you to use the calls DNIS as the incoming PTK segment. 8. The setting com.virtualhold.toolkit.disableNameRecording accepts true or false; to disable Name Recording, set to true, to enable, set to false. See Known Limitations about supported UCCX versions prior to changing this setting and make appropriate changes. 9. Save and Close the file.

Optional: Change the Location of the toolkit.properties File


If you want to store the file in a different location, you can create an environment variable or configure Apache Tomcat to identify the new location. The default location is C:/VirtualHold. For the environment variable, perform the following steps on the server that contains the VXML Interaction Server: 1. Right click on My Computer and select Properties. 2. Click on the Advanced Tab and then Environment Variables. 3. Under System Variables, click New to add a new environment variable. 4. Enter the Variable name as VHT_VIS_PATH. 5. Enter the Variable value as the path to the toolkit.properties file. 6. Restart the server. Or, on the server that contains the Apache Tomcat, perform the following steps: 1. Open the Apache Tomcat Java Properties and select the Java tab. 2. Click on the Advanced Tab and then the Environment Variables button. 3. Enter the path of the toolkit.properties in the Java Options text window. 4. Click Apply.

Brands and Languages


Brands can be used to customize the caller experience through the use of audio files for prompting. For example, brands can be used to set up prompts for a sales queue responsible for a line of several different products. Language helps organize prompting within a project. Together, brand and language form a matrix of voice projects. You must configure a voice project for the default brand for each language added to a workflow project. You cannot simply add files, brands, languages, etc. to a workflow project to customize the callflow. This process of creating and assigning brands and languages must be followed whenever a project is upgraded or customized.

38

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Create and Upload a Voice Project


To add a new voice project to a Virtual Hold Interaction Server application using the Eclipse application: 1. Select New > Project to open the New Project window at the Select a wizard screen.
Figure 20: Navigation to start a new project in Eclipse.

2. Select Voice Tools Wizards > Voice and click Next.


Figure 21: Select a wizard screen in the New Project window.

3. Enter the name for this voice project in the Name field, and then select a formatter in the Formatter field in the New Voice Wizard window. The language formatter controls the appearance of certain information, such as date format, etc. in a language-specific manner.

39

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Figure 22: Voice Information screen in New Voice Wizard window.

4. Click Finish.

40

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

5. In Windows Explorer, navigate to the VXML Interaction Servers \VHTSample\Media folder and copy the following folder and files. \Grammars folder ContactNumber.grxml file ContactNumber.regex file

6. Paste the copied folder and files into the \VHTCallScript_scriptnumber folder of each VHTCallScript_scriptnumber in each of the customers voice file collections. 7. If necessary, repeat Step 5 (look in the VHT_Sample_languagename\Media Files folder) and Step 6 for Spanish and French language folders and files. 8. In Windows Explorer, drag media files from your computers directory into the new voice project folder in Eclipse. This will open the File and Folder Operation window. 9. Select Copy files and folders and then click OK. Note: Do not select either option to link to files and folders.
Figure 23: File and Folder Operation window.

10. Repeat Step 1 through Step 9 for each set of voice files to be added. This voice project can be associated with a brand in the projects settings. Also, you can modify each individual project to point to this voice file set as the default set.

Add a Language to a Workflow Project


Perform the following to add a language to a workflow project using the Eclipse application: 1. Close any open canvases. 2. Open the Build Path properties window for the project by right-clicking on the project and selecting Properties.

41

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Figure 24: Navigation to Project Properties window.

3. In the Properties window, select Build Path to access the Brands tab. 4. Click Configure Languages on the Languages tab. 5. Click Add Language in the language dialog box. 6. Enter a unique language name and click OK in the add language dialog box. 7. Select the appropriate voice project for this language for each brand by selecting the desired voice project from the pull-down menu in each column.
Figure 25: Languages Tab in Properties window.

8. Click OK on the Properties window to apply the new language to the workflow project. The Properties window will close. 9. Once complete, perform a full clean up and build of the workspace (see Build the VXML Interaction Server for more information).

Create Brands and Assign Languages


Note: The following steps must be performed on all Workflow Projects named CallDirector_XXX and Module_XXX. Do not perform these steps on any other projects in the navigation tree. Perform the following to add brands to a workflow project and assign voice projects to the languages:
42

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

1. Close any open canvases. 2. Open the Build Path properties window for the first project by right-clicking on the project and selecting Properties.
Figure 26: Navigation to Project Properties window.

3. In the Properties window, select Build Path to access the Brands tab. Right-click on the Default brand, and then click Add Brand. 4. Enter a name for the brand in the Name field (VHTCallScript_1 for example) and click OK. Repeat to add more brands.
Figure 27: Build Path screen in Properties window.

5. After adding all your brands, select the Languages tab and expand the Default brand so that each brand under it is displayed.

43

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Figure 28: Build Path Languages

6. If you want to change the voice project associated to a language of a brand (Inherit From Parent is the default value for created brands): a. Click in the language column for the brand. b. Select the appropriate language in the drop-down list. 7. After all brands are added and the voice projects assigned, click OK on the Properties window to apply the new brand to the workflow project. The Properties window will close. 8. Repeat Step 2 through Step 7 for each workflow project named CallDirector_XXX and Module_XXX. After all projects have been configured with all brands, verify that all brands are present on the Brands tab of the Properties window for each CallDirector and Module project. 9. Once complete, perform a full clean up and build of the workspace (see Build the VXML Interaction Server for more information).

Build and Deploy the VHT_VIS.war File


You must rebuild and deploy the project to include the brands and languages created above. Follow the instructions below to make the changes take effect: 1. Build the VXML Interaction Server: a. Open Eclipse. b. Navigate to Project > Clean ... to ensure that the project is built from scratch. c. Under Project, select the Build Automatically box if it is not already selected. 2. Create the VHT_VIS.war file. For instructions on creating the VHT_VIS.war file, refer to Create the VHT_VIS.war File. 3. Deploy the VHT_VIS.war File. For instructions on deploying the VHT_VIS.war file, refer to Deploy the VHT_VIS.war File.

44

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Note: To apply brand and language, see Brand and Language in the System section of the EyeQueue User Guide. Please make sure that Virtual Hold is installed before this is applied.

Change the Log Level for VXML Interaction Server on Apache Tomcat
The VXML Interaction Server provides several levels of logging:
Table 1: VXML Interaction Server Log Levels

Log Level
ERROR WARN INFO DEBUG

Information Written to the Log


Errors Errors and warnings Errors, warnings, and informational output Low level trace information

By default, the VXML Interaction Server writes to the log at the INFO level.

Change the Log Level Temporarily


If you want to change the log level for a short time, for example when troubleshooting, you can change the log level in a web browser. Perform the following steps: 1. On the Server where the VXML Interaction Server is installed, navigate to http://server:port/ warfile/-/logging. The Current Log Level page is displayed. 2. Choose the log level that you want to use from the drop down menu and then click Set. 3. Change the level back when you are finished. Note: The log level returns to the default setting when you restart the server or update the VXML Interaction Server application in Eclipse.

Change the Log Level Permanently


If you want to change the level of detail in the logs permanently, you can change the log level in the Java Options. Perform the following steps: 1. On the Server where the VXML Interaction Server is installed, open the Tomcat6w.exe directory, usually found at C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin. The Properties window is displayed. 2. In the Java Options section, add the Dorg.eclipse.vtp.loglevel setting with the value for the log level that you want to use. Valid values are ERROR, WARN, INFO, and DEBUG. Restart Apache Tomcat.

45

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Deploy Outbound Contact Client


Use the OCC Installer to install the Outbound Contact Client. Use the configuration files to modify the OCC installation. See How to Change the UCCX Specific Configuration File for more information.

Install Outbound Contact Client


1. Locate OccInstall.exe in the UCCX Template from the download of VHT and copy it to the server where you want it to reside. This should be installed on the same server where Virtual Hold resides. 2. Double-click OccInstall.exe. a. The VHT Outbound Contact Client splash screen will briefly appear:
Figure 29: VHT Outbound Contact Client splash screen

b. The Outbound Contact Client Setup: Installation Folder window will open.
Figure 30: Outbound Contact Client Setup window

3. Enter the path for, or browse to, the Destination Folder, and then click Next. a. The installation path cannot contain spaces. If it does, the following dialog will appear:

46

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Figure 31: Outbound Contact Client Setup destination path requirement dialog

b. Click OK to acknowledge the Outbound Contact Client Setup message: The installation path cannot contain spaces. c. Eliminate any spaces in the installation path, and then click Next. 4. The following two screens of the OCC Setup consist of, first, configuring items at a generic OCC level; and, second, configuring UCCX-specific items.
Figure 32: Outbound Contact Client Setup - OCC setup

a. Enter the following on the OCC setup screen: Log Pathbrowse to the folder path for the log files. Queue Manager Hostthe name of your server. Queue Manager IPthe same IP as was entered in Virtual Hold. Note: This field uses built-in IP control to assist in correct configuration. Enter the IP address as if this were a blank field, using four decimal numbers separated by dots. Queue Manager Portthe same Port as was entered in Virtual Hold. IVR Namethe name of the IVR entered for IVR Group in the IVRServers table. Note: If Virtual Hold is already configured, then log in to EyeQueue and browse to the DBConfig page and look for the IVRServers table > get the IVR Name from the IVR Groups column. Otherwise, make note of this value and use it when you configure the IVRServers table. IVR Hostthe name of your OCC server. Note: This field is case-sensitive. Be sure to enter the exact name of the server with the proper case. Dialer Typethe type of dialer interface. Select UCCX.

b. Click Next to view the UCCX setup screen.

47

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Figure 33: Outbound Contact Client Setup - UCCX window

c. Enter the following on screen two, which get passed to the UCCX trigger: Tenantthe Site Name; e.g., VHT Out Dial URLthe URL of HTTP Trigger in UCCX, where VHTOutbound is the trigger configured for the outbound script. Outbound DNa new route point to which callbacks must be redirected to attach user data before the call is sent to the agent. Note: If your UCCX environment is set up per Prepare the Cisco UCCX Environment, then you can get the Directory Number that was created as part of Create DN-Based Trigger for New Application. VIS Request URLthe URL of the VXML Interaction Server. This value is sent to UCCX so it can invoke VXML pages to provide the outbound treatment to the caller. InstallShield will display this URL: http://<VIS_IP:Port>/<VIS_VERSION>/Cisco/Outbound Replace <VIS_VERSION> with the name of the VIS .war file. Note: If VIS is not yet installed, you may manually change the UCCX.config file setting requestURL in How to Change the UCCX Specific Configuration File. Disposition URLthe URL of the VHT_OCC Disposition Web Service that UCCX will call with disposition information. For example, busy, no answer, etc. PlatformToolKit URLthe URL of the server where Virtual Hold PTK resides.

In addition to what is entered into OCC, the following parameters are passed to the UCCX outbound trigger (http://UCCXServer:Port/HTTPTrigger): INTERACTION_ID=InteractionId CALLBACK_NUMBER=DialPrefixPhoneNumberDialSuffix CBQSkill=CSQ ID (the skill where the call will be queued after customer answers) NoAnswerTimeout=55 (in seconds)

Sample HTTP request to initiate an outbound call in UCCX:


http://uccxServer:port/ httpTrigger?INTERACTION_ID=InteractionId&CALLBACK_NUMBER=callbackNumber&SEGMENT=segment&CBQSk ill=skill&VIS_URL=http://visServer:port/uccx_ivr/Cisco/ Outbound&NoAnswerTimeout=noAnswerTimeout&DispositionURL=dispositionUrl&PTK_URL=http:// queueInfoServer/VHTPlatformWS-v4&TENANT=tenant&OutboundDN=outboundDN

d. Click Next
48

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

5. Click Install. The Installing window will open, showing installation status. Note: A Microsoft Visual C++ Redistributable Setup window opens if it is needed for this installation. Select the check box indicating that you have read and accepted the license agreement to complete the installation, and then click Install. Click Finish when the redistributable has been completed installed.
Figure 34: Outbound Contact Client Setup: Installing window

a. If any part of the Outbound Contact Client has already been installed, the following dialog will appear:
Figure 35: Outbound Contact Client Setup: OCC installation folder already exists

b. Click OK to remove the existing OCC installation folder and continue with the installation. 6. When the installation has completed, the following screen will appear:
Figure 36: Outbound Contact Client Setup: Completed window

a. Click Show details to view what actions took place regarding files during the installation. When the installation completes, these details are written to a log file, OccInstall.log, in the OCC installation folder. Also, the details can be copied to the clipboard by right-clicking in the details text box, and then viewed by pasting them into text editor. See the figure below. b. Verify there are no warnings or errors.

49

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

Figure 37: Outbound Contact Client Setup: Completed details

7. Click Close to complete the installation. Important: Outbound IVR should either be removed, if it has been installed, or Stopped in Services. Start the VHT_Outbound_Contact_Client. When installing Virtual Hold, clear any IVR selections that may occur. Note: A Microsoft Visual C++ Redistributable Setup window opens if it is needed for this installation. Select the check box indicating that you have read and accepted the license agreement to complete the installation, and then click Install. Click Finish when the redistributable has been completed installed.
Figure 38: Microsoft Visual C++ Redistributable Setup

How to Change the UCCX Specific Configuration File


If necessary, the OCC_UCCX.xml file can be changed. UCCX configuration takes place through the entry of several variables: Request/Postback URL and ports, headers and content type. The following is an example of an OCC_UCCX.xml file, which can be found at the location where OCC was installed. The default location is C:/VirtualHoldTechnology/OCC/OCC_UCCX.xml. Note: Changes to configuration parameters require a restart of OCC.

50

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

[ % outdialUrl URL of the UCCX that will provide the outbound treatment.

{outdialUrl, "http://UCCX_IP:9080/VHTOutbound"},

% outdialHTTPOptions - List of the erlang httpc module options for the request function. {outdialHTTPOptions, [ { timeout, 0}, % Timeout of actual request once it is sent

{ connect_timeout, 0} % Timeout to connect to the outdialURL ]},

% requestUrl - URL of the VIS that will provide the outbound treatment. This value is sent to UCCX so that it can send the call there once connected. {requestUrl, "http://VIS_IP:8080/uccx_ivr/Cisco/Outbound"},

% dispositionUrl - URL of the VHT_OCC Disposition Web Service that UCCX will call with dispositions. The OCC_IP below should be replaced with the IP address of the server where OCC is installed. {dispositionUrl, "http://OCC_IP"},

% platformToolKitUrl - URL of the PlatformToolKit that UCCX will call for InteractionQueued and InteractionDequeued methods. {platformToolKitUrl, "http://PTK_IP/VHTPlatformWS-v4"},

% dispositionPath - Path for the VHT_OCC Disposition Web Service to listen for dispositions from UCCX. {dispositionPath, "/vht/occ"},

% dispositionPort - Port for the VHT_OCC Disposition Web Service to listen for dispositions from UCCX. {dispositionPort, 4153},

% dispositionTimeout - Length of time (in milliseconds) to wait for notification of a call's disposition from UCCX. {dispositionTimeout, 55000},

% tenant - Tenant for UCCX. 51

Virtual Hold for UCCX Installation and Configuration Guide

Installation and Configuration

{tenant, "VHT"},

% outboundDN - OutboundDN where the callback is redirected from the UCCX vht_callback script. {outboundDN, "<YourOutboundDN>"},

% % Callback state machine Configuration % These values configure the callback behavior for UCCX % as opposed to another type of callback service % These are not intended to be changed. { setCallConnectedOnSuccess, true}, { callbackFailsOnDispositionTimeout, true}

% ].

52

Virtual Hold for UCCX Installation and Configuration Guide

Appendix

Appendix
The following is provided as assistance in determining where issues in using this solution may occur.

UCCX Platforms
The UCCX platform, available in three packages, is positioned for the following target users and has the capabilities listed: Unified CCX Standard (designed for entry-level users)includes the steps necessary for creating basic Unified CCX application, including IP Phone Agent (IPPA) and skill-based routing and does not include Cisco Agent Desktop (CAD). Unified CCX Enhanced (designed for enterprise-level users)includes all functions of Unified CCX Standard, plus support for priority queuing. Includes a license to enable custom Java extensions. Unified CCX Premium is required for VHT-UCCX integrations. See Business Perspective for more information about the UCCX Premium package. Customers with the Standard or Enhanced packages, who are looking to leverage Virtual Hold with UCCX, will need to upgrade their UCCX deployment to the Premium package.

Troubleshoot UCCX
In order to troubleshoot calls in UCCX, you will need to install the Real-Time Monitoring Tool from Cisco Unified CCX Administration.

Cisco Unified CCX Real-Time Monitoring Tool (RTMT)


Use this tool to view UCCX logs for troubleshooting purposes. It will allow you to pinpoint the time frame in which you want to view log files as well as specify a location to which the files should be exported.

Download the RTMT


1. Log in to the Cisco Unified Contact Center Express Server. 2. Select Tools > Plug-ins. Click the Cisco Unified CCX Real-Time Monitoring Tool for Windows link to download and install it to your local machine. The default location is: C:\Program Files (x86)\Cisco\Unified Serviceability\JRtmt 3. Once the Real-Time Monitoring Tool is installed, return to the Cisco Unified CCX Server to enable call tracing: a. Select Cisco Unified CCX Serviceability from the Navigation drop-down in the upperright corner of the Cisco Unified CCX screen, and the click Go.

52

Virtual Hold for UCCX Installation and Configuration Guide

Appendix

b. Select Trace > Configuration: In the Trace Filter Setting table, select Debugging and XDebugging1 for ENG in the MANAGERS Subfacility. Select Debugging and XDebugging1 for SS_VB in the SUBSYSTEMS Subfacility.

c. Click Save.

Start the RTMT


Navigate to RTMT through your Start menu to Cisco > Unified Serviceability > Real-Time Monitoring Tool 8.5: 1. Log in to RTMT. 2. In the System navigator under Tools, Select Trace & Log Central. a. Double-click Collect Files. Note: If RTMT exits after this step, right-click Real-Time Monitoring Tool 8.5 in your Start menu, and then select Properties. On the Compatibility tab, click Run this program in compatibility mode, and then select Windows XP (Service Pack 3) from the dropdown. Click Apply, and then OK. b. On the Collect Files/Select UCCX Services/Applications screen, select Cisco Unified CCX Engine. c. Click Next. d. On the Collect Files/Select System Services/Applications screen, click Next without making any selections. e. On the Collect File Options screen under Collection Time, select the time range (Absolute or Relative) for which you would like to collect files. f. Under Download File Options, Browse to the location where the files will be downloaded (the default is C:\Program Files (x86)\Cisco\Unified Serviceability\JRtmt). Make any other selections as necessary.

g. Click Finish.

View Logs
View the exported logs in a text editor. The logs can be found in the default location, C:\Program Files (x86)\Cisco\Unified Serviceability\JRtmt unless a different location is specified. To trace the script, look in the Cisco001MIVRxxx.log files. To trace any System.out logs from Java Code, look in the stdout.log files.

53

Virtual Hold for UCCX Installation and Configuration Guide

Appendix

UCCX Log Format UCCX scripts log call milestones, displaying the internal tracking ID; indicating the start and end of each script; indicating whether values have been passed into the script; and indicating when the script returns values. Call milestones will be logged as five types of statements as follows START
Dec 11 15:25:00.018 EST 2012: VHT: START |vht_inbound.aef|scriptRootDirectory = 'DEV'|tenant = 'VHT'|visUrl = 'http://10.30.0.190:8080/uccx_ivr'|csq = 'Sales_CSQ'|ptkUrl = 'http:// 10.30.0.190/VHTPlatformWS-v4/'|segment = 'NOT_SET'

END

Dec 11 15:25:02.934 EST 2012: VHT: END |vht_sub_get_offer_decision.aef|internalId = 133|getOfferDecisionResult = 'Y'

INFO

Dec 11 15:25:01.030 EST 2012: VHT: INFO |vht_sub_get_offer_decision.aef|internalId = 133|CALLING: com.virtualhold.uccx.PTKWrapper.getOfferDecision(ptkUrl,tenant,segment)|ptkUrl = 'http://10.30.0.190/VHTPlatformWS-v4/'|tenant = 'VHT'|segment = '4008020'

WARNING (if any) ERROR (if any)

Writing/Generating Logs
There are two ways to perform logging in the UCCX Editorby annotation and by creating Java code that can be uploaded to the server, and then calling that code within a script.
Figure 39: Logging sample in UCCX Editor

Annotated Logging
To use annotated logging, place the Annotate step, located under the General section of the UCCX editor, in your script. It will allow you to enter typed text into the log file. However, it will not allow you to pass variables. Example of Annotated Logging log file:
14514: Sep 14 09:28:06.513 EDT %MIVR-ENG-7-UNK:Execute step of Task 34000000010 : comment log */ /* Test

Delete an Old .jar File


Deleting a .jar file involves removing it from the classpath, verifying that existing UCCX scripts have not been affected, and actually deleting the .jar file.
54

Virtual Hold for UCCX Installation and Configuration Guide

Appendix

Remove the .jar File from the Classpath


To remove a .jar file from a classpath: 1. Log in to Cisco Unified CCX Administration. 2. Navigate to System > Custom File Configuration. 3. Move the .jar file you want to delete from the Selected Classpath Entries to Available Classpath Entries. 4. Click Update. 5. Restart the Cisco Unified CCX Editor if you were logged in to it during the preceding steps. Verify that the existing UCCX scripts were not affected: a. Log in to the Cisco Unified CCX Editor. b. Open all UCCX scripts. If the UCCX Editor can open the script, then it has not been affected. If the UCCX Editor cannot open the script (i.e., you receive the error Failed to load script file), then you will need to assign the .jar file back to the class path.

Assign a .jar File to a Class Path


If a .jar file has been affected by your attempt to delete old .jar files, and you are receiving the error Failed to load script file, then you need to put the .jar file back into the class path: 6. Log in to Cisco Unified CCX Administration, and then navigate to System > Custom File Configuration. 7. Move the affected file from Available Classpath Entries to Selected Classpath Entries. 8. Click Update. 9. Restart the Cisco Unified CCX Editor if you were logged in to it during the preceding steps. 10. Open the UCCX script you were unable to open and modify the step that accesses the custom .jar file. 11. Repeat steps 6 through 10 for each .jar file until you are able to open all UCCX scripts.

Delete the .jar File


12. Click Upload Custom Jar Files. 13. Click the Delete icon associated with the .jar file you want to delete. 14. Click OK to verify the file to be deleted. 15. Follow the instructions for Restart Cisco Unified CCX Engine and Administration, and Network Services to complete the process of Deleting an Old .jar File.

55

Virtual Hold for UCCX Installation and Configuration Guide

Appendix

High-Level Diagrams
The following shows the high-level flow diagram of the subscripts that invoke PTK Wrapper .jar file.
Figure 40: PTKWrapper Subscripts - Java Wrappers

The following shows the high-level flow diagram of the subscript that invokes OCC Wrapper .jar file.
Figure 41: OCCWrapper Subscript - Java Wrapper

56

Virtual Hold for UCCX Installation and Configuration Guide

Appendix

The following diagrams explain the flow for the main entry points for the Inbound and Outbound Callflows.
Figure 42: Inbound and Outbound Callflow

57

Virtual Hold for UCCX Installation and Configuration Guide

Appendix

The following scripts explain the flow for getting or setting user data.
Figure 43: Subscripts - Get/Set User Data

58

Virtual Hold for UCCX Installation and Configuration Guide

Appendix

The following script explains the flow of invoking the VXML application to provide inbound treatment.
Figure 44: Inbound Treatment Script

59

Virtual Hold for UCCX Installation and Configuration Guide

Appendix

The following script explains the flow of invoking the VXML application to provide outbound treatment.
Figure 45: Outbound Treatment Script

60

Virtual Hold for UCCX Installation and Configuration Guide

Appendix

The following script explains the flow of sending queued and de-queued messages to VH platform. It is also responsible for queuing the calls to an appropriate skill.
Figure 46: Queuing Script

61