developer.com
Search EarthWeb
CodeGuru | Gamelan | Jars | Wireless | Discussions
Navigate developer.com
Architecture & Design  
Database  
Java
Languages & Tools
Microsoft & .NET
Open Source  
Project Management  
Security  
Techniques  
Voice  
Web Services  
Wireless/Mobile
XML  
Technology Jobs  

   Developer.com Webcasts:
  The Impact of Coding Standards and Code Reviews

  Project Management for the Developer

  Defining Your Own Software Development Methodology

  more Webcasts...




See the Winners!


Developer Jobs

Be a Commerce Partner
Corporate Gifts
Computer Hardware
Data Center Solutions
GPS Devices
Online Shopping
Baby Photo Contest
Online Education
Promote Your Website
Compare Prices
Calling Cards
Phone Cards
Memory
Rackmount LCD Monitor
Promotional Products

 


Developer News -
Sun Latest to Help App Vendors Get 'SasSy'    April 24, 2008
Ubuntu's 'Hardy' Cozy With Windows    April 24, 2008
The $4.6B Business of The Social    April 22, 2008
Office 2007 Fails The OOXML Test    April 22, 2008
Free Tech Newsletter -

Project Management Guide: Developing a Web Site. Best Practices, Tips and Strategies. Download Exclusive eBook Now.

Is VoiceXML the Right Tool for Your Voice Application?
By Brian Brown

Go to page: Prev  1  2  

Contraindications

The following situations may indicate that your application is not a good match for VoiceXML:

Playback of very long audio files is required. VoiceXML does not allow for playing voice files at different speeds, or for beginning playback at a specific point in a voice file. For example, most voice messaging systems allow the user to press a key to fast-forward 10 seconds in a message. VoiceXML would not support this.

Frequent Call transfers to other phone numbers are required. For example, applications designed to front-end call center transfers (for example, to gather information from a caller before the call is sent to a live agent) are typically better handled by hardware integrated with a call center's telephone system.

Outbound calling functionality is required. The VoiceXML specification does not handle outbound dialing requirements. Several VoiceXML service providrs allow outbound calls outside of the VoiceXML spec, but these are proprietary extensions, and applications written for one provider's platform will have to be ported to work with another provider. Determining the outcome of call attempts is a particularly difficult challenge in the development of outbound applications. This function is usually achieved by complex frequency analysis, which is not supported in VoiceXML. This function will probably be available from a VoiceXML service provider, but each provider will have its own approach and effectiveness claims for solving this problem (as well as its own outbound API extension).

Other considerations

There are a number of other considerations to be taken into account when deciding if VoiceXML is for your application.

Cost: If you host your application with a service bureau, you will pay by the minute for phone time . considerably more than you will pay per minute for long distance or local phone service into your own system.

Call Volume: If you anticipate very high volumes of calls, you may find a quicker ROI on an equipment purchase. If your call volume will fluctuate and occasionally spike, purchasing equipment may not be wise, since you will need enough capacity to support your peak call volumes. Your equipment may sit idle the rest of the time (for example, a vote-for-your-favorite-contestant by phone during a television special). Service bureaus may charge more for spiky volume, but they will probably be able to handle it better than you can with hundreds or thousands of phone lines at their disposal.

Connection to your equipment: A system hosted off-site can only be as reliable as the link between your server equipment, data storage, and the off-site voice gateway. If it's okay for your system to be occasionally unavailable, you can use the Internet for this connectivity. If outages aren't acceptable, you may have to lease a point-to-point data line between your site and your vendor's gateway. Purchasing your own voice system avoids these issues; you can co-locate it with your application server equipment and have a fast, reliable connection between them.

Your expertise level (and that of your IT staff): Programming your own non-VoiceXML application will require specialized skills, including acquiring detailed knowledge of telephony, and mastering a daunting C or C++ API. In addition, telephony equipment requires special maintenance skills. If your staff consists of web programmers and general IT personnel, a hosted VoiceXML solution may be better.

Capabilities of potential VoiceXML providers: Larger providers with large phone line capacities will probably be more expensive but may provide some valuable functionality, like larger maximum capacity. Choosing the right VoiceXML service provider is a topic for a separate discussion.

Portability of phone numbers: Most VoiceXML service bureaus will "lend" you phone numbers for your application. If your company makes a substantial investment in marketing the numbers for your application, the phone number(s) the provider has lent you may become valuable to you. Unless you negotiate a different arrangement up-front, a decision to switch providers may cost you your existing phone numbers.

Availability requirements: If the system is very critical to your business, and outages would be catastrophic, you will want a highly redundant system as well as redundant connections from the gateway to the system. This will drive up costs whether you go the equipment or service bureau route, and may force you toward using a service bureau due to the expense of redundant hardware.

Probability of "feature creep": If it is likely that additional requirements for your voice application may come later, remember that these new features might not be supported by the decision you're making. Feature creep often presents more of a challenge in voice applications because of the diversity of supported feature sets; the cost of changing platforms to support new requirements may be quite high.

