Simple CVP CallStudio Script: Comprehensive Exercise

Well, this is the continuation of the previous entry ‘Simple CVP CallStudio Script: Standalone Exercise‘. On previous entry the call flow was limited to CUCM, VGW and CVP but on this exercise the ICM would be involved. ICM script would call the CVP script by ECC Variables to execute it, collect data and might be send back to ICM, the CVP VXML script would be like a sub-script of the ICM script.

Okey, let’s talk about the deployment. You will need the ICM installed, that might be the progger or sprawler deployment model. You will need the Distributor (AW), Logger and Router running also you need a Peripheral Gateway (PG) to talk with CVP. I installed the whole ICM components on a single VM image on ESX for lab environment, the PG is installed also into the ICM itself. Though the Cisco Unified CVP Getting Started Guide tells you to install the PG into the CVP box but I found no difference. Here is a single screenshot of my ICM image:

Now let’s move on deployment, how to complete the exercise. I want to recall again, this is the detail view of the exercise explained on Cisco Unified CVP Getting Started Guide chapter 10 (Expand the Initial Exercises) so you must need to be familiar with the previous exercises first.

Configuring the ICM

You will need to configure the Call Type, Dialed Number/Script Selector, creating the script and associating with the Call Type.

The dial-number for the ICM script would be 6005557777 in this case so the dialed number I have configured is here:

Also the Call Type is here:

Associate the Call Type with the DN I created:

The ICM script now:

Most important part here is the ECC Variables. Here is the values of ECC Variables:

Call.user.microapp.media_server = “http://CVPIP:7000/CVP”

Call.user.microapp.app_media_lib = “..”

Call.user.microapp.ToExtVXML[] = concatenate(“application=UserInputTest;”,concatenate(“callid=”,

Call.user.microapp.UseVXMLParams = “N”

The detail of this parameters would be found at chapter 10 of Cisco Unified CVP Getting Started Guide.

Now save the script, associate with the Call Type you created:

That’s all from the ICM side! 🙂

Configuring the Voice Gateway

You will need to create some dial-peers and applications on voice gateway to accept and forward the call on return path from ICM. Go to Chapter 9, Section A starting from page number 94 to follow the procedures to configure the gateway. I wont repeat those. 🙂

Configuring the CUCM

You will need to create #1 a CVP SIP Trunk from CUCM, #2 a Route Pattern through the call toward the CVP trunk.

The CVP Trunk:








The Route Pattern:

So all done! I don’t need any modification on CVP because I have already done that on previous standalone exercise! Now make a test call and monitor the ICM script to check the status of the call. I have additionally added a Label (3001) to transfer the call to 3001 after the CVP script execution end, hence to prove the call is following the ICM script even though it’s executing the VXML CVP script.

This was the end of CVP Getting Started Guide. 🙂 I have plan to study more on CVP specially the CVP scripting part and interaction with CRM to fetching data and playback, playing more with ECC Variables etc. I’ll keep posting if I learn anything new. 🙂

Simple CVP CallStudio Script: Standalone Exercise

The basics of this exercise came from Cisco Unified CVP Getting Started Guide, three wonderful exercises explained there briefly, even it’s the best guide for any newbie on CVP. I have explained the ‘way to configure’ the last exercise of the book, you can find it on chapter 10 (i.e. Expand the Initial Exercises). Let me tell you first, you must have to follow the previous exercises first to completely understand this details otherwise there must be confusions on configurations as I have skipped some of the very detail.

Again, please read the guide initial chapters if you have any confusion on call flow, how voice gateways are interacting with CVP VXML server and following the script instructions.

I have installed the CVP7.0.2 (all in one box), ICM 7.2.2 (all in one box), CUCM 7.0 PUB and SUB, Windows XP (for CallStudio) on VMware ESX 3.5 to meet all my requirements, also I have installed the Peripheral Gateway (PG) on the ICM box itself. The gateway I’m using is 2821 model though you can even use any of the 3700 series, AS5300XM, AS5350XM, AS5400XM, 2800, 2900, 3800 or 3900 series routers. I haven’t tried virtualizing the router image by Dynamips but you can have a try with the 3700 image IF you can’t manage the physical router.though I’m not sure of it’s performance Okey let’s start now….


Design the CallStudio Script

I have installed the Cisco Unified Call Studio on Windows XP platform. The script is shown below but the detail of the notations and the elements can be found at Cisco Unified CVP Getting Started Guide, so I don’t want to repeat the same explanations here. For more info please follow the guide.

Save the project at any location, copy the project files at CVP Server at the location: “C:\Cisco\CVP\VXMLServer\application”. I saved the project with the name ‘UserInputTest’.

Now deploy the VXML application by the tool ‘deployApp.bat’ from the location C:\Cisco\CVP\VXMLServer\applications\UserInputTest\admin, it will prompt for confirmation.

Now you can verify if the application is running along with other previous applications by the tool ‘status.bat’ from the location C:\Cisco\CVP\VXMLServer\admin\ . It should show like below:

So you are good on designing the project and deploying on Cisco Unified VXML Server. 🙂


Configure the Voice Gateway

You must have to upload the gateway files for standalone exercise explained on getting started guide. Also you have to add the Voice Gateway from the CVP Operations Console also make sure your VXML server is up and running on CVP.

Now let’s concentrate on the voice gateway. You have to create an application where the CVP VXML server IP and the application would be defined. It’s pretty simple like the below:

Now you need a dial-peer with ‘incoming called-number’ where you have to call the application just you have created.


Configure the CUCM

I have used my CUCM IP phones as the test phones to test the script functionality, so I had to create a SIP trunk from CUCM to the voice gateway first, then create a Route Pattern towards the gateway.


The configuration is done, let’s discuss the call flow now. If you are an ICM expert then it’s so easy to you I know but it was also confusing to me rather than thinking it easy. 🙂 If you dial 6005551234 from your IP Phone which will access the route pattern and will hit the voice gateway thru the SIP trunk, it will match the dial-peer with ‘incoming called-number 6005551234’. The dial-peer will call the service ‘userinputtest’ hence the service will call the CVPSelfService.tcl script, the TCL will call the CVP with appropriate application name. The application is already running on the CVP VXML Server so it will begin processing. I have taken the screenshot of the phone while the call was in progress:

On next I shall discuss the same project on comprehensive scenario where ICM will take take control of the calls and refer the CVP script when required. That would be a great fun!

Happy labbings! 🙂