Cisco Support Community
Showing results for 
Search instead for 
Did you mean: 
Community Member

Nodes in ICM Scripts



Can any one explain me the below clarification on ICM Script editor 8.5

1. What the Call type node used for, and what will happen if we does not use that node?

2. On enterprise Skill Group node, we can see Queue type Priority how does not functions?

3. Also how to roll back the script to previous version?



Hi,RE 1: Call Types are there


RE 1: Call Types are there mainly for reporting. They are like little traffic cameras that count the cars and are able to see what's happening them, until they reach the next traffic camera or end somehow, ie. picked up by an agent, abandoned, etc. All these states are recorded by a CallType, and this information is available both in an aggregated form (Call_Type_Half_Hour if you use half hour reporting interval or Call_Type_Interval if you use a 15 minutes reporting interval).

What happens if you don't use them: confusions in reporting.

I would certainly recommend using them. For instance:

  • couting the number of calls by an IVR entry,
  • measuring the number of calls picked up within the SL interval by inserting a CallType right before the call is queued in a script.

RE 2: can you please explain why you need to use Enterprise Skill Groups? It's there for historical purposes but I cannot really think of a situation when Enterprise Skill Groups would be necessary. Simple Skill Groups are fine in almost all situations.

RE 3: Use the Script Explorer function, choose the desired script and hit Activate.


Some continued discussion on

Some continued discussion on #2, since Priority shows up all over the place in queuing...

By default, all queued calls have a priority of 5. You have the option of changing this priority (either in a Queue node, or in a Queue Priority node) to a value from 1 to 10. Lower numbers raise the priority, higher numbers lower the priority. When multiple callers are in queue, the caller with the highest priority (lowest number) who was waiting the longest will be answered first. Here's a simple example:

  • Caller A has priority 3, has been waiting 4 minutes.
  • Caller B has priority 5, has been waiting 5 minutes.
  • Caller C has priority 5, has been waiting 6 minutes.

In this example, Caller A would be answered first, because he has the highest priority. Then, Caller C would be answered, because he has the longest wait time within the priority 5 callers.

This of course gets a little more complex when you start dealing with multiple skill groups and such... but the end result is basically the same. When an Agent becomes ready, he will be presented with the highest priority and longest waiting call that could be presented to him - These could be callers queued to Skill, Agent, Service, etc.


Community Member

James,In the above example yu


In the above example yu have mentioned priority 3,5,5. Does it mean tht we need to set his priority anywhere?

Why because in my setup, we are not setting priority anywere. Just in one Q to Enterprise Skill Group node(English skill) setting as priority 5, in next Q to Ent Skill Group node(Spanish Skill) setting as priority 4.

Please let me now how it will work on each node. We are setting Priority for the callers anywere, jus giving priority in Queue nodes.

For any queued call, priority

For any queued call, priority will always default to 5 unless the priority is changed in a Queue node or a Queue Priority node. All Queue nodes start at priority 5 unless you change it. The result for the caller is the same regardless of how you change the priority.

Priority always applies to the caller and the skills that they are queued to. For example:

  1. Caller A dials in, and is placed in queue to Sales1 at priority 5.
  2. Caller A continues to queue, call progresses through Sales2 queue node with priority 3.
  3. Caller A is now queued to both Sales1 (at priority 5) and Sales2 (at priority 3).
  4. An Agent becomes available, who is in both Sales1 and Sales2 skill groups
  5. Agent is delivered call from Caller A. The call is delivered under the Sales2 skill group, as the call queued under a higher priority in that skill.

In the above example, if the caller queued to Sales1 and Sales2 at the same priority, and an Agent with both skills answered the call, there would be a 50% chance of the call delivering to the Agent under the Sales1 or Sales2 skill.


In the scenario you give of English skill callers queuing at priority 5, and Spanish skill callers queuing at priority 4... Any agent with both English and Spanish skills will always first be delivered any Spanish callers in queue, and then any English callers.


