yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
Cloud Expo on Google News
Cloud Expo & Virtualization 2009 East
Smarter Business Solutions Through Dynamic Infrastructure
Smarter Insights: How the CIO Becomes a Hero Again
Windows Azure
Why VDI?
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun's Incubation Platform: Helping Startups Serve the Enterprise
Cloud Computing & Enterprise IT: Cost & Operational Benefits
How and Why is a Flexible IT Infrastructure the Key To the Future?
Click For 2008 West
Event Webcasts
Transact Business over the Wireless Internet with Interactive Voice Recognition
Transact Business over the Wireless Internet with Interactive Voice Recognition

One of the most critical initiatives that faces modern business executives is the need to improve efficiency. Savvy companies continue to drive costs out of their business model in order to improve the bottom line. Is this a sound business practice? Absolutely. The trick is to maintain product quality and customer satisfaction while striving for increased efficiencies. Unfortunately, customer service is often one of the things that's sacrificed in the race for profitability. The Internet has proven to be an effective ally in the race for cost reduction while maintaining customer service. Customers are very willing to leverage browser-based applications for transacting business and accessing customer service. The question that remains is how to service these same customers from a wireless perspective. The first solution that might come to mind is a WML-based application on a WAP-enabled device, but this is not the only alternative. Interactive Voice Recognition (IVR) is a viable solution for fast and effective wireless computing.

Stand-up comedians and industry pundits have long used telephone-based applications as the industry's whipping boy. We've all heard the same stories about endless loops through customer service featuring wave upon wave of "Press 1 now" messages. Sure, there's a kernel of truth in these urban legends, but the problem has typically been the implementation of the technology - and not the technology itself.

When used properly, IVR can be an incredibly effective tool for engaging your customers in a fast and efficient e-business dialogue. The team at BeVocal has taken IVR technology and made it available directly to developers via a Web-based development and deployment environment through BeVocal Café. With BeVocal Café every developer now has the tools and software to build a state-of-the-art IVR application. You can even take an existing Web-based application and add an IVR interface for wireless access. We recently worked with the BeVocal team to build a small IVR application based on a production Web site. In the following sections, we'll take you through the highlights of the development process.

VoiceXML - The Heart of Modern IVR Applications
Before we tackle an IVR application, it's important to understand a little bit about VoiceXML and BeVocal. The foundation of the BeVocal environment is VoiceXML 1.0, an XML-based markup language for writing telephone-based speech applications. The VoiceXML specification falls under the domain of the World Wide Web Consortium (W3C) and it also has its own special interest group, the VoiceXML Forum ( Between the two organizations there's a broad spectrum of industry support for VoiceXML Applications built to the VoiceXML specification should therefore be transportable between different applications and environments. Users access VoiceXML applications by calling them via the telephone. They listen to options and respond using the spoken word.

The heart of a VoiceXML application is the VoiceXML interpreter, which renders the VoiceXML documents into audio. VoiceXML documents are accessible via a Web browser, but they're more often accessed remotely via the interpreter engine. VoiceXML describes the data itself, and it's up to the interpreter to display the data in the most appropriate manner.

VoiceXML is composed of a number of tags that describe the interaction process with the user. For example, <prompt> gathers user input and displays results, while <assign> evaluates expressions. VoiceXML is just a derivative of XML, so VoiceXML documents could be interpreted as text within a browser. However, VoiceXML is meant to run on a VoiceXML interpreter engine. This engine is responsible for managing an execution environment that includes telephony, text-to-speech synthesis, and speech recognition. The telephony component handles the telephone connection issues (detecting incoming calls, disconnects and transfers), while the text-to-speech component translates text strings into audio output. The speech recognition engine listens for user responses and translates the response into output for processing. BeVocal combines all these functions into a powerful VoiceXML server engine, which is accessible through a standard Web browser.

