SL_CALL_TERMINATE_CNF primitive

Purpose

Confirm a request to clear an active 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_terminate_confirm_st {
                    size_t sizetLength;
                    SL_REPLY_CODE ReplyCode;
                    SL_CALL_REF slCallReference;
                    SL_APPL_INFO_ST slApplInfo;
                } call_terminate_confirm_st;
...
} SL_CONFIRM_PARM_ST;

Description

The SL_CALL_TERMINATE_CNF primitive is sent by the signaling process to the channel process to confirms that a call has been cleared. After this primitive is sent the call reference value specified in slCallReference is no longer valid, and the call is in the null state.

If the signaling process receives an SL_CALL_TERMINATE_REQ for a call reference that it does not recognize, it should send SL_CALL_TERMINATE_CNF with ReplyCode set to SL_REPLY_GLARE.

The digital trunk device driver prevents any further voice traffic from being sent from Blueworx Voice Response to the line. Any voice data or DTMF data received from the line before the SL_CALL_TERMINATE_CNF primitive was sent, but not yet read by the channel process or custom server, is still available for processing by the state table.

An exchange data link that has registered for transfer capability uses this primitive to reply to an SL_CALL_TERMINATE_REQ.

Corresponding state table action

The SL_CALL_TERMINATE_REQ primitive and the matching SL_CALL_TERMINATE_CNF correspond to the TerminateCall or CloseEverything state table actions. 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_TERMINATE_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_TERMINATE_REQ primitive.
Command.id
The primitive that the structure contains. Must be set to SL_CALL_TERMINATE_CNF.
Parms.call_terminate_confirm_st.sizetLength
Must be set to sizeof(struct _call_terminate_confirm_st).
Parms.call_terminate_confirm_st.ReplyCode
Specifies whether the call was cleared successfully or not.
SL_REPLY_ABORTED
The signaling process has received an SL_ABORT_REQ primitive specifying the sequence number of a SL_CALL_TERMINATE_REQ primitive, for a call which has not yet been cleared. If the call is still connected the signaling process may reply with SL_REPLY_ABORTED. The call is in the idle state. If the call is already cleared, or if clearing has started, the signaling process should reply SL_REPLY_SUCCESS.
SL_REPLY_GLARE
The signaling process received an SL_CALL_TERMINATE_REQ for a call that has already been cleared. This may be due to a clearing collision between the signaling process and the channel process. This may also be described as a glare condition.

Consider the following example. The channel process sends an SL_CALL_TERMINATE_REQ to the signaling process. The signaling process receives a clearing indication from the network, before it receives the SL_CALL_TERMINATE_REQ. In response to the clear from the network, the signaling process sends SL_CALL_TERMINATE_IND to Blueworx Voice Response. When the signaling process finally receives the SL_CALL_TERMINATE_REQ, it contains a call reference for a call that is now cleared. This is not an error.

A similar situation can arise when the signaling process clears to the network, at the same time that the network sends a clearing message to the signaling process.

SL_REPLY_INTERNAL_ERROR
The signaling process experienced and internal failure while processing the SL_CALL_TERMINATE_REQ primitive. The call specified by slCallReference is now in the idle state.
SL_REPLY_NOT_IMPLEMENTED
Only allowed for exchange data link signaling processes.
SL_REPLY_SUCCESS
The call was cleared successfully. The call is now in the idle state.
other values
Not supported.
Parms.call_terminate_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_terminate_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