This document will cover the design and deployment of CVP Self Service Model by using CVP Standalone VXML Server and Cisco Unified Call Studio Applications. The document will also discuss the steps required in configuring these components from a high level.
This document provides information to help engineers and customers (who already have some knowledge about the Self Service IVR applications, Cisco Unified Contact Center Enterprise (CUCCE) and Cisco Unified Customer Voice Portal (CUCVP) solutions) looking to grow the business and to maximize the return of their investment by having very advanced and quickly deployed SelfService applications.
Cisco recommends that you should have at least basic knowledge of these topics:
Cisco Unified Cisco Voice Portal (CUCVP)
Cisco Voice Gateways
This document also assumes that you have following components already installed and basic configuration is already done
CVP VXML Call Studio
CVP VXML Server
CVP VXML Studio license file
CVP VXML Server license file using OAMP
Basic Configuration of ingress Gateway
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
The information in this document is based on these software and hardware versions used:
The following list shows the hardware components of the CVP laboratory (LAB) system:
One Windows 2003 Enterprise Eidition based MCS-7825 server running following CVP components in LAB environment
CVP VXML Server (VXML Server is bundled with the CVP Server installation DVD/CD)
CVP VXML Call Studio
Microsoft IIS Web Server (Hosting .wav files to be played)
One Cisco 3725 Router
Ingress PSTN Gateway
PSTN Simulator (CUCME gateway with cross over T1 PRI cable connected to CVP VXML Gateway could be used)
The following major software versions were used
Cisco IOS Software Releases 12.4(15)T1 Advance Enterprise Feature Set on CVP VXML Gateway
Cisco Unified CVP version 7.0(1)
Cisco Unified Call Studio version 7.0(1)
CVP VXML Server version 7.0(1) (bundled with the CVP installation)
This configuration can also be used in conjunction with the following solutions.
Cisco Unified Contact Center Enterprise (CU CCE) based solutions
Cisco Unified Intelligent Contact Management (CU ICM) based solution
Cisco Unified Customer Voice Portal (CU CVP) based Standalone IVR solutions
Unified CVP VoiceXML Server executes complex IVR applications by exchanging VoiceXML pages with the VoiceXML gateway's built-in voice browser. Like almost all other Unified CVP product components, it runs within a Java 2 Enterprise Edition (J2EE) application server environment such as Tomcat or WebSphere, and many customers add their own custom-built or off-the-shelf J2EE components to interact with back-end hosts and services. VoiceXML Server applications are written using VoiceXML Studio and are deployed to the VoiceXML Server for execution. There are two very common ways in which these applications can be used.
The applications could be invoked on an as-needed basis by a special microapplication which must be executed from within the Unified ICME routing script. VoiceXML Server can also be deployed in a Standalone configuration that does not include any Unified ICME components. In this model, applications are invoked as a direct result of calls arriving in the VoiceXML gateway This document only shows the deployment steps for the second option mentioned above.
CVP VoiceXML Call Studio
This component is the service creation environment (script editor) for VoiceXML Server applications. It is based on the open source Eclipse framework, and it provides advanced drag-and-drop graphical editing as well as the ability to insert vendor-supplied and custom-developed plug-ins that enable applications to interact with other services in the network. VoiceXML Call Studio is essentially an offline tool whose only interaction with the VoiceXMLServer is to deliver compiled applications and plugged-in components for execution.
For this document the Unified CVP VoiceXML Server, Unified CVP VoiceXML Call Studio, CVP Call Server and the Media Server are residing on the same server. This type of scheme is only supported for Laboratory (LAB) or POC (Proof of Concept) type of environments.
A customer would dial a Contact Center pilot # and will reach to a self service application that is configured using Call Studio. The VXML Gateway will receive the request and will contact VXML Server. VXML Server will return some VXML pages and the VXML Browser inside the Cisco IOS will render the web pages and will present it to the customer. These SelfService Applications could be very basic or they could be very complex applications that could connect to backend Database servers for record retrival and query purporses.
For this document a very basic HelloWorld application was created and the cocepts are demonstrated.
Complete these steps:
Configure basic components in OAMP configuration for Stand alone VXML Server
Create a Studio VXML Application
Configure VXML and Ingress Gateway for the application handling
A co-located CVP VXML Server, Operations Console Server and CVP Call Studio (Audium).
Note that this is not a supported configuration in a live environment. Unified Call Studio is only supported on Windows XP or Windows Vista operating systems. Check the CVP Hardware and Software Specification for latest details
IP Addressing Used
Component Name IP Address CVP VXML Server 192.168.93.3 CVP Operations Console 192.168.93.3 CVP-VXML-GW 192.168.93.1
CVP Standalone VXML Server Configuration
Before moving on, there are few things to notice regarding CVP VXML Server and the terminologies used
Voice Browser (VB) some times also referred to as VXML Browser
VXML Browser is basically a component build into Cisco IOS VXML Gateway code
Cisco IOS VXML Gateway browse VXML pages from CVP VXML Server (very similar in concept where FireFox Web browser browse HTML pages from an Apache web server)
Every communication process between the VXML browser and Voice Application has to be initiated by the VXML browser as a request to the VXML server.
In CVP Operation Console browser, under the Device Management section, select the VXML Standalone Server option
Enter the values in the CVP VXML Server (standalone) fields as mentioned in the following diagram
Once the configuration is done, it will show as “configured” in the listing, as mentioned in the following diagram.
Notice that since it is a standalone vxml server deployment, there is no need to activate ICM, IVR, SIP or H.323 services under the CVP Call Server Configuration options.
Make sure that VXML services are running, as mentioned in the services pages.
If all the configurations are done correctly, you will notice that in the Control Center – Network Map, VXML Server is in UP state.
If you added the Call Server as part of CVP installation, it will show as not reachable which is normal because so far only standalone VXML Server is configured.
CVP VXML Call Studio Application Build Process
The goal of this Application is to allow you to make a phone call into the HelloWorld CVP VXML Call Studio Application. The dynamic VXML application will paly a basic prompt and call will be cleared.
Launch the CVP VXML Call Studio application and create a VXML Call Studio Application by selecting
File --> New --> Call Studio Project
Specify a project name which in our case is HelloWorld. Notice that it is case sensitive. After clicking next, you will see General Settings option like mentioned in the following diagram.
Session timeout default setting was changed to 5 min. In the VoiceXML Gateway option, Cisco Unified CVP4.1/7.0 is selected. There is no significance of selecting Nuance here because we are not using and TTS/ASR server.
By default under the Loggers section there are five logs but for this setup CVPDatafeedLog and CVPSNMPLog were removed from the project. Customer would need to make adjustments based on their requirements in the live contact center or IVR deployments.
The next option is for the audio settings. For this section, default options were selected.
Endpoint Settings is the next option and default settings were selected.
After End point setting, for the Root Doc. select the default options and click next.
Next click finish to complete the properties. In the navigator panel on the left, you will see the HelloWorld project for you. You can see it in the Navigator panel as shown in the below diagram
Now you can create an application as shown in the following diagram.
Now we will discuss each element in order.
Start of Call
This element is automatically populated when you first create a brand new application. There is no configuration required for this part.
CVP Subdialog Start_01
This element doesn’t require any settings to be modified.
Is basically an audio element that is renamed to “PlaySomething”. This is the important element that needs to be modified. Under the Audio setting, in the element configuration tab, navigate to Audio Groups à Initial à Audio Item 1 and select the options as mentioned in the following diagram.
Since we are using Microsoft IIS for hosting .wav files, we have specified the complete URI or the path for the .wav file. This path can be verified by putting it into any web browser and the browser should launch the appropriate application (like Windows Media Player) to play the .wav file.
No configuration is required for this element
Deploy The HelloWorld Application
Now the next step is to deploy the HelloWorld application. Right lick to the HelloWorld in navigator pannel and it will show you a list of options.
Select the Deploy option from the list.
When you click deploy, the CVP Call Studio will ask for the folder name. Since both CVP Call Studio and VXML server are co-located on the same box, the local folder name will be specified. The location of it is important and the project should be saved into C:\Cisco\CVP\VXMLServer
Once the HelloWorld project is saved, it will be saved automatically under the “applications” directory by the name of “HelloWorld”. And there will be more sub-folders created.
As already mentioned that you need to make sure that your audio HTTP medial server is already configured to play .wav files. For more information on setting up one, please check the following URL
The best way to test whether your media server is appropriately serving the media files is to use a regular web browser such as Internet Explorer and specify the URL of a prompt on the media server, such as http://192.168.93.3/en-us/sys/1.wav. Your web browser should be able to download and play the .wav file without any authentication required.
VXML and Ingress Gateway
In this setup, one router/gateway is used as an ingress as well as VXML gateway. Notice that due to VXML compatibility issues, all Cisco IOS versions are not approved. In this lab setup c3725-adventerprisek9-mz.124-15.T1.bin is used. For latest and complete CVP Hardware Software compatibilty list (also known as BOM) please check the web page titled “Hardware and System Software Specification for Cisco Unified Customer Voice Portal (Unified CVP)”
Now using the Unified CVP Operation Console, copy following files to VXML Gateway flash memory
The next step is to configure the ingress/VXML Gateway to support the incoming calls to the contact center. Following are the steps that happen when a customer dials the contact center main number.
Customer dials 5417641001 which the Contact Center’s main number for HelloWorld Self Service Application
Call matches the incoming POTS dial-peer 3
POTS dial-peer 3 invokes the HelloWorld application
VXML GW initiate the connection with the stand alone VXML Server
VXML Server sends the HelloWorld VXML pages to the VXML GW (which is also a VXML Browser)
VXML GW renders the web pages for the caller and caller heard an audio welcome message
After playing the message call hangs up
Ingress and VXML GW Configuration
version 12.4 service timestamps debug datetime msec service timestamps log datetime msec no service password-encryption ! hostname cvp-vxml-gw ! boot-start-marker boot system flash flash:c3725-adventerprisek9-mz.124-15.T1.bin boot-end-marker ! ! card type command needed for slot/vwic-slot 0/0 card type t1 1 0 ! card type command needed for slot/vwic-slot 1/1 enable password lab ! no aaa new-model no network-clock-participate slot 1
ip cef ! isdn switch-type primary-ni voice-card 1 no dspfarm ! voice service voip allow-connections h323 to h323 allow-connections h323 to sip allow-connections sip to h323 allow-connections sip to sip signaling forward unconditional h323 emptycapability h225 id-passthru h245 passthru tcsnonstd-passthru
sip bind control source-interface FastEthernet0/0.93 bind media source-interface FastEthernet0/0.93 header-passing
voice translation-profile block translate called 1
http client cache memory pool 15000 !
application ! ! Following serivce should be placed on the incoming POTS dial-peer that is destined for CVPSelfService ! It defines the application name, primary and backup VXML Server Address ! It is important to configure this service. This service also calls another vxml ! service called CVPSelfServiceBootstrap.vxml ! service HelloWorld flash:CVPSelfService.tcl param CVPBackupVXMLServer 192.168.93.3 param CVPSelfService-app HelloWorld param CVPSelfService-port 7000 param CVPPrimaryVXMLServer 192.168.93.3 !
! Following serivce defines the application name and VXML Server Address ! CVPSelfService.tcl calls CVPSelfService application
! service CVPSelfService flash:CVPSelfServiceBootstrap.vxml paramspace english index 0 paramspace english language en paramspace english location flash: paramspace english prefix en
! Following services are mentioned here although not playing any role for the HelloWorld ! Application but they are mentioned here as a best practice to have them configured
service ringtone flash:ringtone.tcl paramspace english index 0 paramspace english language en paramspace english location flash paramspace english prefix en !
service recovery flash:/recovery.vxml paramspace english language en paramspace english index 0 paramspace english location flash: paramspace english prefix en
! service cvperror flash:cvperror.tcl paramspace english language en paramspace english index 0 paramspace english location flash paramspace english prefix en
! service bootstrap flash:/bootstrap.tcl paramspace english index 0 param gtd-attribute0 rgn paramspace english language en param gtd-field0 noa param gtd_format1 ascii param gtd-attribute1 fdc param gtp-instance0 1 paramspace english location flash param gtd-field1 dat paramspace english prefix en !