I've been looking into this myself. You're going to need a few things:
Knowledge of SQL/Stored Procedures
Crystal Reports software
I also suggest reading up on chapter 6 of:
Creating CRS Historical Reporting Administrator and Developer Guide (found at cisco.com)
This guide is fairly useful but does not explain how to create stored procedures or how to edit the report within Crystal. It focuses mainly on connecting to the server through Crystal and how to save the report so it works with the reporting client.
I have made a few historical reports and changed a few of the existing ones. It might be worthwile for everyone who has been working on custom reports to post what they have got and we can share the reports we have made?
Here's a quick breakdown of the steps to make a custom report. Most of these steps are covered in detail in the aforementioned Cisco documentation.
1. Create the stored procedure and save it in Enterprise Manager on the IPCC server.
2. Use Crystal Reports to call the stored procedure and create a report. Save this in two version; one with charts and one without.
3. Copy these files to C:\Program Files\Cisco CRS Historical Reports\ReportTemplates\es_ES of the PC with the client installed.
4. Create an XML definition file for the report.
5. Update the Reports Catalogue XML file.
Hopefully that helps.
I am looking for an API which would get certain required parameters from the reports generated by ICM or callmanager and then use these parameters in the Script to influence routing logic. Does something like this already exist ?
If not then how do you think one can do this ?
You have got a lot infotmation in Script Editor regarding parameters in real time.
One thing that you can do, if you need a very specific information is to program an Application Gateway, so you can develop a custom application that it runs webview reports or custom querys over the real time data in the Distributors or over the historical data on the HDS servers and it returns to ICM script throug that Application Gateway.
It is not an easy thing, but you can try. What parameters are you interested on?
Hope this helps,
We are looking at a script that has more dynamic properties, that is it runs on variables whose value keeps changing in real time like abandoned calls. Something like a feedback mechanism.
Making changes with inputs from the HDS would be too slow. Is it possible to get real time information from the logger?
Or assume this case.
1.Call lands on the IVR
2.Assume that the call gets dropped.
3.The IP IVR increments the ServiceLevelAband and ServiceLevelCallsOffered parameters.
4.This data is stored in the logger.
5.There is an external DB and application added by us. The application runs over the same box as the DB.
6.The application fetches real time data from the logger and applies its logic i.e. checks if the abandoned calls has gone beyond a threshold.
7.If yes then it sends a '1' to the script, else it sends '0'.
8.The Script keeps checking for this value using the gateway node.
9.An input of '0' indicates that the number of abandoned calls are within limit.
10.An input of '1' indicates that the number of abandoned calls has exceeded the threshold.
11.The application maintains a counter which gets incremented as the calls get abandoned.
12.As soon as the threshold is exceeded '1' is passed to the script and the script applies the new logic for next 1/2 an hour and the application resets the counter.
13.After 1/2 an hour the script logic normalises.
You can store that information in a Microsoft SQL Server database, and use the SQL Gateway to read it. You can mantain the data in variables in ICM.
Hope this helps,
I am novice for ICM scripting. I would like to know
1) why we need Gateway Object to communicate with the external applications providing customer details when we have "Database Lookup object" to fetch any data from external database(customer specific) and formula to manipulate the same.
2)Also , Is the external application always vxml based or could be any other language based (like java).If so , what is the interface in that application ?
3)Instead of ICM script contacting the external application, can the application initiate the communication with the script,whenever a particular event occurs?
Thanks in advance for your reply.,
I am trying to answer your questions:
1) With an 'Application Gateway' you can implement an external application that it can communicate with ICM. You have to implement GED-145 in your application. With the 'Database Lookup' Object you can only access a Microsoft SQL Server database in read mode, and you can only execute querys based on primary key. With an 'Application gateway' you can develop a custom apllication that can read, write or update using whatever format you want to implement in your custom application.
2) The external application clould be written in your preferred language (.NET, java, vxml). You have got to implement GED-145 (application Gateway) to contact ICM.
3) I think that this is no possible. You always hasve to access the application from the ICM scripts, but you can execute an Administrative script in ICM that it asks the Application Gateway for those specials conditions.
Again, hope this helps.
Thanks for your reply.
1) Is there any link, which explains GED-145 specification?
2) Apart from providing customer related details to the script, what else could be
the value added services the external application may provide to the script typically?
You have to ask with your Cisco Account Manager to provide you with GED-145 specs.
The added services that you can provide to the script could be read data from databases, from CRMs and you can upload data in databases, CRMs or custom applications with data from the scripts or with results from the scripts.
Hope this helps,
Hey Matt, just came across your message...
what kind of changes you making to your reports? i've been stuck making changes to the canned reports for a couple months (off and on when time permits)..
I am new to using IPCC and would like some custom reports. Do you know of anywhere, where reports are shared.