TMCnet - World's Largest Communications and Technology Community




January 1998

Visual Voice Pro 4.0

Artisoft, Inc.
Computer Telephony Product Group
5 Cambridge Center
Cambridge, MA 02142
Ph: 800-914-9985
Fx: 617-354-7744
Web site: www.artisoft.com

Pricing: From $795 for 2 lines to $9,995 for 96 lines. No royalties or runtime fees.

Installation:  5.0
Documentation:  3.0
Features:  5.0
Overall:  A+

Today’s CTI applications are complex and can encompass a variety of designs and interfaces with the computer systems upon which they run. Whether you need a simple auto-attendant or an elaborate IVR system, you have two choices. You can shop around for a turnkey system that comes closest to satisfying your requirements. Such a system must have sufficient customization features to allow you to tailor the system to your specifications. Your other choice is to develop a system from the ground up.

Fortunately, today’s PC technologies allow the developer to implement CTI systems that can rival the already established telephony products on the market. Using telephony and speech boards and the right application generator (appgen), a developer can quickly develop sophisticated CTI applications which are easy to maintain, scale, and customize. One of the greatest benefits of using an appgen is the freedom of developing custom CTI applications to suit specific requirements, while easily modifying the applications as requirements change.

One such app-gen, Artisoft’s Visual Voice Pro, has been around since 1993. The latest release (4.0) of Visual Voice Pro is more powerful and flexible than its predecessors. Built on the foundation of ActiveX control, Visual Voice Pro can be used in a variety of development environments such as Microsoft’s Visual Basic, Visual C++, Visual FoxPro, and Borland’s Delphi. Visual Voice Pro operates on Dialogic boards with additional support for Aculab T1 digital lines.

Our test machine was a Pentium 120 with 32 Megabytes of RAM running Windows NT Workstation. Even though Visual Voice Pro controls are ActiveX controls (which makes them compatible with several development environments), we still believe that Visual Basic is the ideal platform to use for Visual Voice Pro, since it has an easy-to-use interface ideal for quick application development. We used Visual Basic 5.0 as our development platform to test Visual Voice Pro. We installed the hardware platform for our CTI application to execute on. We used the Dialogic D/41D (donated to our labs by Dialogic through our TMC labs benefactors program) which has interfaces for up to 4 POTS connections. Installing Dialogic boards under Windows NT is a multi-step process.

First, we plugged the board into one of the available ISA slots and switched on the PC. Then from the Dialogic Drivers CD-ROM provided with Visual Voice Pro (thank you, Artisoft) we installed the drivers and configuration files for the Dialogic board. Next, we ran the Board Configuration utility from the Dialogic program group and added the D/41D board to the list of installed boards. To insure correct installation, we ran the Dialogic Diagnostics utility and chose a complete test. The diagnostics process took several minutes and produced a screen showing the results of the test (Figure 7). The board had failed the PC interrupt test. Here is where the Visual Voice Pro installation manual came to our rescue. We had lost the original documentation for the D/41D board, but the Visual Voice Pro installation manual had a good section on hardware installation which guided us to the correct DIP switch on the D/41D board to change the interrupt value. We turned the PC back on and ran the test again.

No errors were detected this time. Using the manual as our guide, we added the Streams Environment to our Windows NT network protocol list and restarted the PC. Now it was time to install the driver for our board, which we did by choosing the Service Startup Mode program from the Dialogic program group and starting the driver from this application. We then set the startup mode to Automatic so the drivers would be started automatically every time we restarted our PC. Finally, we used the multithreaded GUIbased application to test the correct operation of the board by successfully opening and closing the board channels. We connected two POTS lines to the board and concluded the hardware installation portion.

