SL_CALL_SETUP_CNF primitive

Purpose

Confirm a request to establish an outbound call.

Requirement

Mandatory for common channel signaling processes. The primitive is not used by exchange data link signaling processes.

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_setup_confirm_st {
                    size_t sizetLength;
                    SL_REPLY_CODE ReplyCode;
                    SL_CALL_REF slCallReference;
                    int iChannelNo;
                    int iVpackNo;
                    int iChannelGroup;
                    SL_CALL_PROGRESS_TYPE tone_type;
                    int tone_id;
                    SL_APPL_INFO_ST slApplInfo;
                } call_setup_confirm_st;
...
} SL_CONFIRM_PARM_ST;

Description

The SL_CALL_SETUP_CNF primitive is sent by the signaling process to the channel process to confirm the successful establishment of an outbound call, or notify the channel process that an outbound call attempt has failed. On receipt of the SL_CALL_SETUP_REQ primitive the signaling process should setup a call as requested. When call setup is complete, or the call attempt has failed, the signaling process sends back the SL_CALL_SETUP_CNF primitive, with the ReplyCode set to indicate the success of the call.

After the signaling process has sent SL_CALL_SETUP_CNF, the channel is connected, and voice traffic can be sent and received from the line by the channel process.

Corresponding state table action

The SL_CALL_SETUP_REQ primitive and the matching SL_CALL_SETUP_CNF correspond to the MakeCall 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_SETUP_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_SETUP_REQ primitive. Because the process id of the channel process is also required when sending SL_CALL_TERMINATE_IND, the signaling process should store this value together with the call reference for later use.
Command.id
The primitive that the structure contains. Must be set to SL_CALL_SETUP_CNF.
Parms.call_setup_confirm_st.sizetLength
Must be set to sizeof(struct _call_setup_confirm_st).
Parms.call_setup_confirm_st.ReplyCode
Specifies whether the call was established successfully or not.
SL_REPLY_ABORTED
The signaling process has received an SL_ABORT_REQ primitive specifying the sequence number of a SL_CALL_SETUP_REQ primitive, for a call which has not yet been established. The signaling process should reply with SL_REPLY_ABORTED, and if necessary, clear the call to the network. The call is in the idle state.
SL_REPLY_GLARE
The call was not established successfully due to a glare condition. The call is in the idle state.
SL_REPLY_INTERNAL_ERROR
The signaling process experienced an internal failure while processing the SL_CALL_SETUP_REQ primitive. The call specified by slCallReference was not established and is now in the idle state.
SL_REPLY_INVALID_PHONE_NUMBER
The call was not established successfully because the number specified in the phone_num field of the SL_CALL_SETUP_REQUEST primitive is invalid. The call is in the idle state.
SL_REPLY_NETWORK_BUSY
The call was not established successfully because the network is busy. The call is in the idle state.
SL_REPLY_NO_ANSWER
The call was not established successfully because the telephone number dialled did not answer. The call is in the idle state.

Common channel signaling processes may chose to ignore the Ring Time state table parameter, because the signaling protocol specifies a own timeout value.

SL_REPLY_NO_LINES_AVAILABLE
The call was not established successfully because no outbound line was available for the call. The call is in the idle state.
SL_REPLY_NOT_IMPLEMENTED
Only allowed for exchange data link signaling processes.
SL_REPLY_PHONE_BUSY
The call was not established successfully because the number specified in the phone_num field of the SL_CALL_SETUP_REQUEST primitive is busy. The call is in the idle state.
SL_REPLY_OUTBOUND_LINE_PROBLEM
The call was not established successfully, because of an outbound line problem. The call is in the idle state.
SL_REPLY_SUCCESS
The call is connected on pack iVpackNo on channel iChannelNo. The call is in the connected state. Depending on the signaling process, call progress information may be provided in tone_type and tone_id. The call reference should be kept and used on further call related primitives.
SL_REPLY_UNEXPECTED_TONE
The call was established successfully but unexpected progress information was received from the network. The call is in the connected state.
other values
Not supported.
Parms.call_setup_confirm_st.slCallReference
The call reference that identifies the call. This must be identical to the slCallReference field from the corresponding SL_CALL_SETUP_REQ primitive.
Parms.call_setup_confirm_st.iChannelNo
Identifies the channel associated with the call. If ReplyCode is SL_REPLY_SUCCESS this field must be set to the channel allocated by the signaling process, otherwise it must be set to SL_UNDEFINED_CHAN. This information is made available to the application in the system variable System: Call: Physical channel (SV167).
Parms.call_setup_confirm_st.iVpackNo
Identifies the trunk associated with the call. If ReplyCode is SL_REPLY_SUCCESS this field must be set to the trunk allocated by the signaling process, otherwise it must be set to SL_UNDEFINED_VPACK. This information is made available to the application in the system variable System: Call: Physical card (SV166).
Parms.call_setup_confirm_st.iChannelGroup
Specifies the channel group used for this call. If ReplyCode is set to SL_REPLY_SUCCESS, this field must be set to a channel group in the range SL_MIN_CHANNEL_GROUP_ID to SL_MAX_CHANNEL_GROUP_ID, otherwise it must be set to SL_CHANNEL_GROUP_NONE. This information is made available to the application in the system variable System: Call: Current channel group (SV177).
Parms.call_setup_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). Tone types and tone identifiers are described in the Blueworx Voice Response for AIX: Configuring the System information.

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

A common channel signaling process does not have access to inband 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_setup_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