04-10-2008 07:12 PM - edited 03-14-2019 02:04 AM
Hi,
Could you please tell that whats the scope of ICM user variables, are they global or local?
lets say i assign "userMIG_open=1" in a a script
then what will be the value of this variable used in another script?
Regards
Arpit
Solved! Go to Solution.
04-11-2008 01:25 AM
Hi again Arpit,
I hope to be able to answer this question to your satisfaction, there is a lot to say on this topic.
This should answer your question:
http://www.cisco.com/en/US/products/sw/custcosw/ps1001/products_qanda_item09186a0080327503.shtml
In brief, the value will be 1 and available for another script or for all the scripts if you make it persistent.
Please be aware of this caveats:
http://www.cisco.com/en/US/products/sw/custcosw/ps1001/products_tech_note09186a00801e7a18.shtml
As the doc is saying they are up to 40 characters in length, with no specific limit to the amount of them,
the data collected is stored in a specific way:
The Persistent_Variable table temporarily stores some range of user variable values
which become out-of-scope once the ICM script that uses them finds a target, otherwise
the values are in the Router memory.
CSCms27082 dictates the name you chose please avoid any reference to a "."
There is no plans to relax the checking of "." character in user variable. By allowing "."
character in user variable we might introduce ambiguous grammar since "." character is already
used to define the syntax of expressions such as below for example:
It is bad practice to allow unambiguous grammar so this is why engineering team has moved
away from allowing the character in user variables.
Regards,
Riccardo
04-11-2008 01:25 AM
Hi again Arpit,
I hope to be able to answer this question to your satisfaction, there is a lot to say on this topic.
This should answer your question:
http://www.cisco.com/en/US/products/sw/custcosw/ps1001/products_qanda_item09186a0080327503.shtml
In brief, the value will be 1 and available for another script or for all the scripts if you make it persistent.
Please be aware of this caveats:
http://www.cisco.com/en/US/products/sw/custcosw/ps1001/products_tech_note09186a00801e7a18.shtml
As the doc is saying they are up to 40 characters in length, with no specific limit to the amount of them,
the data collected is stored in a specific way:
The Persistent_Variable table temporarily stores some range of user variable values
which become out-of-scope once the ICM script that uses them finds a target, otherwise
the values are in the Router memory.
CSCms27082 dictates the name you chose please avoid any reference to a "."
There is no plans to relax the checking of "." character in user variable. By allowing "."
character in user variable we might introduce ambiguous grammar since "." character is already
used to define the syntax of expressions such as below for example:
It is bad practice to allow unambiguous grammar so this is why engineering team has moved
away from allowing the character in user variables.
Regards,
Riccardo
07-13-2010 09:20 AM
Hi Riccardo,
perhaps you can answer to me...
In Configuration Manager - User Variable List I can associate a variable to an object; then I can refer to this variable within an ICM script (i.e. Service.MyService.MyVariable).
Ok, this is true if the object is one like Service or SkillGroup or CallType or others. But if the object is, for example, DialedNumber or MasterScript, how can I refer to them within an ICM script?
Are there some additional configurations to do? The only object-types I can see in "Formula Editor" in an ICM Script are:
ApplicationGateway
Call
CallType
EnterpriseRoute
EntSkill
NetworkTrunkGroup
Peripheral
PeripheralMRD
Region
Route
Schedule
Service
SkillGroup
TrunkGroup
It seems that I can associate a variable to all the object but I can refer to only a portion of them. It is too strange...
Thanks a lot for help,
Andrea
07-13-2010 09:36 AM
But if the object is, for example, DialedNumber
That's there. Call.DialedNumberString
Regards,
Geoff
07-14-2010 12:52 AM
Thanks for your interest, but DialerNumberString is a property of the Call object; insted, by Configuration Manager, I can associate a variable to the DialedNumber object as you can see below:
Now, my question is: inside an ICM script, how can I refer to MyVariable in Dialed Number object?
Thaks a lot,
Andrea
07-14-2010 05:43 AM
You are on the wrong track. You need Call-specific variables in your Routing Script, not global variables.
The most common use for User Variables (globals) is for an interaction between Admin Scripts (that control opening hours, setting a global) and a Routing Script that checks the global to see if the script should play the closed message or queue the call. The type of variable from the drop down would be User Variable.
What are you trying to do?
Regards,
Geoff
07-16-2010 01:44 AM
I Geoff,
I know that I cold configure a User Variable but my need is the following:
I want to monitor, in several ICM scripts, the variuos bad exit of some type of nodes: Application Gateway failure, Translation Route to VRU failure, RunExternal Script Failure etc..; when the different kind of fails raise a threshold, I send an e-mail by an CRS Script with the description of the problem.
So, I should create, for ICM script1:
script1_AGW_Counter, script1_TRtoVRU_Counter, script1_CrsScript_Counter;
in the same way, for ICM script2:
script2_AGW_Counter, script2_TRtoVRU_Counter, script2_CrsScript_Counter;
In this manner the number of Global variables grows very quickly.
If I could associate, as I can by Configuration Manager, the three counters to the Master Script Object, I should configure only three counters by User Variable List tool:
MasterScript.AGW_Counter, MasterScript.TRtoVRU_Counter, MasterScript.CrsScript_Counter; whitin ICM scripts I could refer to each variable increasing the different counters for each ICM script I need.
The problem is that I cannot refer to a User Variable associated to a Master Script becase I can see the MasterScript object in ICM script...
So, what is the purpose in association of a User Variable to a Master Script Object if I cannot refer to it in ICM routing/administration script? (same consideration for the Dialed Number object).
I hope I have explained my needs well.
Thank a lot,
Andrea
07-18-2010 07:21 PM
Hi all,
Can I ask where I can find a list of all avaiable ICM variables? I mean a complete list of ICM variable.
I try to find a document like that./.
Regards,
Thanh
07-18-2010 10:07 PM
I want to monitor, in several ICM scripts, the variuos bad exit of some type of nodes: Application Gateway failure, Translation Route to VRU failure, RunExternal Script Failure etc..;
OK, that's a fairly common requirement.
What I do is send all failures (coming out the X port) to different "F" (failure) scripts: XX_F_RES (Run Ext Script), XX_F_TR (Trans Route), XX_F_AG (application gateway) and so on using a "Go To Script" node.
In each of these failure scripts I set a corresponding call type with similar names - XX_F_RES, XX_F_TR, XX_F_AG etc, and then Release the call - or take other appropriate action.
Prior to the "GoTo Script" I set a call variable that indicates where the call is coming from.
Now we are all set.
With a WebView real-time report running on these "XX_F_" call types, I can immediately know when I'm getting a failure. Of course, I have to be looking at that.
A historical report can be used to tell us historical info. Can't we schedule this and email it? Yeah, but it doesn't discriminate.
If I check the AW DB and find out the CallTypeID (primary key - starting at 5000) for each of the "XX_F_" call types, I can query the Route_Call_Detail table for routes that have these as the final call type. I can run this SQL query using OSQL from a batch file and then make it a scheduled task and use a Java to send an email. The batch file can know when the OSQL returns no data, and not send email. Make it run every hour say. The call variable tells us which script the error is being raised in.
I can't do exactly what you want.
when the different kind of fails raise a threshold, I send an e-mail by an CRS Script with the description of the problem.
but I can get close.
Even if you could do the variable association you wanted, I can't quite see how you could use CRS to send an email. But maybe you have that figured out.
Regards,
Geoff
07-19-2010 01:15 AM
I Geoff,
your solution is a very good solution... thanks a lot.
In any case, you can send an e-mail by CRS easily: after you have configured the e-mail subsistem (server address an default sending address), you can use the three e-mail steps I reported below and... that's all:
Thanks a lot for your patience,
Andrea
07-19-2010 05:44 AM
Andrea,
I know that CRS can send an email. What I was interested in was how you would trigger this to occur.
Was this to be done in the context of a voice call? Would each call check some parameter (has to be in a call variable) and if certain conditions were correct, send an email?
Regards,
Geoff
07-19-2010 06:09 AM
I Geoff,
at the moment we would use the email only for alerting purpose; when a theshold is reached an email is sent.
Regarding the voice treatment, it depends by the type of failure: a "Queue to skill" failure determines a release of the call; instead a VruScript failure may determine a queuing to a Skill...
We are in a study phase and we are exploring various possibilities.
Thanks a lot,
Andrea
07-19-2010 08:01 AM
at the moment we would use the email only for alerting purpose; when a theshold is reached an email is sent.
Andrea,
Yes, I gathered that. What I am asking is - what triggers CRS to construct send the email? It has to be an incoming call.
That means that every call needs to check some condition and if the condition has reached a certain state, send an email and carry on with the processing. Was this the idea?
Regards,
Geoff
07-19-2010 08:12 AM
Yes it was, when the failure allows to do.
Regards,
Andrea
07-19-2010 08:40 AM
Yes it was, when the failure allows to do.
Exactly. Now you can see the problem.
Let's say the trans route to IVR failed. Call comes in, hits a route point in CUCM, tries to trans route across to the VRU but it can't - ports are full, triggers are all used, IVR is down - whatever.
Now you can't run a CRS script so no email can be sent.
Regards,
Geoff
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: