As is the case with line devices, the addresses assigned to a line device can have different capabilities. Switching features and capabilities (including authorization) can be different for different addresses. When an application calls lineGetAddressCaps, tapi32.dll calls TSPI_lineGetAddressCaps to determine the telephony capabilities of each address. The service provider must return the telephony capabilities of an address as a data structure of type LINEADDRESSCAPS. In a similar way, the service provider implements TSPI_lineGetDevCaps to provide an application with the number of addresses assigned to the line, as well as other information.
The TSPI device query capability, and status and event reporting mechanisms provide tapi32.dll with the information required to manage the different bridged address arrangements. For example, tapi32.dll can determine if a call has been answered by a bridged station by tracking the status changes and call state event changes on the address (see Call States and Events).
An address on a line device is normally identified through its address identifier. When making calls, TSPI allows alternate address selections for the originating address, such as its address in dialable format or even service provider-specific naming mechanisms (for example, by using TSPI extensions based on switch-assigned station identifiers). The TSPI_lineGetAddressID function maps the alternate address format back to the address identifier used by other functions in TSPI.
The tapi32.dll is notified about changes in the status of an address in the LINE_ADDRESSSTATE callback message. tapi32.dll can control the address status items for which it wants to be notified with the TSPI_lineSetStatusMessages function. It can determine the complete status of an address device by calling TSPI_lineGetAddressStatus.