Showing results for 
Search instead for 
Did you mean: 
Walkthrough Wednesdays

Deploying CVP Self Service Applications




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


Components Used

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:

Hardware Components

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
    • VXML Gateway
  • PSTN Simulator (CUCME gateway with cross over T1 PRI cable connected to CVP VXML Gateway could be used)


Software Components

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)


Related Products

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




Refer to Technical Tips Conventions for more information on document conventions.

Background Information

Unified CVP VoiceXML Server

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.


Configuration Steps


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:

  1. Configure basic components in OAMP configuration for Stand alone VXML Server
  2. Create a Studio VXML Application
  3. Configure VXML and Ingress Gateway for the application handling

Network Topology

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     CVP Operations Console CVP-VXML-GW        


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 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

  • bootstrap.tcl
  • bootstrap.vxml
  • cvperror.tcl
  • CVPSelfService.tcl
  • CVPSelfServiceBootstrap.vxml
  • survivability.tcl
  • handoff.tcl
  • ringtone.tcl
  • recovery.vxml

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 system flash flash:c3725-adventerprisek9-mz.124-15.T1.bin
! 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
  h225 id-passthru
  h245 passthru tcsnonstd-passthru

  bind control source-interface FastEthernet0/0.93
  bind media source-interface FastEthernet0/0.93


voice class codec 1
codec preference 1 g711ulaw
codec preference 2 g711alaw
codec preference 3 g729r8


voice class h323 1
h225 timeout setup 3


voice translation-rule 1
rule 1 /987654/ //


voice translation-profile block
translate called 1


http client cache memory pool 15000

  ! 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
  param CVPSelfService-app HelloWorld
  param CVPSelfService-port 7000
  param CVPPrimaryVXMLServer

  ! 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


mrcp client rtpsetup enable

vxml version 2.0


controller T1 1/2
framing esf
linecode b8zs
pri-group timeslots 1-24



interface FastEthernet0/0
no ip address
duplex auto
speed auto

interface FastEthernet0/0.1
description Management VLAN
encapsulation dot1Q 1 native
ip address


interface FastEthernet0/0.93
description CC Server VLAN
encapsulation dot1Q 93
ip address
h323-gateway voip interface
h323-gateway voip bind srcaddr


interface Serial1/2:23
no ip address
encapsulation hdlc
isdn switch-type primary-ni
isdn incoming-voice voice
no cdp enable


router ospf 7
network area 0
network area 0


ip http server
no ip http secure-server


dial-peer voice 3 pots
service HelloWorld
incoming called-number 541764....





Frequent Contributor

Hi Syali,

Thank you very much for this simple doc, help me a lot

Only need to complete my understanding,,

From where you got this tcl file: CVPSelfService.tcl

or how to write this tcl file so you said after that it'll call CVPSelfService application

then why you use with this application: the CVPSelfServiceBootstrap.vxml file ?

So If you please help me to know how to write this tcl and vxml and if there is some of them are templates to easy the project deployment for us

Best Regards

You don't need to write those scripts. These scripts are part of CVP installation media.

Frequent Contributor

thank you very much for your fast reply

So I won't need to write any new tcl or vxml in my projects

And If I'll go and learn tcl and vxml,, will this add to me in CVP projects

I think the most needs to me is to talk with web service or to SQL DB or with java classes as what I see with UCCX IVR

Best Regards

only I can't rate your posts,, don't find it ,, thanks again


Hi Syed,

I am new to CVP. Just have a question. We already have CVP application deployed on our servers. Can we take those files (like config, jar, xml, whatever) and open the script in Call studio. Basically reverse engineering. I need to see the call flow. If possible then whats the process




Hi Chirag,

The files to which Call Studio saves the project and the files that are finally deployed to CVP are different. So, the short answer is no, you cannot open the deployed files in Call Studio to see the call flow. Having said that, the files that Call Studio generates are quite readable and they're not difficult to reverse engineer. So, if the script is not excessively complex, I bet you can go ahead and try to decipher the files and build the call flow manually.




Thanks Rafael

Content for Community-Ad