Showing results for 
Search instead for 
Did you mean: 
Frequent Contributor

Call studio and icm-end to end process

I'm happy creating scripts with script editor - DB dips, time of day, rona etc but now I'm looking to make use of call studio. I'm looking through some documents and seem to understand it. 

Is it true that you use call studio for day menu choices, DB dips etc while you still use script editor to queue to Skill grps-is this correct? 

Start call,

set up extvmxl to identify the Vxml server

Run external to make use of call studio for menu route call back to call studio 

Route  back to icm to queue the call

I saw some docs refer to have created tcl scripts on the Vxml gw-is this correct? 

This there a good doc to show the end to end configuration process

I did an admin course part 1 aucce and it touched on call studio but I just need a "kick" start 


Frequent Contributor

Hi, has anyone got some

Hi, has anyone got some simple icm scripts to give me a brief idea with regards to different steps to send the call from icm to cvp using Vxml and back. Also a simple call studio for reference.

I set up and support icm scripts, with overflow, dblookup etc but want to move some of this in Vxml so looking for some guidance

Does anyone have the hello world for call studio and icm 



VXML Applications can be very

VXML Applications can be very powerful and is only limited by what ICM offers... with that said, what you're asking cannot be simply answered by one document or one example. You'll need to deep dive in DevNet and get comfortable with Call Studio with its native elements before you start any custom development. If you know how to program in Java, you'll already be ahead of the game. If you or your employer can fund it, I recommend taking the CVPD class; Janine Graves is the best instructor out there and knows Call Studio/VXML inside out. 

Element Spec and Program Guide for Call Studio:

DevNet Forum:

DevNet Sandbox:

HelloWorld should be on your CVP Servers. C:\Cisco\CVP\VXML\applications\HelloWorld


Omar is correct, I also

Omar is correct, I also recommend Janine for Call Studio VXML training. Starting with Hello World is good; in the same location is the base Application for Courtesy CallBack.

While more complex than hello world, it's deployment is well documented (both the CVP and the ICM Scripting Side) and it will give you a good understanding of how to move data back and forth between the two components (From/To VXML arrays).

Best of luck with your learning!


Frequent Contributor

Chris, omar 

Chris, omar 

Thank you for your reply. At the moment I'm just looking to replace the menu steps in icm and move them to Vxml.

Though I'm intending to get more involved, we are just starting off on the call studio route 

Unfortunately I've taken over a site and so the two files call back and hello world are missing 

 Can you point me in the direction to get both  call studio and icm parts



It is older, but you might

It is older, but you might want to check out the CVP Getting Started guide, it goes over a number of the basics, link below.

As far as training, the CVPD class from Cisco (typically run by Janine Graves) is very helpful, she is a great instructor and it is a great course.

Frequent Contributor



Thanks for surgeon, I've looked through that and it helps. My real issue is to understand how a call gets from an icm script to the call studio script and back again. 

I'm trying confirm what nodes are needed to be added in a icm script 



In your ICM script, you want

In your ICM script, you want to use a Set Variable node. The variable you want to use is user.microapp.ToExtVXML[]... for your Array index, use 0, and your value will be application=whatever your application name is. From within your app in Call Studio (app.callflow), you can return data back to ICM using a CVP Subdialog Return that will allow you to place data in External VXML 0,1,2, and 3. In your ICM script, you can retrieve this data by calling the FromExtVXML variable. 

That's a really high level explanation... but hopefully that will get your started. If you're in a customers environment and they already have VXML applications deployed, just do a search for application= and ICM should be able to find the nodes for you.  

Frequent Contributor



" If you're in a customers environment and they already have VXML applications deployed, just do a search for application= and ICM should be able to find the nodes for you.  "

that is the problem there are no existing applications deployed though Ive managed to locate an old ICM script below but Im not sure it is correct

Say I`ve called the Studio call flow testcallflow

Do I then add a node in ICM as

Set Variable- "http://x.x.x.x:7000/CVP"

Set Variable user.microapp.app_media_lib Value ".."

Set Variable user.microapp.UserVXMLParams Value "N"

Set Variable user.microapp.ToExtVXML[]     value "application=testcallflow"

RUN Ext. Script  GS,Server,V

What does the  following do

 Set Variable user.microapp.app_media_lib Value ".." - I understand it moves the folder up one level - but from where?

Set Variable user.microapp.UserVXMLParams Value "N"- what does this do?

Set Variable user.microapp.ToExtVXML[]     value "application=testcallflow" - Instructs Call Studio what callflow to use? in my case testcallflow

Im happy creating the scripts and then playing with the different parts but it is just the start of it - how does ICM move the call into Studio

Once a user say enters a Menu option Press 1 for sales how do you pass back the control to ICM again ? do you use do  ECC variable FromExtVXML[]  ? where do you place this in the ICM script?

many thanks


The goal is to construct a

The goal is to construct a URL that the gateway can use to run the application. The combination of media_server, the GS,Server,V and the ToExtVXML[] argument produces a URL of the form:


because the locale (en-us by default) and media_lib (app by default) are always inserted.

By setting app_media_lib to ".." you effectively remove the locale and get


which is what the gateway needs.

user.microapp.UserVXMLParams="N" tells CVP to use the ToExtVXML[] array. At the time ISN 2.1 morphed into CVP 3.0 there was another way to pass variables to external VXML servers. It probably still exists but maybe no one uses it and we all set that variable to "N".

On the return from the GS,Server,V (the success port) connect to nodes to extract data returned from your Studio app.

The most easily used element coming back is not the FromExtVXML[] array, but the ECC variable user.microapp.caller_input. It's is mandatory to set that to something in your Studio app (even something as silly as "ok") otherwise it will be called again.

Often you put the user's selection in here if what you provided in the Studio app was a simple menu and you want to know what they chose. Now your ICM app can branch to the correct skill group for (say) the user selection of "Sales" or "Service".



Another option is to look at

Another option is to look at the sample ICM scripts and Call Studio applications that come with CVP. Courtesy Callback can be complex to look at as a start, more than what you need right now, but if you don't have any other comparisons like Omar mentioned, you could look at those scripts as a start, since they are also documented in the CVP guide (both the ICM and the Studio).

CreatePlease to create content
Ask the Expert- Webex Hybrid Services Solutions