Our next step was to install Visual Voice Pro from the CD-ROM. We liked the fact the we were given choices to install or skip sample files for several development platforms (Figure 8). At the end of the installation, a window was displayed asking for the Test mode. Visual Voice Pro programs can be accessed in two ways. Using the Virtual Phone program (built using the Test control) which utilizes the sound board and simulates a telephone, the developer can test the application without having to use the telephony board. This makes the test process easier and faster and the development machine is not required to be outfitted with telephony boards or telephone lines. The other testing method is, of course, to use the telephony board for real-life testing, but given the Virtual Phone capability, there is a good chance that the telephony board testing can be postponed until the final stages of the development process. We chose the Sound Card option and clicked on OK. The installation successfully completed and created the Visual Voice Pro 4.0 program group containing the related utilities and sample programs. We were now ready to testdrive the appgen.

Visual Voice Pro is accompanied by two printed manuals which are also available in Adobe Acrobat format on the CD-ROM. These are the Installation manual covering the hardware and software installations and the Getting Started manual covering the basics of Visual Voice Pro. We found the manuals complete, well organized, and very useful. The Getting Started manual contains plenty of examples and figures to make the learning time as short as possible. We would have liked a reference manual for the ActiveX controls either as a separate book or as part of the Getting Started manual. Developers often rely on the reference manuals to quickly locate the appropriate information.

Online help for Visual Voice Pro was fairly complete with good reference information on Visual Voice Pro ActiveX controls. However, we wanted to see more comprehensive coverage on some of the topics. For example, we thought that there could have been more information provided for Voice Manager and Voice Service. Finally, some of the utilities did not come with help files at all (or the setup program failed to install them) which we found rather surprising. These included the Visual Voice ActiveX Control Experimenter and the Trace utility.

Visual Voice Pro 4.0 comes with the following features:

  • Single or multi-threaded support for multiple lines for superior performance.
  • Low memory demand allowing a 96-line application to be loaded in as little as 15 MB of RAM.
  • Support for up to 96 simultaneous phone lines on a single PC.
  • Available in various line configurations (e.g., 2-, 4-, 12-, 24-, and 96line).
  • Graphical utilities such as Code Wizard to generate fully commented code for frequently used telephony functions, and Prompt Manager to record, play back, manage, and generate code for voice prompts.
  • Advanced call progress algorithms.
  • Custom tone detection and generation for PBX integration and fax call handling.
  • Call identification using called number (DID/DNIS) or the caller’s number (caller ID/ANI).
  • WAV, PCM, and ADPCM Voice File Support.
  • T1, E1, and ISDN Digital Support.

The Visual Voice environment is configured by the vvoice32.ini file which can be accessed by the Phone Line Configuration Wizard. From here one can configure the Visual Voice environment with analog (POTS) or Digital (T1) lines and set other signaling and timing parameters if T1 service is used. The changes are saved in the vvoice32.ini file and are used every time a Visual Voice program is executed. Since we were using the D/41D card, we chose the Dialogic Analog option.

Visual Voice Pro comes with a good number of sample EXE files and, in order for us to see a Visual Voice Pro application in action, we ran the simple order entry program. Because we had previously selected the test mode (using the sound board rather than the telephony device) we launched the Virtual Phone program to simulate the telephone activity. Virtual Phone provides the user with a digit keypad simulating DTMF tones, On-hook/Off-hook button, and caller ID information.

The order entry sample program is a simple IVR application allowing the caller to enter an order number and retrieve pricing and date information regarding the order which is played back on the phone. The application uses a database to match an entered order number with existing ones to find the corresponding information or notify the caller if the order number is not found. The application ran successfully, proving to us that the Visual Voice Pro environment was installed and configured correctly, so we decided to write a short application to gauge the power and usability of Visual Voice Pro for ourselves.

In Visual Basic 5.0, we started a new project which brought up the list of project templates to start with. We recognized the Visual Voice Multithreaded EXE and Standard EXE templates. One of the great new features of Visual Voice Pro 4.0 is its ability to control all the lines using one multithreaded program. Until now, the only option to use all the ports had been to run an instance of the program for each line. For example, for a 96-line system, one had to have 96 running instances of the particular Visual Voice program.

