Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesTools for Telephony Apps


February 1997 / State Of The Art / Tools for Telephony Apps

There's a telephony development tool for almost any need or skill level.

Michael Nadeau

The days of creating telephony applications using the Hayes AT command set are long gone. Today, you have just as many choices of telephony development tools as for any other type of application programming. At the lowest levels, you can use a procedural language such as C to write code that speaks directly to the telephony hardware. Or you can work in a graphical development environment and avoid actual coding altogether. Component software and visual programming tools let you build telephony applications by linking ready-made modules.

Choosing the right tool from this mix of approaches, however, isn't always easy. In this article we'll discuss how the major types of programming tools for CTI compare. We'll also look at two companies that chose different approaches -- low-level procedural programming versus visual toolkits -- for CTI development.

Block by Block

Inevitably, your choice of development tool will represent a trade-off between power and ease of use. Writing your software in C, for example, puts you in full control of all the telephony hardware's capabilities but requires a high level of skill (see the sidebar "When C++ Is Right"). C is generally the language of choice for OEMs developing applications for resale. At the other end of the spectrum, visual programming tools offer drag-and-drop application construction but little hardware control (see the sidebar "Visual Tools to the Rescue").

Fortunately, component software offers a middle ground for developing telephony applications. Several companies, such as Pronexus, Artisoft, and Technically Speaking, sell telephony-specific ActiveX components. Microsoft has tightly integrated ActiveX controls with its Telephony API (TAPI) spec. Component software presents a graphical development environment and allows programmers to avoid having to code much of an application's internal plumbing. With software components, you can create larger applications by combining smaller, more specialized programs. This leaves programmers having to code only those functions unique to their programs, using the component software's native language or a variety of other tools. The benefit of using components can be rapid development with a high level of customization.

Component building blocks are becoming widely available. Microsoft boasts that over 1000 ActiveX controls are now available. The company recently turned over control of the ActiveX spec to The Open Group ( http://www.opengroup.org ), an industry standards-setting consortium. It, in turn, has set up the ActiveX Working Group ( http://www.activex.org/ ), which is entrusted to develop the ActiveX standards. As an open standard, ActiveX should see broad industry support.

Java Telephony

ActiveX has competition on the horizon in the form of JTAPI, the Java Telephony API proposed by Sun Microsystems, which developed the spec with a handful of companies, including Intel, Lucent Technologies, Nortel (Northern Telecom), and Novell. It is essentially a set of reusable telephone call-control objects. Java-based telephony applications will run on any computer with a Java virtual machine and a JTAPI telephony subsystem. Because they are based on Java, JTAPI objects are independent of any operating system and hardware platform and are therefore portable from one platform to another (see the figure "Internet Telephony" ).

JTAPI defines a set of class libraries consisting of a core group of telephony capabilities and a set of extensions that developers can use as needed for individual applications. For example, one set of extensions handles tasks such as call routing and setting up conferences among groups of callers.

One of the more promising applications of JTAPI will be a new generation of hybrid phones that combine traditional telephone service with a Web-capable device you can use for browsing and e-mail. Sun says it is developing, along with Nortel, an Internet telecommunications device that uses JTAPI to link to other phones, desktop computers, and network computers via the Internet. JTAPI works with other telephony APIs, such as TAPI and Novell's Telephony Services API (TSAPI), to invoke telephony capabilities.

Drag-and-Drop Apps

Although telephony components are gaining groun d, many companies also opt for an application toolkit when developing internal telephony programs. These products are sometimes called application generators, though that term is more accurately associated with their text- or forms-based predecessors. Application toolkits are highly graphical environments that let you build software by linking telephony functions. These tool-kits, which often use a flowchart metaphor, let you select common functions -- such as "pick up receiver" or "send fax" -- that are represented as icons or menu choices. You drag and drop these choices into place. No programming skill is required, but you do need to understand syntax and logic -- how all the pieces of your application interact.

It is possible to create complete applications in this manner. But what happens when some feature or customization you need can't be done with a toolkit? You can extend the toolkit's capabilities in a number of ways, depending on the specific product. In most cases, you can incorporate C or Vis ual Basic routines into the application that the toolkit creates. In other cases, customization requires you to use the toolkit's own proprietary scripting language.

There are two basic kinds of toolkits. The classic application toolkit takes a proprietary approach; to change the code the toolkit produces, you either must know the proprietary language or go back to the drawing board and reconstruct the program. Having a proprietary language can be an advantage because it is designed strictly for telephony applications. Some are similar to more popular languages such as C. Examples of proprietary-language toolkits include MediaSoft Telecom's IVS Builder Pro and Apex Voice Communications's OmniVox. IVS Builder Pro is particularly interesting in that it allows you to generate Unix applications using the Windows GUI environment. Anyone who has built applications using development software such as PowerBuilder or Gupta will likely be comfortable using this type of toolkit.

The other category of toolkit is often referred to as visual telephony. These products are usually based on a version of Microsoft's Visual Basic (Pronexus's VB Voice 32 uses Visual C++) enhanced with telephony-specific extensions. You can modify applications created with visual telephony toolkits by modifying the Visual Basic code it outputs or by using prepackaged routines, or reusable objects, available from a number of vendors -- really just another form of component software. Visual telephony has obvious appeal to any developer already familiar with Visual Basic. Artisoft's Visual Voice ( see the screen ) and Voysys's VoysAccess are examples of visual telephony environments.

Easier Still

A new breed of telephony application builder is emerging. These products are actually closer to shrink-wrapped applications than to more traditional development environments. You install them much as you would any common Windows program. Pull-down menus and dialog boxes let you customize the application. Exa mples include Iconics's Alarm WorX+ and Algo Communications's PhoneKits (see the screens "AlarmWorX+" and "PhoneKits" ).

These products package basic telephony functions into a single application. You could use such a package as is, customize the look and feel, or write your own controls and functions. Alarm WorX+ is a Windows-based multimedia alarm-management system that monitors events and notifies, through a Dialogic telephony board, the appropriate people by phone or fax. You modify the program by filling in templates, clicking on selection boxes, typing in data at prompts, or choosing items from a drop-down list. Early this year, Iconics expects to make available ActiveX controls that provide the individual functions of Alarm WorX+ in componentized form.

PhoneKits, also Windows-based, is intended primarily for OEMs or VARs. Compaq, for example, used it to create the telephony applications bundled with the Presario 7100 series PCs. The product is essentia lly a packaging of generic telephony features. PhoneKits is designed to help OEMs or VARs avoid having to reinvent the wheel when developing their applications; they can instead focus their efforts on value-added features and building a unique user interface. Developers must create those features using what Algo calls Phone Object Controls, which are standard DLLs. Last fall, Algo previewed another Windows telephony product called Workgroup Attendant. It lets you set up voice menus that allow callers to, for example, connect to the appropriate person to retrieve specific information. Workgroup Attendant lets you build the CTI application by simply dragging devices into an outline.

Testing CTI Apps

Once you've built your CTI application, be prepared for a testing cycle that can be an order of magnitude more difficult than testing traditional desktop programs. Here are some things to keep in mind when testing CTI applications:

First, consider an outside ser vice to help you evaluate a system beyond the unit-testing phase. For example, some, like Interactive Quality Services, will develop a test suite for you and then flood your application with thousands of calls. The company will then fax you detailed statistics on port availability, response time, failures, and other critical factors. Services like these are great for final integration and regression testing. This level of stress-testing will also help you find memory leaks that reveal themselves only after thousands of cycles.

Second, make sure your test environment matches your production environment. This goes for hardware (computer and telephony), operating systems, and application software.

Third, use testers with a variety of skill levels and a variety of phone and fax equipment. Novice users will alert you to confusing elements of the user interface and will make mistakes you never dreamed of. Together these mixed-skill groups may uncover prob lems that would otherwise probably go undetected in more formal tests.

Finally, watch out for those "extra services" on your phone lines. Call waiting, call answering, and even caller ID can cause problems with your CTI applications. Make sure the lines you are using are as vanilla as possible.

The good news is that no matter what kind of development environment you use, and no matter what degree of programming and testing muscle you can devote to application development, you'll likely find the right tool for generating telephony programs.


Product Information


APPLICATION TOOLKITS


EASE 4.2

Expert Systems
Atlanta, GA
Phone:    (770) 642-7575
Fax:      (770) 587-5547
Internet: 
http://www.EASEy.com/


IVS Builder Pro 2.6

MediaSoft Telecom
Montreal, Quebec
Phone:    (514) 731-3838
Fax:      (514) 731-3833
Internet: 
http://www.mediasoft.ca/


MasterVox

Mastermind Technologies
Arlington, VA
Phone:    (703) 276-9300
Fax:      (703) 276-9301
Internet: 
http://www.mastermind-tech.com/


OmniVox 2.0

Apex Voice Communications
Sherman Oaks, CA
Phone:    (818) 379-8400
Fax:      (818) 379-8410
Internet: 
http://www.apexvoice.com/


Show N Tel

Technically Speaking
Southborough, MA
Phone:    (508) 229-7777
Fax:      (508) 229-8777
Internet: 
http://www.techspk.com/



VISUAL TELEPHONY TOOLKITS VBVoice 32 Pronexus Carp, Ontario, Canada Phone: (613) 838-0033 Fax: (613) 839-0039 Internet: http://www.pronexus.com/ Visual Voice 3.0 Artisoft Tucson, AZ Phone: (520) 670-7100 Fax: (520) 670-7101 Internet: http://www.artisoft.com VOS5 Parity Software Development Sausalito, CA Phone: (415) 332-5656 Internet: http://www.paritysw.com/ VoysAccess 1.2 Voysys Fremont, CA Phone: (510) 252-1100 Internet: http://www.voysys.com/
COMPONENT SOFTWARE ActiveX Microsoft Redmond, WA Phone: (206) 882-8080 Fax: (206) 93-MSFAX Internet: http://www.microsoft.com/ie/ie3/activex.htm JTAPI Sun Microsystems (JavaSoft Division) Mountain View, CA Phone: (415) 960-1300 Internet: http://java.sun.com
CTI HARDWARE Dialogic Parsippany, NJ Phone: (201) 993-3000 Fax: (201) 993-3093 Internet: http://www.dialogic.com Wildf ire Communications Lexington, MA Phone: (617) 674-1500 Fax: (617) 674-1501 Internet: http://www.wildfire.com HotBYTEs - information on products covered or advertised in BYTE

Internet Telephony

illustration_link (67 Kbytes)

Component-based CTI, with telephony APIs like Sun's JTAPI, is easier than writing C code, but more robust than drag-and-drop tool s.


AlarmWorX+

screen_link (61 Kbytes)

AlarmWorX+ lets you build an event-monitoring and notification application by filling in templates.


PhoneKits

screen_link (36 Kbytes)

With PhoneKits, you can build telephony applications by dragging and dropping icons that represent different phone functions.


TAPI Analysis Support Determination

screen_link (49 Kbytes)

The TAPI Examiner lets you analyze a hardware device to determine which Visual Voice features it supports.


Michael Nadeau is a writer and a former BYTE editor who covers communications technology and the Internet. You can reach him at m_nadeau@conknet.com or by sending e-mail to editors@bix.com .

Up to the State Of The Art section contentsGo to previous article: Go to next article: Visual Tools to the RescueSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network