BeVocal Café
Developers can sign up for BeVocal Café free of charge via the BeVocal Web site. All the tools necessary to build a state-of-the-art VoiceXML application are available through this well-organized interface. Programmers access the BeVocal Café developer environment via a standard browser interface. There are three components for developing an IVR application with BeVocal Café - VoiceXML files, JavaServer Pages, and audio files. (BeVocal also allows you to add text files and JavaScripts to voice applications as needed, but they are not necessary.) VoiceXML files are just standard XML files that use VoiceXML 1.0 tags as shown in Listing 1. BeVocal includes a number of common grammars to support standard application data types such as Boolean, date, digits, currency, number, phone, and time. You can also add your own grammars.

LISTING 1 - sample1.vxml

<vxml version="1.0">
<field name="selection">
Please choose News, Weather, or Sports.
[ news weather sports ]
<submit next="select.jsp"/>

If the user of this VoiceXML application were to say the word news in response to a prompt, the selection variable would be set to the string "news". Grammars allow you to extend the accuracy of the voice recognition by limiting the range of recognized values for any given prompt. VoiceXML instructions are coded into a VXML file along with their associated grammars, which are then uploaded into the BeVocal Café environment through the File Management utility as shown in Figure 1.

VoiceXML files can include blocks of JavaScript code in the BeVocal environment and the VoiceXML interpreter can play custom audio files and load values from text files at run time. These three components allow you to build an incredibly powerful application with all of the classic programming constructs including decision blocks and loops. One of the benefits of using a browser-based interface to develop your applications is the ease with which you can get started. On the other hand, you don't have all the standard development environment constructs running on your desktop. Thus, you can use your favorite XML editor to build your VoiceXML files, but they have to be uploaded into the BeVocal environment. (You can download the BeVocal DTDs from the BeVocal Café site for use with your own desktop XML editor.)

BeVocal's built-in extensions are impressive. Their VoiceXML interpreter is layered on Nuance's speech technology and they've made the SpeechObjects API available within the BeVocal environment. SpeechObjects can help you vocalize and interpret complex phrases such as dates and date components, and they're reusable across applications. They also provide a GEO API for location-based processing. So users can input Zip codes and the BeVocal interpreter can return city and state information. Once you've written and validated your VoiceXML file, you can start testing it right away. BeVocal offers a number of testing tools directly within the BeVocal Café environment. You can even test the complete application without a telephone using the Voice Scripter (as shown in Figure 2).

The Voice Scripter interprets the VoiceXML script as if it were executing in the production environment via the telephone. Through this interface you can quickly test the various logical paths within your application to ensure that they're working as expected. You can also test the application via the telephone and BeVocal provides telephone numbers and a complete tracing environment for this purpose. You can view log files of user sessions or trace user calls as they occur in real time. This is a critical capability for IVR-based applications. A user interface that works well on a browser may prove to be too cumbersome when it's deployed over the telephone. Through the trace facility (see Figure 3) you can monitor user sessions and look for problem areas such as hang-ups. BeVocal also provides a port estimator tool that you can use to determine the exact number of phone lines required to support a given group of users.

Choosing a Sample Application
Initially we considered building an application from scratch using IVR technology. However, one of the strengths of IVR is the ease with which you can enhance your existing applications. So we went looking for a public application that we could voice-enable. Carl Schmitt at the National Center for Education Statistics (NCES) was kind enough to offer NCES's statistical database and Web site as our "IVR guinea pig." Through the NCES application ( you can access student data for public schools across the country. Figure 4 shows the main interface, through which you can enter city and state data as search criteria.

Once you've entered search criteria into the form you can then view a list of the matching schools in the specified city and state. We chose to use Easton, Pennsylvania, as the basis for our search, which resulted in the list of schools shown in Figure 5.

