SL_CALL_TRANSFER_CNF primitive

Purpose

Confirm a request to transfer an active call to a third party.

Requirement

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 specify SL_SIGPROC_CAPABILITY_TRANSFER on registration.

Library

The signaling interface library (libsl.a).

C syntax

typedef struct {
                SL_ID id;
                int iseq_no;
                pid_t pidCHP;
                SL_PRIMITIVE_TYPE Command;
                SL_CONFIRM_PARM_ST Parms;
} SL_CONFIRM_ST;
...
typedef union {
...
                struct _call_transfer_confirm_st {
                    size_t sizetLength	;
                    SL_REPLY_CODE ReplyCode;
                    SL_CALL_REF slCallReference;
                    int iChannelNo;
                    int iVpackNo;
                    SL_CALL_PROGRESS_TYPE tone_type;
                    int tone_id;
                    SL_APPL_INFO_ST slApplInfo;
                }call_transfer_confirm_st;
...
} SL_CONFIRM_PARM_ST;

Description

The SL_CALL_TRANSFER_CNF primitive is sent by the signaling process to the channel process to confirm a request to transfer a call to another party, or notifies the channel process that an attempt to transfer a call has failed. 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.

If the call transfer is unsuccessful, the channel process can reconnect the original caller to Blueworx Voice Response, by sending the SL_CALL_RECONNECT_REQ primitive.

Corresponding state table action

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.

Parameters

id
Eye-catcher that identifies the structure as containing a confirm primitive. Must be set to SLID_CONFIRM_ST.
iseq_no
The sequence number of the primitive. Must be set to the field iseq_no from the SL_CALL_TRANSFER_REQ primitive, to which this is the reply.
pidCHP
The process id of the channel process. This should be set to the pidCHP field from the corresponding SL_CALL_TRANSFER_REQ primitive.
Command.id
The primitive that the structure contains. Must be set to SL_CALL_TRANSFER_CNF.
Parms.call_transfer_confirm_st.sizetLength
Must be set to sizeof(struct _call_transfer_confirm_st).
Parms.call_transfer_confirm_st.ReplyCode
Specifies whether the call was transferred successfully or not.
SL_REPLY_ABORTED
The signaling process has received an SL_ABORT_REQ primitive specifying the sequence number of a SL_CALL_TRANSFER_REQ primitive, which has not yet been transferred. The signaling process replies with SL_REPLY_ABORTED, and if necessary, reconnect the original call to Blueworx Voice Response.
SL_REPLY_CALLER_HUNG_UP
The call was not reconnected successfully, because the signaling processes detected that the original caller has hung up.
SL_REPLY_GLARE
The call was not transferred successfully due to a glare condition. The call specified by slCallReference is now on hold. Blueworx Voice Response may not currently be connected to the original caller.
SL_REPLY_INTERNAL_ERROR
An error occurred within the signaling process. The call was not transferred successfully. The call specified by slCallReference is now on hold. Blueworx Voice Response may not currently be connected to the original caller.
SL_REPLY_INVALID_PHONE_NUMBER
The call was not established successfully because the number specified in the phone_num field of the SL_CALL_TRANSFER_REQUEST primitive is invalid. The call specified by slCallReference is now on hold. Blueworx Voice Response may not currently be connected to the original caller.
SL_REPLY_NETWORK_BUSY
The call was not transferred successfully because the network is busy. The call specified by slCallReference is now on hold. Blueworx Voice Response may not currently be connected to the original caller.
SL_REPLY_NO_ANSWER
The call was not transferred successfully because the telephone number dialled did not answer.

Common channel signaling processes may choose to ignore the Ring Time state table parameter, because the signaling protocol specifies a own timeout value. The call specified by slCallReference is now on hold. Blueworx Voice Response may not currently be connected to the original caller.

SL_REPLY_NOT_IMPLEMENTED
Should be returned by signaling processes that did not register support for SL_SIGPROC_CAPABILITY_TRANSFER.
SL_REPLY_OUTBOUND_LINE_PROBLEM
The call was not transferred successfully, because of an outbound line problem. The call was not transferred successfully. The call specified by slCallReference is now on hold. Blueworx Voice Response may not currently be connected to the original caller.
SL_REPLY_PHONE_BUSY
The call was not transferred successfully because the number specified in the phone_num field of the SL_CALL_TRANSFER_REQUEST primitive is busy. The call specified by slCallReference is now on hold. Blueworx Voice Response may not currently be connected to the original caller.
SL_REPLY_SUCCESS
The first part of the transfer has completed successfully. The call specified by slCallReference is now on hold. Blueworx Voice Response is now connected to the third party specified by the PhoneNum parameter of the corresponding SL_CALL_SETUP_REQ primitive. Depending on the signaling process, call progress information may be provided in tone_type and tone_id.
SL_REPLY_UNEXPECTED_TONE
The call was transferred successfully but unexpected progress information was received from the network. The call specified by slCallReference is now on hold. Blueworx Voice Response is now connected to the third party.
other values
Not supported.
Parms.call_transfer_confirm_st.slCallReference
The call reference that identifies the call. This must be identical to the slCallReference field from the corresponding SL_CALL_TRANSFER_REQ primitive.
Parms.call_transfer_confirm_st.iChannelNo
Identifies the channel associated with the call. The channel number used by Blueworx Voice Response does not change as the result of a call transfer. Should be set to the iChannelNo field from the corresponding SL_CALL_TRANSFER_REQ primitive.
Parms.call_transfer_confirm_st.iVpackNo
Identifies the trunk associated with the call. The trunk used by Blueworx Voice Response does not change as the result of a call transfer. Should be set to the iVpackNo field from the corresponding SL_CALL_TRANSFER_REQ primitive.
Parms.call_transfer_confirm_st.tone_type
This field identifies a call progress tone type.

A common channel signaling process does not have access to in-band call progress tones and therefore should set this field to PROG_UNKNOWN.

A signaling process can instead return a value based on the progress information it receives from the network. This information is made available to the application in the system variable System: Progress tone type (SV176).

Parms.call_transfer_confirm_st.tone_id
This field identifies a call progress tone identifier.

A common channel signaling process does not have access to in-band call progress tones and therefore should set this field to 0.

A signaling process can instead return a value based on the progress information it receives from the network. Tone ids are sequential identifiers for every tone that exists in each table in the system. This information is made available to the application in the system variable System: Progress tone ID (SV175).

Parms.call_transfer_confirm_st.slApplInfo
Contains both the length of the call information tag string (including the null terminator '\0') and the call information tag string array itself. The string is used to pass information between state tables and the signaling process. For more information see SL_APPL_INFO_ST data structure

Related information