An Object-Oriented Solution for Windows Telephony
The Telephony API (TAPI) is an integral but unappreciated part of Microsoft Windows and Windows NT. It is both a programming interface, and an arbitrator that allows multiple applications to share a single telephony device. It also offers a standard interface to communications devices, such as modems and specialized telephony boards, from different vendors.
Before TAPI was introduced (with Windows 95), manufacturers of telephony hardware and third-party developers created hardware-dependent applications. In response to the influence of Microsoft, however, most manufacturers are distributing drivers to make their hardware compatible with TAPI-compliant applications.
To make telephony features available to most general-purpose application programmers, however, an easier and more intuitive software layer is required. This article presents ExceleTel TeleTools as an object-oriented telephony solution for programmers in the Microsoft, Borland, and other development environments.
The Windows Software Model for Computer Telephony
For the various versions of Microsoft Windows, the Windows Open Services Architecture (WOSA) describes three levels of software that support computer telephony. Starting at the bottom of Figure 1, …
Specialized telephony devices, such as a Dialogic board, are telephones-on-a-card that install into a PC. They are the core of interactive voice response, voicemail, and other sophisticated applications. A modem or voice modem can also serve as a telephony device, usually with some feature limitations. In addition, a new breed of telephony devices are emerging to fully leverage the power of TAPI as a desktop telephony enabler.
A Telephony Service Provider (TSP) is a device driver supplied by the manufacturer of a telephony device. When a data modem is serving as a telephony device, the TSP is usually Microsoft’s Unimodem driver. When a voice modem is the telephony device, the TSP is usually Microsoft’s UnimodemV (Unimodem "Voice") driver.
The Telephony API (TAPI) is set of function calls that interact with TSP’s in a standard way, regardless of the underlying TSP and hardware. TAPI is a DLL.
A client application, such as a voicemail or CallerID-enabled database tool, provides end-user functions by calling TAPI. ExceleTel TeleTools is a set of object-oriented development tools that shield the programmer from the complexities of TAPI.
Figure 1. The Windows Open Service Architecture (WOSA) describes three levels of software to support telephony hardware: the Service Provider Interface (SPI) where TSPs reside; the API/SPI Interface where TAPI resides; and the Client API level where the client application resides. ExceleTel TeleTools is a development environment for client applications that shields the programmer from the complexities of TAPI.
An Example of the Beauty of TAPI
Many voice modems on the market are bundled with fancy telephony software like voicemail or speakerphones. Most such programs don’t use TAPI. They work directly with the modem hardware, meaning that they won’t work on another manufacturer’s hardware, but more significantly that they may conflict with other programs that need to use the same modem. For example, Dial-Up Networking in Windows 95 uses TAPI, but your non-TAPI fax program probably conflicts with TAPI based programs.
TAPI, Unimodem, and UnimodemV are steps toward standardized communications programming under current and future Windows operating systems. Microsoft’s clout in establishing these standards is significant, and TAPI compliance by modem and other telephony device manufacturers is well established and growing. The next logical need is a higher-level interface to TAPI.
The Higher-Level Interface is Here
ExceleTel Inc. has created a set of tools known as ExceleTel TeleTools for Windows programmers to easily add TAPI-based telephony features to their applications. TeleTools is available as a set of ActiveX controls (for Visual Basic and other environments that support OCX containers) and as a set of VCL controls for Borland’s Delphi and C++ Builder environments. TeleTools is the best product available for adding desktop telephony functionality to applications via TAPI.
ExceleTel TeleTools can help create server-based applications like voicemail or interactive voice response systems, but its specialty is desktop telephony. That is, easily enabling desktop applications with telephony features like dial, answer, CallerID, play, record, fax detect, etc. It was designed with the business application programmer in mind. With TeleTools and a few lines of code, for example, you can enable an order processing system to perform customer lookup based on CallerID data.