SL_CALL_ABORT_REQ primitive

Purpose

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_REQUEST_PARM_ST Parms;
} SL_REQUEST_ST;
...
typedef union {
...
	                struct {
		                   size_t sizetLength;
		                   SL_CALL_REF slCallReference;
		                   struct timestruct_t timestruct;
		                   int iChannelNo;
		                   int iVpackNo;
		                   SL_CALL_ABORT_CAUSE_TYPE Cause;
		                   SL_PROC_TYPE slProc;
	                } call_abort_request_st;
...
} SL_REQUEST_PARM_ST;

Description

The SL_CALL_ABORT_REQ primitive is sent by the signaling daemon to the signaling process when a call must be cleared, even though the originating channel process is unable to do so. One example is if the channel process responsible for a call terminates abnormally. This request may also be generated by Blueworx Voice Response in response to a network attachment requirement. An example is when, during the recording of voice from the line, an extended period of silence is detected. To ensure that the calls do not remain connected under these circumstances, a special component of Blueworx Voice Response (the signaling daemon) monitors for these situations. When the signaling daemon detects a problem, it generates the SL_CALL_ABORT_REQ primitive.

The originating process (the signaling daemon) must complete all the fields in the structure.

Corresponding state table action

None.

Parameters

id
Eye-catcher that identifies the structure as containing a request primitive. This must be set to SLID_REQUEST_ST.
iseq_no
The sequence number of the primitive. This field must be set to 0 when the primitive is sent to Blueworx Voice Response; the actual sequence number is allocated by Blueworx Voice Response, and is available to the sender on return from sl_send_request(). The field is set when the primitive is received from Blueworx Voice Response by the signaling process.
pidCHP
The process id of the signaling daemon. The signaling process uses this value to set the pidCHP field of the corresponding SL_CALL_ABORT_CNF primitive.
Command.id
The primitive that the structure contains. Must be set to SL_CALL_ABORT_REQ.
Parms.call_abort_request_st.sizetLength
Must be set to sizeof(struct _call_abort_request_st).
Parms.call_abort_request_st.slCallReference
The call reference of the call to be terminated. The call reference is the definitive identifier for the call, and is always supplied.
Parms.call_abort_request_st.timestruct
Set to the time at which Blueworx Voice Response detected the event which requires the call to be cleared.
Parms.call_abort_request_st.iChannelNo
Identifies the channel associated with the call.
Note: The iChannelNo field can be set to SL_UNDEFINED_CHAN. If it is, the signaling process must use the slCallReference field to identify the call.

This corresponds to the case where a call is to be cleared, even though the signaling process has not yet sent the SL_CALL_SETUP_CNF primitive to Blueworx Voice Response. This can happen during phase B of a call, as shown in Figure 1.

Parms.call_abort_request_st.iVpackNo
Identifies the trunk associated with the call.
Note: The iVpackNo field can be set to SL_UNDEFINED_VPACK. If it is, the signaling process must use the slCallReference field to identify the call.

This corresponds to the case where a call is to be cleared, even though the signaling process has not yet sent the SL_CALL_SETUP_CNF primitive to Blueworx Voice Response. This can happen during phase B of a call, as shown in Figure 1.

Parms.call_abort_request_st.Cause
Identifies the reason why the call is being terminated.
Parms.call_abort_request_st.slProc
Identifies the signaling process responsible for the call.

Related information