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.