Integrate Your VoiceXML and Your Existing Services with Java
The combination of VoiceXML and an application server like IBM's is interesting, but it's not the whole story. With VoiceXML and server-side Java, you can do a lotbuilding exactly the same sorts of applications you build today using XHTML and server-side scripting. The WebSphere Voice Response API takes things further, letting you initiate calls and perform programmatic actions hard-to-do with VoiceXML and server-side scripting alone.
The Voice Response API is based around the notion of a voice application, encapsulated in a WVRApplication class. This class has its own entry point, voiceMain, from which you can determine the characteristics of the current connection with an end user through a Call object. You also have access to a WVR (presumably this stands for WebSphere Voice Response) object, which lets you make and receive calls and handle individual voice segments. In fact, it's entirely possible to code an entire application using just the Voice Response API and the WebSphere Voice Response System, but you really shouldn't do that; using VoiceXML to encapsulate as much of your user interface as possible makes localization and extension much easierjust as separating a Web site's style directives from its data does. In point of fact, as you look at the WebSphere Voice Response API, it becomes pretty clear that the API itself is either a wrapper around the internals of the Voice Response System, or the significant parts of the foundation of the WebSphere Voice Response system, depending on your point of view.
Use of the Voice Response API is fairly simple and clearly documented; the voice toolkit has some excellent tutorials that walk you through the gamut of interfaces available. Where the Voice Response API shines is when you must integrate a Web application with outgoing calls, such as database triggers. For example, an outside plant management application might use a database trigger and the Voice Response API to call the cell phone of a maintenance worker when a failure is detected in an automated system, and then actually describe the failure over the call.
A Soup-to-nuts Environment
The IBM Voice Toolkit preview is interesting not just in what it offers through its support of the latest standards in voice applications, but in its integration with a world-class development and deployment platform. It provides a soup-to-nuts environment for building voice applications, with plenty of help along the way (for example, there are graphical editors to ease the writing of the grammar segments of your VoiceXML, and a way to execute a VoiceXML file and interact with it right from the Rational IDE). It's an excellent way to develop and deploy a voice application, or, if you're an independent developer curious to find out what really happens when you call your local credit card company, build a voice application prototype of your own.