Documente Academic
Documente Profesional
Documente Cultură
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
Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
UCCX Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Troubleshoot UCCX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Cisco Unified CCX Real-Time Monitoring Tool (RTMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Download the RTMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Start the RTMT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
View Logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Writing/Generating Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Annotated Logging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
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 self-
service port for the Premium package.
See UCCX Platforms for more information about all available UCCX packages.
6
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 self-
service. 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
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.
8
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.
- Upon the callers request to remain on Hold, VIS invokes PTK method
InteractionSendToQueue so Queue Manager can expect the call to
be queued.
- 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.
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
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 treat-
ment.
If treatment should be offered:
- Upon the callers request to remain on Hold, VIS invokes PTK method
InteractionSendToQueue so Queue Manager expects the call to be queued.
- 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.
11
Virtual Hold for UCCX Installation and Configuration Guide Design Overview
Queue Manager responds with EWT and whether the call should be offered Virtual Hold treat-
ment.
If treatment should be offered:
- 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 Man-
ager 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 Man-
ager that the call is de-queued from the skill, and it can clean up the call with the appropri-
ate final fate.
An RTP stream is established between the Agent and the Caller.
14
Virtual Hold for UCCX Installation and Configuration Guide Design Overview
15
Virtual Hold for UCCX Installation and Configuration Guide Design Overview
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
16
Virtual Hold for UCCX Installation and Configuration Guide Design Overview
17
Virtual Hold for UCCX Installation and Configuration Guide Installation and 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 pop-
up window.
7. Click Upload. This adds the file to the classpath.
8. Click Return to Document Management.
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 cor-
ner 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.
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.
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.
21
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
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
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
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).
24
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
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.
26
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
27
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
1. At the Switch Connection screen, click Add to open the Switch Types window.
Figure 11: Switch Types window.
28
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
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
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.
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
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.
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 down-
loading 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
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.
34
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
been created).
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.
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.
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
37
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
38
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
3. Enter the name for this voice project in the Name field, and then select a formatter in the Format-
ter 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
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.
41
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
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 Prop-
erties window will close.
9. Once complete, perform a full clean up and build of the workspace (see Build the VXML Interac-
tion Server for more information).
42
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
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
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 Interac-
tion Server for more information).
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
ERROR Errors
By default, the VXML Interaction Server writes to the log at the INFO level.
45
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
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
47
Virtual Hold for UCCX Installation and Configuration Guide Installation and Configuration
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 trig-
ger 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 set-
ting 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 installa-
tion. 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-click-
ing 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
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, [
]},
% 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, 55000},
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>"},
{ 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 creat-
ing 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 exten-
sions.
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.
52
Virtual Hold for UCCX Installation and Configuration Guide Appendix
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
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 : /* Test
comment log */
54
Virtual Hold for UCCX Installation and Configuration Guide Appendix
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