Post

Cisco CVP & Call Studio Scripting

Customer Voice Portal (CVP) is a component of Cisco’s Contact Center Enterprise (PCCE) solution that manages IVR interactions. It enables customers to navigate through menus and perform tasks using their telephone keypad or voice commands.

Call Studio is a graphical development environment provided by Cisco for creating scripts used in CVP applications. It allows us to design call flows, prompts, and menus for the CVP Apps.


Preparing Audio

CVP only accept a very specific type of audio, that’s why we’re converting a standard mp3 into a wav file with these specifications

x

x


Now we put the audio on CVP’s IIS Web Server path

x


Then the audio should be accessible on the default web port 443

x



Creating CVP Micro App

On CCE Admin » IVR Settings » Network VRU Scripts, create a new script to play the audio

x

  • PM : Play Dedia such as .wav files or media from an external VoiceXML source
  • longview : the longview.wav file placed on the IIS web server
  • A : default Application Media library


Now on the ICM Script, we can call the Longview Micro App so the audio is played

x


And here calling it to the Dialed Number (which in this case is 6000) shows the app successfully plays the audio

x



Custom Path & Peripheral Variable

Now let’s say we move the longview.wav to a subfolder “helenamusic”

x


And we modify the Longview Micro App to not specifically play the longview.wav, but to dynamically play audio based on the supplied variable

x

  • -1 : The app will take the value of Peripheral Variable 1


Now on ICM Script, we set the Peripheral Variable with the value of “helenamusic/longview.wav” and send it to the Micro App

x


This will make the app search the audio to the subfolder “helenamusic” as its told to

x



CVP Call Studio

Creating CVP App

If we want to make a more complex application, we’re gonna need a beefier tool, which in this case is the Call Studio.
Here we created a new Call Studio Project named helenaapp

x


On the app’s properties, we’re gonna set the audio root path to be the CVP’s Tomcat Web Server, which is on port 7000

x


The tomcat root path can be found here

x


Here we’re gonna give it a simple 2 Menu options, press one to listen to longview music and press two to get connected to agents

x


We also set the audio for the menu prompt

x


Next we create Audio Prompts just to play confirmation audio of the selected menu

x


Lastly, end with Subdialog Return and carry the selected menu on the Caller Input variable so it can be used on ICM Script

x


Deploying App

Next export the app in archived format

x


Now back on CCE Admin, on IVR Settings » File Transfer, upload the exported app

x

x


The app will be deployed onto the CVP Server

x


Creating ICM Script

Here we create an ICM Script with “user.microapp.ToVXML[0]” set to “application=helenaapp”, and then to take the “Call.user.microapp.caller_input” as a parameter to decide wether a music should be played or to forward the call to an agent

x


And when we make a call and choose option 2, our call is forwarded to an available agent

x

x



Connecting to SQL Database

CVP App can also make a connection to Database in order to fetch some needed external data, here first we need to install the JDBC driver

x

  • A JDBC (Java Database Connectivity) driver is a software component that enables Java applications to interact with a database management system (DBMS). It provides a set of Java interfaces for connecting to a database, sending queries, and retrieving results. Essentially, it acts as a bridge between Java code and the database


Here’s the database that we will connect to from the CVP App

x


Next, we need to edit the context.xml in order to tell the app regarding the details of the database that we will connect to

x

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Context>
 <Resource 
  url="jdbc:sqlserver://win1.helena.gg:1433;databaseName=dummy;username=sa;password=thepassword;encrypt=true;trustServerCertificate=true"
  driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
  maxActive="100"
  maxIdle="30"
  maxWait="10000"
  removeAbandoned="true"
  removeAbandonedTimeout="60"
  autoReconnect="true"
  logAbandoned="true"	
  username="sa"
  password="thepassword" 	
  type="javax.sql.DataSource" 
  Auth="Container" name="jdbc/dummy" />
</Context>


After that, we create a Digit Input Element to receive the 4 digits ID from the caller

x


Then use the Database Element to create a query to the database using the input ID as a parameter

x


Next add a Decision Element to check wether the query returns more than 0 rows or not

x


And finally, pass the Digits Value along with the returned data from the database query to ICM Script

x


Here we map the passed value from CVP App to the Peripheral Variables

x


And when we make a call, the values on the Peripheral Variables are shown here

x

x



Connecting to REST API

Other than connecting to database, we can also connect to a REST API to get even more data for our app.
Here we have a simple dummy API that returns the data of “credit_card” and “street” when hit on the user’s endpoint

x


Back on our Call Studio, we add a Rest Client Element and point the URL to our dummy API using the result of the database as the endpoint parameter

x


And on the Set Value Element, we’re taking the “response body” and take only the value that we need, which in this case is the value of “credit_card”

x


Lastly, as usual pass the data to ICM Script

x


And when the call connects, we can see the data from REST API is fetched into Variable 4

x


This post is licensed under CC BY 4.0 by the author.