Community Member

James,Thanks for the above


Thanks for the above explantion, i will wrk it out and caome back if i have any challenge. If am queueing a call in a Queue to SG (English Skill), when call is in queue am playing moh, delay message etc. and am again send the same call to another Queue to SG(Backup_English Skill). Ther also the caller is playing moh, delay message.

My doubt is to which queue the call will get deliver. Let say agent is available in first queue, so the call will go to tht or still wait in second queue. Also what is the case if agent become available on both at a same time.


Note: We dont set any priority in the senario its default only. Please explain.

In the scenario you give, the

In the scenario you give, the caller would be queued to both English and Backup_English skills. If an Agent becomes available in either skill, they will take the call.

The chances are incredibly slim of two Agents becoming available in the same millisecond, so I wouldn't worry too much about that.

If one Agent has both the English and Backup_English skill, and a caller is queued to both in the manner you say (with music in between Queue nodes), the Agent would receive the call in the English Skill, since the caller was queued to that skill for longer.

If you wanted to queue to Backup_English and no longer queue to English Skill, you can use the Cancel Queuing node before queuing to Backup_English.


Community Member

Thanks, what the case if i

Thanks, what the case if i don't have any hold music between two Queu to Skill group node. I have Queue to Skill group node, If node to check the a small thing, than again English_ Back up skill group. I assume it should also work. Please advise

If there is no music between

If there is no music between the two Queue nodes:

  • If agents are ready in English and English_Backup when the call arrives, it will deliver to English skill.
  • If the caller waits in queue, and an agent becomes ready who has both skills, the call will deliver to that agent under one of the two skills at random (50% chance of each).


Community Member

James, What am trying to


What am trying to understand is, if call comes to English Skill where all agents are busy. The next node is English_Backup Skill the call ll go there. No agents are free there too. But in the mean while an agent Become available in English Skill. Will the call get patched to the agent?????

The call will be in queue on both the queue to SG node is it??

Question might be silly, as i don't have any test agents to login i could not able to simulate this senario. Please explain

Yes, the call would be in

Yes, the call would be in queue to both Skill Groups. Any Agent who becomes ready in either of the Skills would get the call.


Hi,I hope this will help you.


I hope this will help you.

++ call comes to 1st Skill where all agents are busy.

++ its went to the next node  Backup Skill the call ll go there. No agents are free there too.

++it plays the queue music. Once the agent Become available in 1st Skill group.  call will route to the agent.

The call will be in queue on both the queue to SG node.

two way of scripting .

case one:


case two:

Community Member

Hi Gerge,Thanks for your

Hi Gerge,

Thanks for your above answers, I have a small clarification on above Question#1. Lets say my ICM is working fine with CUIC reporting gives the reporting for calltypes as well. If am creating a new call flow there if i want it calls to be reported via CUIC. Jus by creating a call type in calltype explorer and adding it ina call type node in fornt of the queue is enough ?

Will that work or do we need to do any other configuration.

Hi, yes, that should be the

Hi, yes, that should be the main reason calltypes are there, so yes, that's the correct place.


Community Member



Thanks...I have one more challenge that the play media PM is not getting played. We are setting wav file in Set variable node peripheral variable3. the next node is runext script node. where we are trying to play the file using PM. The prompt is not playing but the call is passing via yes condition and executing to nodes which is given post to that.

The call is not getting dropped, but the prompt is not playing instead and the call is also passing via that. We have tried different wave file, checked the format of the wave file, also checked the PM configuration in configuration manager. All looks fine, where could be the issue.?

Hi, what is PM?Also, is this

Hi, what is PM?

Also, is this IP IVR or CVP?


Can you provide a screenshot

Can you provide a screenshot of the Network VRU Script configuration for your Play Media?

Have you set all of the following variables properly?

  • Call.user.microapp.media_server
  • Call.user.microapp.locale
  • Call.user.microapp.app_media_lib

