ments that are already a snap to use, you can crank out a voice-response system in a matter of hours, rather than weeks.
All the tools in this survey let you create applications that answer incoming c
alls, make outgoing calls, receive and transmit touch tones, and play and record messages. But beyond this point, features vary greatly. If you want caller ID capability, seamless incoming and outgoing fax, a "flowchart" design interface, or other special features, look carefully at the descriptions that follow to make sure you pick the right tool for the job.
None of these products imposes any practical limit on the complexity of the IVR systems you can design. Using any of these components, you will be able to easily create a system that keeps callers informed or entertained for hours without ever connecting them to a human being. Of course, getting lost in a twisty maze of recorded messages is probably not every caller's idea of a good time.
Some Fiddling Required
We tested each set of tools with the hardware and operating system recommended by the manufacturer. All but Pronexus recommended cards made by Dialogic, while Pronexus recommended a card made by Rhetorex. (The R
hetorex hardware came with a programmer's toolkit, but it did not contain any visual components.) We used Visual Basic 4.0, running under NT, for all the components except for VBVoice and VoiceBocx, for which we used VB 3.0 running under Windows 95.
Ironically, the most difficult task was getting the hardware working. Both brands of telephony boards were unnecessarily difficult to install. The default IRQ for the Dialogic card is IRQ 3, which is reserved for the serial port (usually attached to a serial mouse) in virtually every machine.
Additionally, the Rhetorex and Dialogic boards use shared memory, a technique that--at least on the ISA bus--can consume a whopping 128 KB of valuable address space in the critical upper-memory area. This may deprive the system of valuable upper-memory blocks needed by Windows, DOS TSRs, or built-in ROMs on adapter cards. It may also cause conflicts with memory managers that can't always detect and avoid the shared RAM.
Some of the driver software uses so
ftware interrupt vectors in the range 60H-7FH as an entry point. Many software products and some VGA boards also use these vectors, a conflict that can create compatibility problems. Microsoft's Plug and Play (PnP) for Windows 95 might solve these problems, but none of the cards we tried has built-in PnP support. In the meantime, expect to fiddle with your system--perhaps for several hours--before getting a telephony board to work.
Once the boards were installed and the drivers loaded, we set to work creating a simple answering-machine program--one that just answers the phone and plays a message. We then built a more advanced program that also accepts messages. In all but one case, this took between half an hour and one hour, and we were able to "crib" code from examples supplied with the products. One product, however, surprised us by allowing us to build the answer-only machine in less than five minutes (more on this shortly).
VBVoice
All the tools we survey here are capab
le of creating simple IVR systems, but when it comes to ease of programming, there's no contest: Pronexus'
VBVoice
stands alone. This product's compelling visual approach is to telephony system design what Visual Basic itself is to programming. Unlike the other products in this review, which require extensive coding in Visual Basic or C++, VBVoice lets you create your call-processing system visually. All you must do is string the unique VBVoice controls together (using "rubber band" lines) into a flowchart that dictates the progress of a call. As the call "enters" and "exits" controls on the flowchart, the voice card plays announcements to the user. Transitions within the flowchart can also trigger Visual Basic events, allowing your code to interact with the call.
VBVoice comes with a collection of controls so extensive that your VB palette will explode with a daunting array of new, unfamiliar tools. But once you've explored these, you'll be pleased with what you find. Some of the
more interesting items include: A Language control, which changes the language used to handle the call; a GetDigits control, which gets touch tones; DataFind, DataGet, and DataNew controls, which use VB's built-in database engine to manipulate a database; and PlayMsgs, which implements a complete tone-controlled voice mailbox. There's even a control that you can use to create conference calls among multiple lines (though it works only with certain telephony boards).
VBVoice's flowcharting technique frees the programmer from having to write code to control the progress of the call (though it's certainly possible to do so). Within minutes of installation, we found that we could create a simple announce-only answering-machine program by creating an instance of the phone control, connecting it to a hang-up control, and associating an announcement with the hang-up control. This first application took us only about five minutes to create, even though we were unfamiliar with the product.
A sophisticat
ed telephony application may require a large, complex flowchart. So, to keep the form from becoming cluttered with hard-to-follow crisscrossing lines, VBVoice lets you create named connections. Instead of being shown as lines that run all the way from one control to another, these connections appear as arrows with text labels. (As in an electronic schematic diagram, two arrows with the same label are considered to be connected.) There's also a control called InConn that lets parts of your flowchart occupy different VB forms. Incoming and outgoing fax capability aren't included in the package but are available in another package called VBFax. The two products will integrate smoothly; faxes can be sent or received during a call initiated in VBVoice.
Like VoySys' VoysAccess software (described later), VBVoice lets you record messages with a PC sound card as well as with the telephony card itself. This is a useful feature, since most cards, designed for the narrow 3000-Hz bandwidth of a telephone line, rec
ord sound with much lower fidelity than good sound cards do.
The VBVoice manual contains a complete reference to the package's VB controls. Unfortunately, it doesn't provide a complete, printed tutorial, so new users may need to explore the examples on the disk to learn the tricks of using this rich environment.
The 16-bit (VBX) version of VBVoice contains drivers for several brands of telephony cards, including Dialogic, Pika, and Rhetorex. The 32-bit (OCX) version, which was in beta at the time we looked at it, will use Microsoft's telephony API (TAPI), and so it should work with any TAPI-capable card when it ships. The OCX version adds some new features, such as an outline view (useful for large applications) and OLE support.
VoysAccess
VoySys'
VoysAccess
is a more traditional visual component that works with Dialogic telephony boards. VoysAccess encapsulates a programmer's library that allows you to control an IVR session by manipulating the
properties and methods of a single custom control. This means that you'll have to write code in Visual Basic or C++ to control the flow of a call.
Along with the mundane functions you expect from a telephony toolbox--dialing calls, playing messages, responding to tones, etc.--VoysAccess supports caller ID on incoming calls and automatic "flash hook" call transfers (the way you transfer calls on most PBXes). However, we could find no evidence of fax capability.
VoysAccess comes bundled with VoysSmith, a waveform editor that lets you record, play, and modify waveform files via a sound card. Once you've captured a sound, you can add special effects or overlay other sound files to produce interesting announcements and sounds. The only catch: It won't work without a sound card; you can't use it to record or play messages directly through the telephony board.
The new OCX version of VoysAccess is much easier to understand than the older VBX version, with intuitively named methods and properties.
(Because of shortcomings in the design of VBXes, the older VBX version of VoysAccess had to use "action properties" to trigger actions.) While the OCX control maintains downward compatibility with programs written for the VBX, it now lets you use mnemonic method names to perform call-handling tasks.
The manual we received with VoysAccess was an incomplete draft, so we could not judge the quality of the final printed documentation. The beta disk contained only one sample application; there could be more in the finished product. Nonetheless, we were able to create a simple answering-machine application in about half an hour by modifying the sample code.
Visual Voice Pro
Stylus Innovation's
Visual Voice Pro
is a mixed bag: It combines the best examples and documentation of the bunch with an awkward programming interface. Visual Voice, like VoysAccess, is a single custom control that encapsulates a library of telephony routines.
We tested both the V
BX and the OCX versions of this control, which are nearly identical. Both use action properties to control the handling of the call. This is not nearly as efficient as flowcharting or method-based programming and requires you to include and remember many cryptic definitions for constants.
To ameliorate this shortcoming, the Visual Voice package comes with a code-generating tool called Voice Workbench that lets you script your application in user-friendly dialogues. Voice Workbench then uses the script to write Visual Basic code that you can paste into your application. This takes some of the tedium out of using action properties. However, unless your application falls within the bounds of what Voice Workbench can do automatically, you'll still need to dictate the overall "flow" of the application by massaging the generated code, and you may need to learn what many of the Visual Voice action constants do.
Visual Voice does have great strengths in other areas, however. The Voice Monitor feature le
ts you view and control the progress of calls on several lines at once. A virtual phone accessory program lets you test your entire application via a sound card. The package includes fax support, and you can add caller ID support with a special toolkit. (It's thrown in for free if you buy the Visual Voice version for IBM's MWave DSP.) Voice-recognition and complete text-to-speech capabilities are also available as options. Documentation is excellent, and copious programming examples are included, along with a copy of the book
Visual Basic Telephony
by Krisztina Holly and Chris Brookins (Flatiron Publishing, 1995). A separate version of Visual Voice handles TAPI.
VoiceBocx
While the spelling of Parity Software's
VoiceBocx
implies that the product is an OCX, it is, in fact, a VBX. Like Visual Voice Pro, VoiceBocx provides conventional properties and action properties that let your application control a telephony board. Another included VBX from Parity S
oftware, called VoiceHub Tool, acts like Visual Voice Pro's Voice Monitor.
Because you operate the control by setting action properties, this VBX is, again, more difficult to work with than an OCX with methods or VBVoice's flowcharting interface. And of the visual controls described here, VoiceBocx is the most Spartan one. We found no fax capability, nor was it clear whether the package could handle caller ID. The documentation was limited to one small, though well-written, manual of approximately 250 pages, and there were only four small sample applications on the disk.
Parity Software has put its heart into another product--Voice Operating System 5, or VOS5--which we also received. While it doesn't qualify for this review because it's not a visual programming component (it's actually a C-like language of its own), VOS5 is quite powerful. It comes with two excellent books describing the language and PC telephony in general, and it has capabilities, such as fax, that are not present in VoiceBocx
. VoiceBocx may be useful as a very small, simple VBX for telephony applications, but VOS5 is clearly the more powerful product.
Enter Your Selection
Of the products we worked with for this review, Pronexus' VBVoice stands head and shoulders above the rest when it comes to productivity and ease of use. VoySys' VoysAccess has shown substantial improvements in the latest (32-bit) version, moving away from action properties to embrace a simpler, method-oriented programming model. Stylus Innovation's Visual Voice Pro uses action properties but provides the best documentation, the most examples, and the widest variety of add-on features. Parity Software's VoiceBocx is the smallest and simplest component, but it may require the most effort to use. Parity's VOS5 product is a much more powerful and robust programming environment, and it's worth a close look if you're willing to use a proprietary language to develop IVR applications.
PRODUCT INFORMATION
VBVoice
VBX, 1 line...................$ 395
VBX, 2 lines..................$ 695
VBX, 4 lines..................$ 995
VBX, 8 lines..................$1295
OCX, 4 lines..................$ 795
OCX, 24 lines.................$1995
OCX, 64 lines.................$2995
Pronexus
Carp, Ontario, Canada
Phone: (613) 389-0033
Fax: (613) 839-0035
Circle 1164 on Inquiry Card.
Visual Voice
2 lines.......................$ 495
4 lines.......................$ 995
12 lines......................$1895
24 lines......................$2995
Stylus Innovation
Cambridge, MA
Phone: (617) 621-9545
Fax: (617) 621-7862
Internet:
http://www.stylus.com
Circle 1162 on Inquiry Card.