While Windows platforms (especially Windows NT) should (in theory) be able to handle numerous programs running simultaneously, this approach is rather inefficient, cumbersome, and to some degree unstable. With multithreading capability built into Visual Voice Pro, one instance of the application can control the entire system in a much more efficient manner, reducing resource consumption, boosting speed, and enhancing stability. Unfortunately, under Visual Basic 5.0, only multithreaded ActiveX EXE projects are supported: this means they cannot support user interfaces such as forms or message boxes but — on the positive side — they use very little resources. (We are happy to report that this limitation has been resolved by the Service Pack 2 of Visual Basic 5.0 allowing for standard multi-threaded applications with GUI.) The multithreaded applications are therefore written and executed differently from the standard ones and they run unattended.

Creating A Database
We chose the Standard EXE project and were brought into the Visual Basic development environment. Our goal was to create an application to make outbound calls to certain numbers collected from a database, make an announcement when the call is answered, and hang up. As you may imagine, such capability can be enhanced to create powerful automated advertising campaigns, broadcast messages, or predictive dialers. Since we needed a database for our application to interface with, we launched Microsoft Access and quickly created a database table and populated it with a few records containing IDs, names, telephone numbers, and so on.

Back on the Visual Basic project, the Visual Voice Standard EXE template had created a new project with a single form containing the Voice ActiveX control. An ActiveX control (descendant of OCX and VBX controls) is a reusable software component that can be used within applications. ActiveX controls have associated properties, methods, and events which are used by the developer to orchestrate the behavior of the particular control. Visual Voice Pro comprises the following ActiveX controls.

  • Voice Control — This is the heart of Visual Voice, adding telephony and voice capabilities to the applications.
  • Voice Monitor Control — This control monitors the activity of Visual Voice applications that contain a Voice Manager object.
  • Visual Link Control — Provides communications link between applications.
  • Visual Voice Tools Control — Provides useful voice file functions such as conversions and index file creation.
  • Test Control — Used to simulate phone activity for the application. In order for our application to access our database we placed a Data Access Object (DAO) Control on our form and configured it to interface with our Access database table. We then placed a DBGrid control and configured it to interface with our DAO control to provide us with a viewing window into our table records as well as allow us to modify the table records. As a side note, we could have also used the Visual basic Data Form Wizard to create an interface to our database. At this point, the database side of the project was completed and we were ready to complete the telephony side.

Code Wizard
We added a button on our form that, when clicked, would initiate a call to the currently selected record in our database. We positioned the cursor inside the “Click” event of the newly created button and invoked the Visual Voice Pro Code Wizard to add the code for us. The Code Wizard works in concert with Visual Basic to add code to the application by gathering information from the developer. One must know exactly where in the program to place the cursor in order for the Code Wizard to insert the appropriate code. We wished that the Code Wizard could be improved enough to create entire CTI applications all by itself, but nevertheless we found the Code Wizard a useful tool in developing our telephony application.

We chose the “Place an outbound call” option and on the next screen we specified that the phone number to be dialed would be supplied by our database. The wizard then proceeded to collect some more information from us including dialing instructions, call analysis, and error handling instructions. Finally, we were prompted for the voice prompt to play when a call connection is established. We were given two choices at this point: Enter a VOX or WAV file to be played; or use the Prompt Manager to construct the voice to be used in the project on-thefly. We clicked on the Prompt Manager button, which brought us into the Prompt Manager screen.

From this application, we could create voice files, phrases which are voice entries into an indexed file, and strings, which are produced by concatenating voice files, phrases, and other values. We especially liked the string capability which allows the developer to conF struct the strings using constants and variables from the program or a database. In this scenario, one string can be used to make a formatted announcement using values supplied by the program or the database. We recorded our voice message file and used the “Insert Prompt” button to drop the file name back into the Code Wizard field which was requesting the voice prompt. We then clicked on the Finish button and observed as Code Wizard inserted the appropriate code in the Click event of the button.

