Telephony Components

Based on the Windows Open Services Architecture (WOSA) model, Windows Telephony consists of the TAPI and TAPI32 dynamic-link libraries (which forward application requests to the telephony service for processing), tapisrv.exe (which implements and manages the TAPI functions), and one or more telephony service providers (drivers). TAPI provides a device-independent interface for carrying out telephony tasks. Service providers are dynamic-link libraries that carry out low-level and possibly device-specific actions needed to complete telephony tasks through hardware devices such as fax boards, ISDN cards, telephones, and modems. Applications link to and call functions in the TAPI dynamic-link library only; they never call the service providers directly.

When an application calls a TAPI function, the TAPI dynamic-link library validates and marshals the parameters of the function and forwards it to tapisrv.exe. TAPISRV (the telephony service) processes the call and routes a request to the appropriate service provider. To receive requests from TAPISRV, the service provider must implement the Telephony Service Provider Interface (TSPI). A service provider can provide different levels of the service provider interface: basic, supplementary, or extended. For example, a simple service provider might provide basic telephony service, such as support for outgoing calls, through a Hayes-compatible modem. A custom service provider, written by a third-party vendor, might provide a full range of incoming and outgoing call support.

A user can install any number of service providers on a computer as long as the service providers do not attempt to access the same hardware device at the same time. The user associates the hardware and the service provider when installing. Some service providers may be capable of accessing multiple devices. In some cases, the user may need to install a device driver along with the service provider.

Applications use the TAPI functions to determine which services are available on the given computer. TAPI determines what service providers are available and provides information about their capabilities to the applications. In this way, any number of applications can request services from the same service provider; TAPI manages all access to the service provider.

As long as an application does not depend on optional features, the applications can, without modification, use any services to carry out telephony tasks, even services made available after the application is developed. This is because the application always accesses the many different services through TAPI which translates the requests the application makes into the actual protocols and interfaces required.

The Telephony SPI is beyond the scope of this reference. For more information about TSPI and service providers, see the Microsoft TSPI Programmer's Reference.