06-30-2014 10:43 PM - edited 03-14-2019 01:35 PM
Hi All,
I have little experience in Cisco ICM, this is the first time am working on ICM scripting. Is their any documents to learn about formulae which we use in nodes in the script? any documentation would be appreciated.
Note : I have already have
Scripting and Media Routing Guide Cisco Unified ICM/Contact
Center Enterprise & Hosted Release 9.0(1)
Please let me know any other documents which says clearly about the formula usages..
regards,
Hariharasudan.R
06-30-2014 11:58 PM
Not aware of any such documents, i think there is no document for this.
but similar kind of course is available:
"Cisco IPCC Enterprise Advanced Scripting"
or you can also learn by your self by doing some lab assignment and walking through already deployed scripts.
Regards
chintan
07-01-2014 09:22 PM
HI,
Its not lik am stuck in some where on Scripting, am new to this. When I look script I can understand the flow but the formula written on the nodes is not getting understandable. below are some examples:
Call.RouterCallDay
concatenate("application=A BC;MenuFlag=",Call.PeripheralVariable1,";callid=",Call.RouterCallDay,".",Call.RouterCallKey)
concatenate("rf",substr(Call.user.microapp.FromExtVXML[1],4,5))
The above are the examples which I don't know what it does. Lookin for some help/documents to learn above things.
regards,
Hariharasudan
07-01-2014 11:16 PM
hi,
first of all the variables:
Call.RouterCallDay = value that indicates date on which Central controller processes the call
Call.RouterCallKey= it will be unique key for all the calls handled by software after midnight, Combination of Router Call key and Day will make call unique across all the calls.
now coming on to the function:
//concatenate("application=A BC;MenuFlag=",Call.PeripheralVariable1,";callid=",Call.RouterCallDay,".",Call.RouterCallKey)//
the concatenate() does concatenation of argument provided in example:
lets assume your:
PeripheralVariable1 = Y
RouterCallDay = 151027
RouterCallKey = 333
then the concatenation value will be : "application=ABC;Menuflag=Y,callid=151027.333"
most probably you will assign above value to some variable and pass it on.
in the same way:
substr(String s,i,j) function will fetch the sub string from s starting from word at place i to count of J word.
the output of
substr("ABCDEFGHIJK",4,5) = "DEFGH"
(word starting at 4 and continues till 5 word)
//concatenate("rf",substr(Call.user.microapp.FromExtVXML[1],4,5)) will concatenate rf with sub string of fromExtVXML[1].
you can always refer built in functions formula editor, also there is good explaination given in Script editor help menu.
Chintan
07-02-2014 05:47 AM
HI Chintan,
Thanks so much for your time, its really appreciated. is there any documents or video tutorial in cisco websites for the same?
regards,
Hari
07-02-2014 07:20 AM
Hari,
Each of the formulas in Script Editor are pretty well documented in the help. From within the Formula Editor, the "Built-In Functions" tab has a lot of information.
If I'm looking for information about one of the variables (such as Call.RouterCallKey, Call.RouterCallKeyDay, CallType.*.AnswerWaitTimeToday, etc.), I find that the Cisco document "Database Schema Guide for Unified Contact Center Enterprise" is incredibly useful. Don't attempt to read it all the way through... just search for the term you're looking for.
This formula:
//concatenate("application=A BC;MenuFlag=",Call.PeripheralVariable1,";callid=",Call.RouterCallDay,".",Call.RouterCallKey)//
looks like it is for a call to a CVP Studio VXML application. CVP Studio is another scripting environment, centered around IVRs. If you need to learn CVP scripting, I would definitely take a course on it if you can (http://www.trainingtheexperts.com/6000.html) - there are a lot of nuances to CVP scripting that are hard to get without instruction, and the Cisco documentation is quite incomplete.
-Jameson
07-02-2014 10:39 PM
Thanks James.
07-04-2014 02:31 AM
Hi,
Anybody having this book Formulas (Release 4.6.2). It will be available in below link in the web page there is no sample figures present. Also when I tried to download it says page not found.
If any one downloaded past means please attach here. later versions also fine.
07-04-2014 03:47 AM
Hi James/Chintan,
I need a clarification on Set variable node, below is the senario:
Condition in DN node:(if the given DN there go to this set variableA else goto set variableB)
Inside set variableA we have formula: concatenate("application=App ABC;",concatenate("callid=",Call.RouterCallDay,".",Call.RouterCallKey))
Inside set variableB we have formula: concatenate("application=App XYZ;",concatenate("callid=",Call.RouterCallDay,".",Call.RouterCallKey))
So either the DN condition is true or false both the cases the call to go to one set variable and run appropriate application.
After running the application, the call is coming to RUN Ext script node(GS,server.v)..
My Understanding on above senario:
Set variable is going to run the application/call flow ABC/XYZ from CVP(Which is developed with the help of Cisco Call studio).
RUN ext Script node: Its going to execute a application/call flow which is developed with the help Cisco Call studio.
My doubt:
Both the nodes doing same work(executing epplication). Then what is the difference, why we use two different nodes.
regards,
Hari
07-04-2014 04:05 AM
Your Understanding is correct,
but with few modification: set node will set variable to value of to some other variable,
and this variable will be passed to VXML server to invoke application,
Run External script node will actually invoke application, by instructing CVP and passing data whatever you have set.(ECC variables).
now coming to your doubt:
which node is getting duplicated? Run ext or Set node ?
if possible can you post the screenshot of your script? this may be because of You are collecting Different data on Both VXML application and treating them in different ways.
regards
Chintan
07-11-2014 05:27 AM
Hi Chitan,
I have understood the differeence bet set variable and Run ext script node. But i have different question:
We are sending Callid to CVP from ICM, in CVP that Callid is getting stored in VXML[3]. The same VXML[3] also storing 4 more information (acct number, custname, custaddress, Callid). So to we need to say about the Callid to CVP on which position it starts.
We also can with a logic the swaping Callid to first position in VXML[3], so tht we can say using substr formula..
Is there any other way we can achieve it without swaping the positions.
07-11-2014 07:00 AM
Hari,
CVP does not care about what position the data is in for the user.microapp.ToExtVXML array. It is only looking for this format:
variablename1=value;variablename2=value;variablename3=value
You can put as much as you like into each of the 4 "cells" of ToExtVXML, as long as the resulting text is within the variable length. The CVP app will automatically create session variables for itself using the text from the ToExtVXML array as long as you're using the format above. Order of variables does not matter.
-Jameson
07-11-2014 07:21 AM
07-11-2014 08:49 AM
Hari,
Can you provide more information about the call flow? How is the call getting to CVP the second time? The RouterCallKey and RouterCallKeyDay should stay the same throughout the call in a normal call flow. The UCCE variable "Call.user.media.id" should stay the same as well.
It sounds like this second CVP script visit may be the result of a new call leg. Is this the result of an agent transfer? Can you pull some sample data for a complete example call from the Termination_Call_Detail table in UCCE?
-Jameson
07-11-2014 09:55 AM
Hi James,
We are providing the EWT to the calller, if the caller doesn't want to wait at a certain amount of time he can go for self service option. So here we sends the call to CVP.
Yes for this requirement RouterCallKey and RouterCallKeyDay must be same then only the CVP will come to know that this is a existing call when it enters 2nd time.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide