cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
8168
Views
10
Helpful
29
Replies

ICM Scripting Basics

hari chandran
Level 1
Level 1

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

29 Replies 29

Chintan Gajjar
Level 8
Level 8

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

 

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

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

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

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

 

-Jameson

Thanks James.

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.

http://www.cisco.com/en/US/products/sw/custcosw/ps1001/products_user_guide_chapter09186a00803bd137.html

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

 

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

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.

 

 

 

 

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

 

-Jameson

Hi james, Thanks for yur inputs.. i can understand wat yu are saying.. but i believe this will treat tht call as new if we follw above syntx.. let me tell yu the objective: We are sending the call frm icm to cvp fr 2nd in the same call for some ivr treatment. So cvp should identify tht call is comin 2nd.we need to by pass all the greetin routin queueing etc... So as i said earlier callid is in last position.. we need to say wat the calld is to cvp.. we had a thought of using right (string n) formula, so tht it will provide callid which is at right.... Nw the challeng is wen we check digits of callid in cvp its varies for each calls.. for eg: 11111.235 , 11111.5679....so nw cant use right (string n) fórmula also... Is thr any othr wat we can reach ths req?

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

-Jameson

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.

 

 

 

Getting Started

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: