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