Application development for Cisco ICM

The custom server supports input from one application programming environment at a time. It must be started in either Java or state table mode.

State tables

A state table specifies the logic of the interaction of an application with callers and contains a sequence of instructions (states) that perform the activities of a voice application. Each state defines an action to be performed. The result of each action controls which state is executed next. A state table can call a custom server, invoke other state tables, and use prompts and voice segments. The Cisco ICM application calls functions from the Cisco ICM custom server.

Blueworx Voice Response detects an incoming call and requests routing instructions from the ICM. The ICM responds with routing instructions for the calling application. A possible sequence of Cisco ICM custom server functions in a routing dialog is:
  • Get_CallID
  • Route_Request_Event
  • Get_Route
  • Route_End_Event
The ability to call a custom server within an application greatly expands the capabilities of Blueworx Voice Response.

Java

Java applications provide the same functionality as state tables do, but unlike the proprietary state table programming environment, Java is an open interface. Java is also very easy to integrate with other systems so call control can be fully integrated with Cisco ICM.

Blueworx Voice Response needs to be running an instance of the Java and VoiceXML environment to provide the interface between the Java application and Blueworx Voice Response.

With Blueworx Voice Response for AIX, you can use Java as a wrapper layer to integrate VoiceXML dialogs with existing state table applications. For example, if you have state tables that provide standard dialogs or that invoke custom servers to access databases, you can continue to use these with your new VoiceXML applications.

A possible sequence of Java methods in a Service Control Interface dialog is:
  • newCall
  • waitForEvent
  • runScriptRequest
  • runScriptResult