2.4.1.3 Addresses
Each line device is assigned one or more addresses. Think of an address as corresponding to a telephone directory number assigned to the line device. The SPI presents a model where address assignments to line devices are static and will not change until reconfigured at the switch or network. TSPI_lineGetDevCaps for a line device returns the number of addresses assigned to the line. Individual addresses are assigned Address IDs, which are numbers in the range zero to the number of addresses on the line minus one. An address ID is only meaningful in the context of a given line device, so an address is named as the tuple consisting of line and address ID. As described later, a line can be named by its device ID or handle.
The network or switch can configure address-to-line assignments in several ways. Usually, one of the addresses assigned to a line will be that line's primary address. A line's primary address is able to uniquely identify the line device, although the address may also be assigned to other lines as a non-primary address. Address configurations recognized by the Telephony SPI include:
- Private. The address is assigned to one line device only. An inbound call for this address is only offered at one line device.
In contrast, a bridged address is assigned to more than one line device. Depending on the switch vendor different terminology may be used such as: multiple appearance directory number (MADN), bridged appearance, shared appearance. An incoming call on a bridged address will be offered on all lines associated with the address. Different variations arise from the associated behavior when using such a bridged address.
- Bridged-Exclusive. Connecting one of the bridged lines to a remote party will cause the address to appear "in use" to all other parties that are part of the bridge.
- Bridged-New. Connecting one of the bridged lines to a remote party still allows the other lines to use the address. However, a new call appearance is allocated to the second line.
- Bridged-Shared. If one line is connected to a remote party, other bridged lines that use the address will enter into a multi-party conference call on the existing call.
- Monitored. The line provides an indication of the busy or idle status of the address, but the line cannot use the address for answering or making calls.
As is the case with line devices, the addresses assigned to a line device may have different capabilities. Switching features and authorization may be different for different addresses. An app must call TSPI_lineGetAddressCaps to determine the exact capabilities of each address.
TSPI_lineGetAddressCaps
Returns the telephony capabilities of an address as a data structure of type LINEADDRESSCAPS.
The SPI's device query capability, status and event reporting mechanisms provide the TAPI DLL with the necessary information required to manage the different bridged address arrangements. For example, the TAPI DLL will be able to 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 further).
The TAPI DLL is notified about changes in the status of an address via the LINE_ADDRESSSTATE callback message. The TAPI DLL can control the address status items for which it wants to be notified via the function TSPI_lineSetStatusMessages. It can determine the complete status of an address device by calling TSPI_lineGetAddressStatus.
TSPI_lineGetAddressStatus
Returns current status of a specified address via a structure of type LINEADDRESSSTATUS.
LINE_ADDRESSSTATE
Message sent to the application to notify it about changes in the address status.
Addresses on a line device are normally identified via their address ID. When making calls, the SPI 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 SPI extensions based on switch-assigned station IDs). The function TSPI_lineGetAddressID provides for the mapping of the alternate address format back to the address ID used by other operations in the API.
TSPI_lineGetAddressID
Retrieves the address ID of an address specified using an alternate format.