ICM custom functions

Unanswered Question


Is anybody using any custom functions in ICM?

I want to build a function that outputs a particular skillgroup's LoggedOn value but I want to be able to pass the name of the SkillGroup via a variable.


Set Call.PeripheralVariable2="SomeSkillGroup"

Set Call.PeripheralVariable6="SkillGroup."&Call.PeripheralVariable2&".LoggedOn"

If Call.PeripheralVariable6<1 then

some action.

I have this problem too.
0 votes
  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 0 (0 ratings)
david.macias Mon, 01/26/2009 - 08:33

I love custom functions and use them all the time. You shouldn't have any problem doing what you're trying to do.

In the set variable node do the following:

customfunction(skillgroup), then do the comparisons you wish to do.


david.macias Mon, 01/26/2009 - 08:57

Create a new function userTest with 1 Parameter. Then in the Definition:


Now in a Set Variable node put PV2 = userTest(MySkillGroup) and upon execution PV2 = SkillGroup.MySkillGroup.LoggedOn

Now, I've not tested this, so let me know if it works.


This is what I'm doing but I don't know if is right.

Custom Function:

Name: userTest1

Parameters: 1



On Script:

Node1: Set Variable

Call.PeripheralVariable2 = "VoiceOps"

Node2: Set Variable

Call.PeripheralVariable6 = userTest1(Call.PeripheralVariable2)

Node3: If


True --> Translation Route

False --> Label

thanks for your help

david.macias Mon, 01/26/2009 - 11:27

Yeah, that looks right. You're using too many PVs, but shouldn't matter for what you're trying to do.


david.macias Mon, 01/26/2009 - 11:57

Try value() around the concatenate() function. What does the real time data tell you? You're sure that the name of your skill group is SkillGroup.VoiceOps.LoggedOn?


Edward Umansky Tue, 01/27/2009 - 09:53

Don't concatenate it's not a string. Type it directly like this with no quotes:


Edward Umansky Tue, 01/27/2009 - 11:07

You're right, this won't work the way you are attempting. That function would expect a symbol as a parameter and call variables are passed as strings. What you are attempting to do is convert a string object into a symbol. As far as I know there is no way to do this in ICM. You will need to use some IF nodes (or the if function) or a route select to test your call variable setting and branch to the appropriate skill group variable.

david.macias Tue, 01/27/2009 - 11:20

This might do what you want:


userFunction Parameters: 1


In the script have an if node that has userFunction(SkillGroup.VoiceOps.LoggedOn).



This Discussion