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