Device Control

Device control at the end-user or server application level requires a relatively small set of basic information. The service provider abstraction layer performs detailed device control. The service providers report required device information to an application through TAPI.

Key device categories include:

  • Network: The transport layer for communications. From an application's point of view, information about the network is typically embedded in the address type, such as LINEADDRESSTYPE_PHONENUMBER.
  • Line: A connection to a network. This concept is heavily used within TAPI 2.2 (TAPI/C).
  • Channel: A subdivision of a line. Knowledge of channels is normally not required of an application because the service provider configures how they will appear as addresses.
  • Address: A network location on a network. Each line or channel has one or more associated addresses. The address is a key concept in both TAPI 3.1 (TAPI/COM) and TAPI 2.2 (TAPI/C).
  • Terminal: A source or renderer for a particular address and media type.

The service providers report device characteristics to TAPI in response to application queries. Service providers also initiate reports on changes in device state. These changes are then reported to an application based on the notifications requested during initialization.

Basic device characteristics are:

In addition, the service providers supply information concerning the capacity of a given address to perform various session operations.

Supplemental characteristics may be associated with certain devices, if the service providers support them. A TAPI 2.x application discovers capabilities by using the lineGetDevCaps and lineGetAddressCaps functions. TAPI 3.x applications use the ITAddressCapabilities interface for this purpose.

TAPI 2.x provides a special set of supplemental operations that the service provider may implement for use with phone devices. See Phone Devices.

Extended capabilities are provider-specific and not directly covered by the Microsoft Telephony API. See Extended Line Functions, Extended Telephony Phone Functions, or Provider-Specific Interfaces.

Below is a summary of TAPI operations that query service providers on device characteristics and provide data on current state.

TAPI 2.x functionsDescription
lineGetDevCaps Queries a specified line device to determine the telephony capabilities of associated addresses.
lineGetAddressCaps Queries a specified line device to determine the telephony capabilities of specific address.
lineGetDevConfig Returns an "opaque" data structure that stores the current configuration of a device.
lineSetDevConfig Restores device configuration.
lineConfigDialog Display a dialog box that allows the user to configure parameters related to the device.
lineGetID Retrieves a stable device identifier that can be used in further TAPI function calls, or with a different API.
lineGetLineDevStatus Queries device for current status, such as number of active calls.
lineSetLineDevStatus Sets device status, such as setting a device as not in service.
lineGetIcon Retrieves provider-specific icon for display to the user.
lineNegotiateExtVersion Allows an application to negotiate an extension version to use with the specified line device.
lineDevSpecific Gives access to device-specific features.
lineDevSpecificFeature Sends device-specific features to the service provider.


TAPI 3.x interfaces or methodsDescription
ITAddressCapabilities Gets information concerning an address's capabilities.
ITAMMediaFormat Sets and gets DirectShow™ media format.
ITBasicAudioTerminal Sets and gets standard audio terminal characteristics, such as volume.
ITMediaSupport Gets information concerning an address's media support capabilities.
ITTerminal Base interface for the Terminal object. Obtains information such as terminal class and media supported.
ITTerminalSupport Gets information on available terminals and creates additional terminals.
Provider-Specific Interfaces Service provider dependent.




Community Additions