Platform SDK: TAPI |
Call pickup allows an application to answer a call that is alerting at another address. The application identifies the target of the pickup and is returned a session identifier for the picked-up call.
There are several ways to specify the target of the pickup request. First, specify the address (extension) of the alerting party. Second, if no extension is specified and the switch allows it, the application can pick up any ringing phone in its pickup group. Third, some switches require a group identifier to identify the group to which the ringing extension belongs.
Some key telephone systems support a transfer through hold capability on bridged-exclusive call appearances. In this scheme, a particular phone owns a call exclusively when the call is active, but, when the call is on hold, any phone that has an appearance of the line can pick up the call.
In TAPI version 2.0 and later, an application can use a pickup operation with a NULL target address for this purpose, similar to how the function is used to pick up a call waiting call on an analog line. LINEADDRFEATURE_PICKUPHELD indicates the existence of the capability.
If LINEADDRCAPFLAGS_PICKUPCALLWAIT is TRUE, a session can be picked up for which the user has audibly detected the call-waiting signal but for which the service provider is unable to perform the detection. This gives the user a mechanism to "answer" a waiting call even though the service provider was unable to detect the call-waiting signal. Both the destination address and the group ID must be NULL to pick up a call-waiting call.
When a session has been picked up successfully, the application receives a state change notification with the reason set to LINECALLREASON_PICKUP.
Not all service providers support use of this operation.
TAPI 2: linePickup
TAPI 3: ITBasicCallControl::Pickup