SL_CALL_DISCONNECT_IND primitive

Purpose

Indicate that a call is no longer connected to a voice channel.

Requirement

Optional 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_INDICATION_PARM_ST Parms;
} SL_INDICATION_ST;
...
typedef union {
...
                struct _call_disconnect_indication_st {
                      size_t sizetLength;
                      SL_CALL_REF slCallReference;
                      int iCause;
                      int iChannelNo;
                      int iVpackNo;
                      SL_APPL_INFO_ST slApplInfo;
                } call_disconnect_indication_st;
...
} SL_INDICATION_PARM_ST;

Description

The SL_CALL_DISCONNECT_IND primitive is sent by the signaling process to Blueworx Voice Response to indicate that a call is no longer connected to a voice channel. This primitive does not affect the state of the call.

This primitive is designed for use by common channel signaling processes with a complex clearing protocol. If the signaling process knows that the call is no longer connected end to end before the call has been cleared, it can prevent any further voice traffic on the line by sending the SL_CALL_DISCONNECT_IND primitive. After a call has been disconnected from a voice channel, the signaling process may then reuse that channel for a new call.

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 that has been received from the line before the SL_CALL_DISCONNECT_IND primitive was sent, but that has not yet been read by the channel process is still available for processing.

By checking the SLRC_UNATTACH return code from the sl_send_indication subroutine you can reuse a channel before the signaling process receives an SL_CALL_TERMINATE_REQ primitive from the channel process, or the signaling process sends an SL_CALL_TERMINATE_CNF primitive to the channel process.

Corresponding state table action

None.

Parameters

id
Eye-catcher that identifies the structure as containing an indication primitive. Must be set to SLID_INDICATION_ST.
iseq_no
The sequence number of the primitive. Must be set to 0.
pidCHP
The process id of the channel process that is processing the call. This should be set to the pidCHP field from the original SL_CALL_SETUP_REQ or SL_CALL_ANSWER_REQ primitive, corresponding to this call.
Command.id
The primitive that the structure contains. Must be set to SL_CALL_DISCONNECT_IND.
Parms.call_disconnect_indication_st.sizetLength
Must be set to sizeof(struct _call_disconnect_indication_st).
Parms.call_disconnect_indication_st.slCallReference
Identifies the call. This is the call reference that was returned to the signaling process when it sent SL_CALL_SETUP_IND to Blueworx Voice Response, or when it received SL_CALL_SETUP_REQ from the channel process.
Parms.call_disconnect_indication_st.iCause
Reserved for future use by Blueworx Voice Response. The signaling process should set this field to 0.
Parms.call_disconnect_indication_st.iChannelNo
Identifies the channel associated with the call. Must not be set to SL_UNDEFINED_CHAN.
Parms.call_disconnect_indication_st.iVpackNo
Identifies the trunk associated with the call. Must not be set to SL_UNDEFINED_VPACK.
Parms.call_disconect_indication_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