The Windows Telephony services are provided as a WOSA (Windows Open Services Architecture) component. It consists of both an application programming interface (API) used by applications and a service provider interface (SPI) implemented by service providers. Only the API is described in this document.
The focus of the API is to provide "personal telephony" to the Windows platform. Telephony services break down into Simple Telephony services and Full Telephony services. Simple Telephony allows telephony-enabled applications to easily incorporate call establishment from within these application without these apps needing to become aware of the details of the Full Telephony services. Word processors, spreadsheets, data bases, personal information managers can easily be extended to take advantage of this.
Complete call control is only possible through the use of the Full Telephony services. Applications access the Full Telephony API services using a first-party call control model. This means that the application controls telephone calls as if it is an endpoint of the call. The application can make calls, be notified about inbound calls, answer inbound calls, invoke switch features such as hold, transfer, conference, pickup, park, etc., detect and generate DTMF for signaling with remote equipment. An app can also use the API to monitor call-related activities occurring in the system.
The fact that the API presents a first-party call control model does not restrict its use to only first-party telephony environments. The Windows Telephony API can be meaningfully used for third-party call control.
The API provides an abstraction of telephony services that is independent of the underlying telephone network and the configuration used to connect the PC to the switch and phone set. The API provides independent abstractions of the PC connections to the switch or network and the phone set. The connection may be realized in a variety of arrangements including pure client based wired or wireless connections, or client/server configurations using some sort of local area network.
The Telephony API by itself is not concerned with providing access to the information exchanged over a call. Rather, the call control provided by the API is orthogonal to the information stream management. The Telephony API can work in conjunction with other Windows services such as the Windows multimedia wave audio, MCI, or fax APIs to provide access to the information on a call. This guarantees maximum interoperability with existing audio or fax applications.
The Telephony API defines three levels of service. The lowest level of service is called Basic Telephony and provides a guaranteed set of functions that corresponds to "Plain Old Telephone Service" (POTS - only make calls and receive calls). The next service level is Supplementary Telephony Service providing advanced switch features such as hold, transfer, etc. All supplementary services are optional. Finally, there is the Extended Telephony level. This API level provides numerous and well-defined API extensions mechanisms that enable application developers to access service provider-specific functions not directly defined by the Telephony API.