cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1819
Views
10
Helpful
8
Replies

Custom Java Steps in IP-IVR 7.0

sfairall
Level 1
Level 1

We have a customer who is upgrading from version 3.x to 7.x. They have scripts that make extensive use of customised steps, so we have avoided going to 8.x (as advised by Cisco) as there are issues supporting custom Java code under that version.

I have followed the "new" process of loading the jar files through Document Management, I have also attempted to create an AAR file with the appropriate manifest files (where it appears the only mention of custom steps is now made for this platform) all to no avail. The customised steps do not appear in the editor, nor does it appear that the java steps that used to be available are included at this stage either.

My question is this: does anyone understand what steps we need to take to convert the current environment to version 7? The documentation supplied by Cisco is very lean on detail (unfortunately common), and we have a tight timeframe to get it done.

8 Replies 8

jasyoung
Level 7
Level 7

I haven't played with custom Step stuff in ages, but there are a couple places you can get information. The best actual documentation you'll find is the old CRA SDK. The only place I know for sure you can get it is off an installed CRS/IPCC 3.x system. Your customer's old system should have it, if not, ping me offline and I can probably arrange to get you a copy. The other place you can look is the IP Phone SDK on Cisco's developer site. The 7.1(2) SDK has a simple PhonePush custom Step to send XML commands to IP phones, and looking through that should give you some insight on how custom Steps are bolted into the Engine and the Editor.

The SDK download can be found toward the bottom of this page: http://developer.cisco.com/web/ipps/docs

Custom Steps are certainly handy, but you can do pretty much anything you need with Java expressions these days. I'm pretty sure all the custom Step infrastructure is still there, it's just that there isn't a (supported) path to access and change the necessary files on the server with UCCX8. I've poked around in the past and it looks to me like you could do it if you're willing to root the customer's machine and live without TAC support. I don't know what Cisco's official position is on UCCX8 custom Steps. It seems like you might best serve your customer by converting away from custom Steps.

The Expression Editor completely replaces Custom Java Steps. Once the platform loads your JAR correctly, the Expression Editor in the CRS Editor, hooked up through the server, will see your custom classes through Java Reflection and you will be able to instantiate the class and use the methods on the class in the call flow.

The UI in the Expression Editor to instantiate the class is strange, and it's not obvious where you have to edit to name your class, but once you figure that out, you will see the methods of the class and you'll be good to go.

Regards,

Geoff

Thanks for your assitance, however I believe that this is related to the "Java" steps. I'm actually talking about fully developed "Custom

Steps", with the GUI customiser etc, so that they appear the same way that the standard steps do in the pallet and when you double click on them you get the ability to customise only variables etc that are to be used for that step.

The documentation on the current installation is still from 2002 and the SDK examples etc have not changed in all this time either. My concern is that Cisco may have silently discontinued support for these types of steps and that we will be left with no option but a complete overhaul of all the CRS scripts.

Any help gratefully appreciated.

Well, you're quite right. Cisco never heavily advertised the custom Step and Subsystem capability, and there wasn't any advertisement at all past CRS 3.1 or 3.5. But, from what I've seen, the infrastructure is still there in UCCX7 and you ought to be able to transfer those components over if you review the procedures in the SDK. That IP Phone SDK comes from 7.1 and still has the CRS example in it.

Geoff correctly points out that in addition to Java expressions directly in the script, you're also able to upload custom classes into the Engine and reference them from scripts as well.

What is it your customer's custom Steps are doing for them? Perhaps it's something that could easily be converted. Can't say when we don't know what you're trying to accomplish.

Unless the custom steps are available in the editor you cannot even open the scripts to

upgrade them to the new version. So if there is no way to add the steps we will need to remove them in the current verion, migrate

them and then re-implement in straight Java code within set nodes - not exactly straight forward.

The steps are used to do various manipulations of data, and while most if not all of these could be implemented in the set nodes it exposes Java code to potential non-programmers, and increase the possibility of misconfiguration or simple error. Using the custom steps provides validation of required data and consistancy of implementation.

The fact is that this was a feature that was supported when implemented in CRS 3.x, and there is no definative explanation of what has happened to it. If you look into the documentation for CRS 7.x you will see that there is an explanation of the AAR file type which includes a manifest option for steps. However this does not appear to work, at least in the way I have interpreted and implemented it.

I can see soem registry changes in keys that look like they could be related to custom steps, but no change in the editor pallet is evident. I would like Cisco to provide a definative response to what the status is on this issue. This probably needs to come from the DE's, so hopefully one of them reads this soon!

Don't hold your breath for developers to hop on the support forums.

Set aside the AAR upload stuff for now. Follow the directions for the old CRA SDK; I think that will still fly on UCCX7. The simple version, as I pointed you to above, is found in the README for that sample PhonePush step in the IP Phone SDK. Throw your (recompiled) JAR files in \program files\wfavvid on the server, touch up customeditor.xml and customengine.xml there in the same directory (ought to copy right over from your 3.x system) and see what you get.

As for future support, I've poked around on a UCCX8 system and all that stuff looks like it's still there, but I haven't tried it. You just don't have a supported way to touch the necessary paths on disk short of adding yourself root access. Do-able, but if you run into problems, TAC is going to be of zero help. You might drop ask-icd-ivr-pm@external.cisco.com a note and ask about the ongoing support situation for custom steps and subsystems.

If you'd set aside your preferred solution for a minute and tell us more detail about your actual business problem, what data you're trying to convert and how, we might be able to help you build a custom Java class the "new" way. This will accomplish your stated goal of encapsulating the code and calling it with nicely defined entry and exit points, and be more conveniently portable to new UCCX versions.

If you'd set aside your preferred solution for a minute and tell us more detail about your actual business problem, what data you're trying to convert and how, we might be able to help you build a custom Java class the "new" way. This will accomplish your stated goal of encapsulating the code and calling it with nicely defined entry and exit points, and be more conveniently portable to new UCCX versions.

Good answer.

Regards,

Geoff

sluijterr
Level 4
Level 4

Hi,

Meanwhile we're more than 2 years ahead. I’ve got now a similar question from a customer of us.

He wants to upgrade from IP IVR 3.x to IP IVR 8.x (and later on to 9). They also have scripts that make extensive use of customized Java step (for a Oracle DB connection).

This topic starts with “avoided going to 8.x (as advised by Cisco)”. What is Cisco’s advice on this moment? Still avoid IP IVR 8 and higher for this kind of integrations? Or is there an alternative way of doing?

Thnx in advance.

Rg Remco