Examples

Finally, here are a few examples of applications and issues involved when creating each with VoiceXML:

Voice Messaging (as well as unified messaging): Several increasingly common features of voice messaging are unavailable in the VoiceXML specification, including the ability to pause and resume message playback, speed up or slow down message playback, and fast-forward or rewind message playback. Additionally, reading text-to-speech'ed email messages to users almost demands these features. Prognosis: NOT a good match for VoiceXML; get closer to the hardware with C++ or something else.

Order status: Assuming that you provide your customers with a means for checking order status on the web, writing a narrow VoiceXML front-end to this application could be fairly easy. You can use the same logic from your web application to develop your VoiceXML application, and no special voice functionality is required. You will need to provide some special provisions to identify your callers (traditional usernames and passwords do not translate well to phone usage). Prognosis: A pretty good match for VoiceXML, if you can give them an easy way to log in on the phone.

Non-user-specific status information: (this may include flight status, road conditions, etc) When callers do not need to be uniquely and positively identified (i.e. any information can be provided to any caller), no prior setup needs to be completed. Assuming the data you can provide to your callers is readily accessible via your back-end web server, you should be able to quickly build an easy-to-use application. Prognosis: probably as close to an ideal match for VoiceXML as you will find.

Product availability or ordering system: Systems capable of providing hundreds of pages of information (or hundreds or thousands of possible search targets) are particularly difficult to develop for narrow interfaces such as voice. The availability of a keyboard, mouse and visual display makes the traditional html web interface a good mechanism for selecting an item from a large number or search results. The limited input bandwidth of voice applications makes this task difficult for voice applications. Speech recognition systems can help crack this nut, but building these requires considerable effort in the interface design. Prognosis: A difficult application for any voice system, but if you can get a good speech interface designed, VoiceXML may work just fine.

Next Steps

If, after reading this article, you think your application would work well with VoiceXML, sign up for a free development account with one of the larger VoiceXML service providers and begin to experiment with the methodology. If you have doubts, start to look at the APIs provided by telecommunications hardware vendors such as Intel's Dialogic, Lucent, or NMS. If your application may use speech recognition, investigate the programming methodologies used by Speechworks and Nuance.

VoiceXML is best suited for applications which require relatively little input from the user, deliver highly-targeted output, and in particular, provide a set of data which is already (or easily could be) available via an HTML web interface. When your application requires substantial content delivery, needs complex navigation or broad ranges of input, or is mission-critical, give careful consideration to your decision, seeking out a voice expert if you're not sure.

About the Author

Brian Brown has been designing and building telecommunications and telephony systems for 10 years, in various roles as employee, manager, company founder, and outside consultant. Brian is currently Vice President of Technology for a Denver-based transaction fulfillment startup. He holds a bachelor's degree in Computer Science from the Massachusetts Institute of Technology.

Go to page: Prev  1  2  


Tools:
Add www.developer.com to your favorites
Add www.developer.com to your browser search box
IE 7 | Firefox 2.0 | Firefox 1.5.x
Receive news via our XML/RSS feed


Voice Archives

Whitepaper: XML Processing in Applications--Take the Next Step
Five Trends for Application Development. Download Your Complimentary Report. Exclusive. Act Now.
Whitepaper: Enterprise Information Integration--Deployment Best Practices for Low-Cost Implementation
Five Trends for Application Development & Program Management. Download Complimentary Report Now.
Data Sheet: IBM Information Server Blade



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
Microsoft Article: HyperV-The Killer Feature in WinServer ‘08
Avaya Article: How to Feed Data into the Avaya Event Processor
Microsoft Article: Install What You Need with Win Server ‘08
HP eBook: Putting the Green into IT
Whitepaper: HP Integrated Citrix XenServer for HP ProLiant Servers
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 1
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 2--The Future of Concurrency
Avaya Article: Setting Up a SIP A/S Development Environment
IBM Article: How Cool Is Your Data Center?
Microsoft Article: Managing Virtual Machines with Microsoft System Center
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Intel Video: Are Multi-core Processors Here to Stay?
On-Demand Webcast: Five Virtualization Trends to Watch
HP Video: Page Cost Calculator
Intel Video: APIs for Parallel Programming
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Sun Download: Solaris 8 Migration Assistant
Sybase Download: SQL Anywhere Developer Edition
Red Gate Download: SQL Backup Pro and free DBA Best Practices eBook
Red Gate Download: SQL Compare Pro 6
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
How-to-Article: Preparing for Hyper-Threading Technology and Dual Core Technology
eTouch PDF: Conquering the Tyranny of E-Mail and Word Processors
IBM Article: Collaborating in the High-Performance Workplace
HP Demo: StorageWorks EVA4400
Intel Featured Algorhythm: Intel Threading Building Blocks--The Pipeline Class
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES