sl_send_indication subroutine

Purpose

Send an indication primitive to Blueworx Voice Response to provide asynchronous notification of an event.

Library

The signaling interface library (libsl.a).

C syntax

#include <slsigpr.h>
...
SL_RET_CODE 	              sl_send_indication (
    SL_HANDLE             	sl_handle,
    SL_INDICATION _ST *	   psignalingIndication 
);

Description

This subroutine is used to report events such as the arrival of an incoming call, the disconnection of a circuit, call hangup, or an error state on a channel.

The signaling interface checks the primitive for validity. This checking is limited to range checking of parameters. In some cases the signaling interface adds some additional parameters if they are required by the primitive. If it does, the updated values of the parameters are stored in the structure pointed to by psignalingIndication and are available to the signaling process on return from the subroutine call.

See Signaling interface primitives for the semantics of individual requests, a description of the parameters for each request, and a description of which parameters are mandatory.

If an indication is invalid, a non-0 return code is returned, and the primitive is not sent to Blueworx Voice Response. If the indication is valid it is sent to Blueworx Voice Response.

Parameters

sl_handle
The signaling handle returned from the sl_open() subroutine.
psignalingIndication
A pointer to the indication primitive being sent. The following fields must be completed:
id
SLID_INDICATION_ST
iseq_no
0 (set by the signaling process).
pidCHP
The process id of the channel process for the call. If the primitive is SL_CALL_SETUP_IND, SL_TRUNK_ALARM_IND or SL_CHANNEL_ALARM_IND, pidCHP must be set to -1.
Command
The id of the primitive:

Command.name.generic must be one of the values defined for type SL_GENERIC_TYPE.

Command.name.specific must be set to SL_TAG_INDICATION.

Parms
One of the indication primitives listed in Table 3.

Return values

SLRC_OK
Successful.
SLRC_INVALID_HANDLE
Invalid sl_handle.
SLRC_INVALID_ARGS
psignalingIndication is NULL.
SLRC_ERRNO
An AIX error has occurred. Check the value of errno for more information.
SLRC_INVALID_INDICATION_ID
psignalingIndication–> id is not set to SLID_INDICATION_ST.
SLRC_INVALID_SEQ_NO
psignalingIndication–> iseq_no is not set to 0, which is the only valid value when sending an indication primitive to Blueworx Voice Response.
SLRC_NOT_INDICATION
psignalingIndication–> Command.name.specific is not set to SL_TAG_INDICATION.
SLRC_INVALID_CALL_REF
The primitive is an SL_CALL_SETUP_IND and the slCallReference field of psignalingIndication–>Parmsis not set to SL_CALL_REF_NULL.

The primitive is an SL_CALL_DISCONNECT_IND and the slCallReference field of psignalingIndication->Parms is set to SL_CALL_REF_NULL.

The primitive is an SL_CALL_TERMINATE_IND, the slCallReference field of psignalingIndication->Parms is set to SL_CALL_REF_NULL, and the primitive is being sent by a common channel signaling process.

The primitive is an SL_CALL_TERMINATE_IND, the slCallReference field of psignalingIndication->Parms is not set to SL_CALL_REF_NULL, and the primitive is being sent by an exchange data link signaling process.

SLRC_INVALID_CALLED_NUM_LEN
The primitive is an SL_CALL_SETUP_IND and the number supplied in the called_no field of psignalingIndication–>Parms.call_setup_indication_st.slCallDatais longer than SL_NUM_SZ – 1 digits.
SLRC_INVALID_CALLING_NUM_LEN
The primitive is an SL_CALL_SETUP_IND and the number supplied in the calling_no field of psignalingIndication–>Parms.call_setup_indication_st.slCallData is longer than SL_NUM_SZ – 1 digits.
SLRC_INVALID_LENGTH
psignalingIndication–> Parms has an invalid sizetLength field.
SLRC_INVALID_PID
psignalingIndication–> pidCHP is invalid for the specified primitive.
SLRC_INVALID_CHAN
psignalingIndication–> Parms contains an invalid channel or pack.
SLRC_NOT_CONFIGURED_FOR_CHAN
The signaling process is sending an SL_CALL_SETUP_IND primitive specifying an incoming call on a pack or channel the signaling process is not configured to control.
SLRC_INVALID_ALARM
The signaling process is sending an SL_TRUNK_ALARM_IND but psignalingIndication–>Parms.trunk_alarm_indication_st.slAlarm is not equal to SL_ALARM_OTHER.
SLRC_UNATTACH
This return code is provided for information. It indicates that psignalingIndication->pidCHP and psignalingIndication->Parms.call_terminate_indication_sl.slCallReference do not refer to a call that is connected to a voice channel, because either:
  • The signaling process has used the SL_CALL_DISCONNECT_IND primitive to disconnect the call reference from the voice channel, and the voice channel is now in use for another call. This is not an error situation.
  • The signaling process has used an invalid combination of call reference and CHP process id in the SL_CALL_TERMINATE_IND primitive.

Related information