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.