Request the transfer of an active call to a third party.
Optional for all signaling processes. This primitive is one of the primitives used to implement the call transfer capability. signaling processes that implement the call transfer capability should specify SL_SIGPROC_CAPABILITY_TRANSFER on registration.
The signaling interface library (libsl.a).
typedef struct { SL_ID id; int iseq_no; pid_t pidCHP; SL_PRIMITIVE_TYPE Command; SL_REQUEST_PARM_ST Parms; } SL_REQUEST_ST; ... typedef union { ... struct _call_transfer_request_st { size_t sizetLength; SL_CALL_REF slCallReference; char phone_num[SL_PHONE_NUM_LEN]; int pause; int ring_wait; int ring_time; int iChannelNo; int iVpackNo; SL_APPL_INFO_ST slApplInfo; }call_transfer_request_st; ... } SL_REQUEST_PARM_ST;
The SL_CALL_TRANSFER_REQ primitive is sent by the channel process to the signaling process to request to transfer a active call to a third party. The channel process transfers a call by sending an SL_CALL_TRANSFER_REQ primitive to the signaling process, using the call reference to identify the call to be transferred. The signaling process then signals to the network to initiate the transfer. When the call is transferred, or when the transfer is known to have failed, the signaling process sends back the SL_CALL_TRANSFER_CNF primitive, with the ReplyCode set to indicate the success of the transfer.
The SL_CALL_TRANSFER_REQ primitive and the matching SL_CALL_TRANSFER_CNF correspond to the TransferCall state table action. See the Blueworx Voice Response for AIX: Application Development using State Tables information.
If ring_wait and ring_time are set to 0, this is a request for a blind transfer. The signaling process should transfer the call and immediately return SL_REPLY_SUCCESS, without waiting for any further activity on the channel. For example, a blind transfer may be used to transfer incoming calls to an automatic call distributor (ACD) group for handling.
This time is usually part of the protocol specification for common channel signaling protocols. The value specified by the state table may be ignored by common channel signaling processes.
If ring_wait and ring_time are set to 0, this is a request for a blind transfer. For more information, see ring_wait.
This time is usually part of the protocol specification for common channel signaling. The signaling process should return SL_REPLY_NO_ANSWER, if the value specified by the state table is less than the network maximum ring time and the call is not transferred. If the value specified by the state table is greater than the network maximum ring time, it may be ignored by common channel signaling processes.
The maximum length of phone number supported by Blueworx Voice Response is SL_NUM_SZ-1 digits. The phone_num field is longer than this to allow for future expansion.