Running The Telephony Project
In order to run the project using the telephony board we invoked the Visual Voice Setup program and turned off the test mode by selecting the Telephony Device (rather than the Sound Card) option. Back in Visual Basic, we ran the program and observed as the project form popped up with the DBGrid control populated with our database records. We selected a record and clicked on the button. The application was able to successfully call the number (a second telephone in the lab), wait for an answer, play the voice prompt, and hang up. We must say that although our application was a simple test, we were quite impressed with the ease and the speed of setting up the telephony application using Visual Voice Pro.

The Visual Voice Pro applications can also be started using the VMonitor control. The Visual Voice Monitor application (built using the VMonitor control) starts and monitors one or more Visual Voice applications and can be used to display their status and control their behavior. It is especially useful for handling multiple lines, providing a single source to access and manage the applications or classes (for multi-threaded applications). The Voice Monitor application utilizes the Voice Service (Vservice.exe) to manage communication with the Visual Voice applications. The Voice Service is also responsible for starting and stopping specific instances of a class.

As mentioned before, standard (singlethreaded) Visual Voice applications can handle only one line per instance. In order to handle multiple lines, separate instances of the application must be launched with each one allocating a different line. Since this approach puts too much demand on the resources, multithreaded applications can be used to handle the entire group of lines from one running application. In this scenario, the Voice Manager object (an OLE automation object) is employed to provide the interface (through Voice Service) to application instances for retrieving startup parameters, report status, and receive commands from the VMonitor control. While multithreaded Visual Voice Pro applications must use the Voice Manager object, single-threaded applications are not required (but recommended) to do so.

Trace Utility
Another application supplied with Visual Voice Pro is the Trace utility which lets the user view the progress of the running application as it executes. It can be customized to display certain types of trace messages or messages from certain controls. Another utility, the Visual Voice ActiveX Experimenter provides the user with a powerful tool to test the functionality of the Visual Voice Pro ActiveX controls such as Voice control. Visual Voice Pro can also be used in conjunction with Symantec’s Winfax or Microsoft Fax to handle fax calls in addition to voice calls. For high-volume fax applications, however, Artisoft provides Visual Fax (used with fax boards) to handle situations such as network fax or broadcast fax applications.

Finally, we want to mention that the telephony boards (including Dialogic boards) come with their own Software Development Kits (SDK) allowing the developers to write their applications directly to the hardware. Such hardwarespecific applications are often cumbersome to write, difficult to port, and tough to maintain. Application generators such as Visual Voice Pro abstract and hide many of the complex details of the hardware, allowing the developer to concentrate on the application rather than the hardware. But for those who may still choose to brave the esoteric world of telephony, Visual Voice Pro provides the way to write directly to the telephony boards as well.

If you are a CTI reseller or an enduser interested in developing your own telephony applications (Voicemail, IVR, predictive dialer, etc.) Visual Voice Pro 4.0 gives you the tools needed to quickly and efficiently build your applications. Visual Voice Pro can support up to 96-line systems, analog and digital T1 interfaces, PBX and Centrex environments, and other services such as caller ID and ANI. Built as a collection of ActiveX controls and graphical utilities, Visual Voice Pro can be employed in almost any development environment, although in our opinion it finds its home with Visual Basic. Among the notable features of version 4.0 is support for multi-threaded applications, considerably less memory requirement, and Code Wizard to facilitate application development. Areas where we would like to see improvement include stronger wizards to generate complete telephony applications from scratch, Internet telephony capability, and support for other boards in the industry.

Technology Marketing Corporation

2 Trap Falls Road Suite 106, Shelton, CT 06484 USA
Ph: +1-203-852-6800, 800-243-6002

General comments: [email protected].
Comments about this site: [email protected].


© 2023 Technology Marketing Corporation. All rights reserved | Privacy Policy