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:
- Device Class
- Device Identifier
- Address Type
- Address Identifier
- Device Events
- Media Type
- Terminal Type
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.
Below is a summary of TAPI operations that query service providers on device characteristics and provide data on current state.
|TAPI 2.x functions||Description|
|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 methods||Description|
|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.|