The NCES application allows you to drill down on the school name from within the search results panel to view detailed information about the selected school (see Figure 6). From a research perspective, this application has all the classic elements. You can input query parameters into form and scroll through results, move forward and backward, and view detailed information for selected records. You can use WML and build an alternative version of this application for a WAP-enabled phone or a PDA. However, by leveraging the power of BeVocal's Café developer environment, you can make this very same data available to users from any phone - landline or mobile. VoiceXML applications can connect to existing Web applications by means of JavaServer Pages (or CGI). BeVocal provides the "Remote URL" facility for linking JSP pages to VoiceXML files running in the BeVocal environment. So you can build a JSP interface to your own data and host the JSPs on your existing Web infrastructure. When users call into your application via the telephone, they'll connect through BeVocal's VoiceXML interpreter into your application. This makes it very easy for you to maintain a single line of core processing logic for your business rules that can be applied to both browser-based and IVR user interfaces. BeVocal manages the telephony, speech recognition, and text-to-speech components, but you control the business rules.

Mukund Bhagavan from BeVocal took on the task of writing the VoiceXML file and the JavaServer Pages that would connect to the NCES site. Approximately 500 lines of VoiceXML and JSP code were needed to support this effort. When you consider the inherent complexity of this application, this small amount of code is very impressive. As part of the development effort, BeVocal has made the completed NCES application available as a public application, and has posted the source code for the VoiceXML and JSPs in the developer area within BeVocal Café. You can run the application by using the following steps:

  1. Dial 1-800-4BVOCAL.
  2. Say Bevocal café.
  3. When prompted for a demo ID say or enter 9076275.
  4. The application starts with detailed instructions - start by providing a city and state.
  5. It will come back with a list of schools and read them one by one. You can say next or previous at any time.
  6. You can say more for any school and it will go into detail about it. After hearing the detail, you can name a grade, for example, fifth, and it will tell you how many students were enrolled in that grade.
  7. It will return to the list of schools where it left off.
I encourage you to run the NCES application on the NCES Web site and to test the IVR version through BeVocal. The results are impressive. In addition to the standard development environment, BeVocal provides a number of prebuilt application components such as traffic updates, stock quotes, driving directions, and voice dialing. You can choose to host your application on their infrastructure, or license the software for your own environment. BeVocal's technology is an ideal solution for handsfree wireless applications, but it's important to keep in mind that the ergonomics for a voice-enabled application are unique. Careful application of grammars and application flow can increase user satisfaction immensely (see Xtime sidebar).

Industry estimates suggest that there are over 1.5 billion phones and 450-million mobile phone users worldwide. In fact, Nomura Research estimates that there will be more Internet connections on mobile phones than personal computers by next year. This makes perfect sense when you think about it, as phones are much more ubiquitous and easy to use. Customized development environments for voice-based applications are ideal for building IVR applications. BeVocal and VoiceXML provide you with the tools to extend your applications to a whole new class of users.

About Jim Milbery
Jim Milbery is a Vice President with William Blair Capital Partners, a venture capital firm based in Chicago. He has over 19 years of experience in application development and relational databases. He is the former applications editor for "Wireless Business and Technology", the past product reviews editor for Java Developer Journal and the author of "Making the Technical Sale". Jim can be reached at, or via the company web site at

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Latest Cloud Developer Stories
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. Successful transformation requires a lase...
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, @CloudEXPO and DXWorldEXPO are two of the most important technology events of the year. Since its launch over eight years ago, @CloudEXPO and DXWorldEXPO have presented a rock star faculty as w...
Cloud Expo | DXWorld Expo have announced the conference tracks for Cloud Expo 2018. Cloud Expo will be held June 5-7, 2018, at the Javits Center in New York City, and November 6-8, 2018, at the Santa Clara Convention Center, Santa Clara, CA. Digital Transformation (DX) is a major...
DXWordEXPO New York 2018, colocated with CloudEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to ...
@DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the worl...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)!

Advertise on this site! Contact advertising(at)! 201 802-3021

SYS-CON Featured Whitepapers