The media_server and app_media_lib values cannot be the same as what you use for CVP Studio apps.


Community Member

Hi James,I didn't setCall

Hi James,

I didn't set

  • Call.user.microapp.locale

Is that very much important inorder to Play media??

yes its required, if you don

yes its required, if you don't set it defaults to en-us.

by the way for failed Call what your CVP logs says, please post them here if possible.





Community Member

Hi,We are having a IF node,


We are having a IF node, in which the Yes is going to nodes(Call type a and call type b) and No conditions are pointing to the nodes(call type c and call type d). After that the call is getting queued. My doubt is can we take the reporting for all 4 call types on the attached scenario. Am trying to figure out that whether the following four reports can be generated using above senario: call type a, call type b , call type c and call type d...

 Please explain




Can you provide a screenshot

Can you provide a screenshot?

While applying Call Type A followed immediately by Call Type B will increment the "Offered" count for both, only the most recently applied Call Type will include proper statistics for Answered, Service Level, speed of answer, etc.

A call only ever has a single active Call Type at a time. When you apply a new Call Type to a call, the previous Call Type gets incremented in the "Overflow Out" field, and no more data is written about the previous Call Type after that.


Community Member

HI James,  Please find the

HI James, 


Please find the sample screent shot 

Hari,Based on the screenshot


Based on the screenshot you provided, I would expect the following in Call Type reporting:

  • For each "Kia" caller, PLATINUM_KIA Call Type would have its CallsOffered and OverflowOut incremented by 1.For these same callers, PLAINUM*_KIA Call Type would have its CallsOffered incremented by 1. All statistics about queuing for that caller would be kept in the PLAINUM*_KIA Call Type.
  • For each "Hyundai" caller, PLATINUM_HYUNDAI Call Type would have its CallsOffered and OverflowOut incremented by 1. For these same callers, PLATINUM*_HYUNDAI Call Type would have CallsOffered incremented by 1, and all statistics about queuing for that caller would be kept in the PLATINUM*_HYUNDAI Call Type.

It seems very strange to me that you would assign one Call Type, then immediately assign another in this situation. Both would have the same CallsOffered count, but only one will have queuing and Agent delivery statistics. The first Call Type assigned (PLATINUM_KIA or PLATINUM_HYUNDAI in this case) doesn't seem to have any real purpose here.


Community Member

Hi James,1.Please let me know

Hi James,

1.Please let me know what do you mean by : ""Call Type would have its CallsOffered and OverflowOut incremented by 1""

2.Explanation of the screen shot: Based on the If node the call is going Kia/Hyudai. We have Platinum and Platinum+ caller of which one will be high priority and other is low. The prioity we are setting in Queue to Ent Skill Group node.

Now the requirement is to get reporting for Platinum and Platinum+ callers, that is the reason we had two call type next to next. I have designed this jus an assumption.

From the screenshot we should get reports for 4 different call types.

Please let me know will it work or any other god way to achieve.




1 - CallsOffered and

1 - CallsOffered and OverflowOut are data in Call Type reporting. OverflowOut signifies that a new Call Type was applied. Only one Call Type is ever active on a call at any time. So as soon as you apply PLATINUM+_KIA in your example, PLATINUM_KIA is no longer active, and none of your queue data will record on that Call Type.

Based on your screenshot, you will only get queue reporting in your PLATINUM+_KIA and PLATINUM+_HYUNDAI Call Types.

If you want PLATINUM_KIA to only apply to Platinum Kia calls, you need another IF node to differentiate between Platinum and Platinum+, and then only apply a single Call Type before queuing.

For the Platinum+ priority, I would use an IF node after beginning queuing to check for Platinum+ status, then a Queue Priority node after that if the caller is Platinum+.

If you haven't yet, please read the UCCE Reporting Guide:



This thread is getting far, far, far off from the original intended question. I suggest if you have new questions, please start new threads for those.


CreatePlease to create content