2.3.3 Call Control

The primary focus of the Windows Telephony SPI is to provide useful telephony functions to the TAPI DLL and its client desktop applications. In its simplest form, the view of telephony provided to the application developer roughly corresponds to one where telephone lines and phone sets logically terminate at the Telephony API. The TAPI DLL manages these application-level telephone lines and phone sets in terms of similar low-level telephone lines and phone sets that logically terminate at the Telephony SPI. The TAPI DLL adds a veneer of multiple-application access and cooperation on top of the single-client model for logical lines and phones appearing at the SPI.

The physical connection to a line or phone may be made at the desktop, or at a LAN-based host or server, where a LAN protocol "extends" the connection of the phone lines or phone to the SPI.

The SPI provides a first party call control model on the logically terminated line as well as control of the associated phone device. First party call control implies that the TAPI DLL controlling the call through the SPI acts as if it is an endpoint of the calls it controls. This is in contrast to third party call control where the controlling agent does not act as if it is an endpoint of the calls it controls. For example, with first party call control, the TAPI DLL can only make or answer a call if it acts as either the originating party or the terminating party of the call. A third party call control model would allow the TAPI DLL to establish or answer a call between "any" two parties, with the TAPI DLL not acting as either of these parties.

This does not mean that the Windows Telephony SPI cannot be useful in providing call control in a third party environment. Note the usage of the phrase "act as" in the paragraph above. Each individual station on the switch is identified by its primary phone number (or other means). A possible implementation of the SPI's line and phone behavior by a service provider is to model the collection of all stations on the switch as a single line device that has multiple phone numbers assigned to it; each phone number on the line device in reality maps to one of the stations on the switch. The TAPI DLL can make and answer calls selecting any one of the addresses on the line device as the origination number. Although the TAPI DLL appears to be the originating party, in reality, a call will be established between the station whose address was selected by its originating number and the other party.