In the first part of this review we took a look at the basic features of
Telera DeVXchange CodeCenter, a hosted VoiceXML development environment. This week we will focus on some of the advanced features of the Studio, including
the grammar verifier, outbound calling and a number of VoiceXML extensions that Telera
has made around call-control. We’ll also take a brief look at AppCenter, the DeVXchange application development tool for developing dynamic VoiceXML applications.
The philosophy of the Grammar Verifier tool is simple, given a grammar
(either through the included scratchpad or through a URL). It validates the
grammar and lets the user know if there were any errors. The Grammar verifier
supports Nuance GSL style as well as the W3C XML-based grammar specification. A
feature that would be nice to have (and that I would expect in future releases of CodeCenter) would be a tool which can generate GSL/XML grammars based on a set of input
Another tool available to premium CodeCenter users is the "Grammar
Manager". The Grammar Manager is a web-based interface for deploying and
managing grammar packages on speech recognition platforms. It stores grammars in
a pre-compiled format so that they can be readily used within applications.
The idea of outbound notification (a server-side application
initiates a call to an end-user and starts a VoiceXML session) has created a whole
new set of application scenarios for VoiceXML. Similar to the concept of wake-up
calls, using the concept we can actually build complex alert-based systems. For
instance, it could alert the plant manager when a particular raw material goes down
a specified limit. And because it is an interactive VoiceXML application
and not just a recorded message, the plant manager can actually interact with
the system to find the best supplier and actually order the product as
Outbound Notification is invoked through a URL, with the following syntax:
The key parameters of the Notification URL include
|token||User data that needs to be passed to the application.|
|outboundno||The number to be called|
|failureurl||URL of the application that you would like to start when the
call is not-successful.
|url||URL of the application that you would like to start when the
URL is not available.
AppBuilder is a desktop-based Visual VoiceXML server-side application
generation environment. If you have worked in the world of IVR applications, you
would find this tool very similar. The focus of the tool is not really to
provide a rich VoiceXML-based editor environment, but rather to generate the underlying dynamic scripting code in VoiceXML 1.0. Based on the environment selection, AppBuilder
generates dynamic server-side code in Java Server Pages (JSP) or Active Server
The figure below shows a simple menu-based dialog built using the visual
tool. The bottom window shows the VoiceXML dynamically generated. AppBuilder
runs on top of Windows NT/2000 platforms and requires either Microsoft Internet
Information Server 4.0/5.0 and/or a JSP/Servlet engine such as Apache Tomcat
(included with the installation).
To enable development of better call-control features (over and above the
basic functionality that is supported by VoiceXML platform), the Telera Voice
platform has created a number of extensions. The table below lists the various
extensions and their functionality.
|Call Control Elements||Description|
|ALERT_LEG||Alerting a call-leg and direct it to a specified URL|
|BRIDGE_CALL||Bridges the current call with another call|
|CREATE_LEG_AND_DIAL||Enables a voice application to make outbound calls. This
provides enhanced functionality over VoiceXML’s <transfer>
|END_SESSION||Destroys all legs of the session|
|HANGUP_AND_DESTROY_LEG||Terminates the call|
|LEG_WAIT||Puts the executing VoiceXML interpreter in the wait stage|
|QUEUE_CALL||Puts the call on hold|
|REXFER||Transfers the call from one call-center agent to another|
|SCRIPT_RESULT||Returns the results of a script execution|
|SET||Provides a state management mechanism to otherwise stateless
|UBRIDGE_CALL||Breaks the bridge between the specified legs of the call|
Let’s look at the functionality of one of extensions by taking a look at an example. The
example below shows an interactive voice application that is allowing the user to say
"Customer Service" in order to be connected to a customer service representative.
The CREATE_LEG_AND_DIAL element connects the caller with the agent specified in
the TELNUM attribute. The IVRURL specifies the document to execute for the
second leg once the call has been connected. Using these extensions it is
actually possible for the application to "whisper" information about
the caller to the agent before bridging the call.
Overall, I believe CodeCenter has the necessary toolsets for a useful
VoiceXML development platform, with the key being support for the VoiceXML 2.0, call tracer, grammar verifier/manager and outbound notification. The extensions are
definitely interesting and provide a lot of added functionality on-top of
VoiceXML, but should probably evolve through support of a standard such as CCXML.
AppBuilder has a lot of potential for being a server-side dynamic VoiceXML
application tool, however, it does need to be upgraded to support VoiceXML 2.0
About Hitesh Seth
A freelance author and known speaker, Hitesh is a
columnist on VoiceXML technology and regularly writes for
technology publications including Java Developer’s Journal, Web Services
Journal, XML Journal and The Computer Bulletin on emerging technology topics such as J2EE, Microsoft .NET, XML, Wireless
Computing, Speech Applications, Web Services & Enterprise/B2B Integration. He is the
conference chair for VoiceXML
Planet Conference & Expo. Hitesh received his
Bachelors Degree from the Indian Institute of Technology Kanpur (IITK), India.
Feel free to email any comments or suggestions about the articles featured in
this column at [email protected].