SL_CALL_ABORT_CNF primitive

Purpose

Confirm a request to terminate or clear an active call due to severe error.

Requirement

Mandatory for common channel signaling processes. The primitive is not used for 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_abort_confirm_st {
		                   size_t sizetLength;
		                   SL_REPLY_CODE ReplyCode;
		                   SL_CALL_REF slCallReference;
		                   pid_t pidOriginalCHP;
	                } call_abort_confirm_st;
...
	                struct _call_abort_confirm_14_st {
		                   size_t sizetLength;
		                   SL_REPLY_CODE ReplyCode;
		                   SL_CALL_REF slCallReference;
	                } call_abort_confirm_st;
...
} SL_CONFIRM_PARM_ST;

Description

The SL_CALL_ABORT_CNF primitive is sent by the signaling process to the signaling daemon. After a signaling process has received an SL_CALL_ABORT_REQ, it should clear the call to the network. After the call has been cleared, the signaling process should then send the SL_CALL_ABORT_CNF primitive to Blueworx Voice Response. After the SL_CALL_ABORT_CNF primitive has been successfully sent to Blueworx Voice Response, the call reference value specified is no longer valid, and the call is in the idle state. If the signaling process does not respond to this primitive within SL_T_CALL_ABORT seconds, then Blueworx Voice Response logs an error.

Corresponding state table action

None.

Parameters

id
Eye-catcher that identifies the structure as containing a confirm primitive. This must be set to SLID_CONFIRM_ST.
iseq_no
Must be set to the sequence number iseq_no from the SL_CALL_ABORT_REQ primitive to which this is the reply.
pidCHP
The process id of the signaling daemon that sent the original request. This should be set to the pidCHP field from the corresponding SL_CALL_ABORT_REQ primitive.
pidOriginalCHP
The process id of the channel process for the call.

In order to reliably clear calls in case of, for example silence detection, the process id of the channel process (CHP) for the call must be specified by the signaling process. This is because the combination of call reference and the channel process’ process id are used to verify call clearing primitives.

Note: In the SL_CALL_ABORT_REQ primitive the pidCHP field is set to the process id of the originating process (in this case the system manager). Because the pidCHP field is set to the originating process in the SL_CALL_ABORT_CNF primitive, another field is required to contain the process id of the channel process.
Command.id
The primitive that the structure contains. Must be set to SL_CALL_ABORT_CNF.
Parms.call_abort_confirm_st.sizetLength
Must be set to sizeof(struct _call_abort_confirm_st).
Parms.call_abort_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_ABORT_REQ primitive, which has not yet been cleared. The call is in the connected state. The signaling process should only reply with SL_REPLY_ABORTED is the call is still in the connected state. If the call has been terminated use SL_REPLY_SUCCESS.
SL_REPLY_GLARE
The signaling process has received an SL_CALL_ABORT_REQ primitive for a call reference it does not recognize. This allows for clearing collisions between Blueworx Voice Response and the network. The call is now in the idle state, and the call reference is no longer valid.
SL_REPLY_SUCCESS
The call was cleared successfully. The call is now in the idle state, and the call reference is no longer valid.
other values
Not supported.
Parms.call_abort_confirm_st.slCallReference
The call reference of the call being terminated. This should be set to the Parms.call_abort_request_st.slCallReference field from the corresponding SL_CALL_ABORT_REQ primitive. After the SL_CALL_ABORT_CNF is sent, the call reference is no longer valid, and the call is in the idle state.

Related information