SL_USER_REQ primitive

Purpose

Request an implementation-dependent feature from a signaling process.

Requirement

Optional for all 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 _user_request_st{
                    size_t sizetLength;
                    int command;
                    int iChannelNo;
                    int iVpackNo;
                    unsigned char data[SL_USER_DATA_LEN];
                } user_request_st;
...
} SL_REQUEST_PARM_ST;

Description

The SL_USER_REQ primitive is sent by a custom server process to the signaling process. This primitive allows any signaling process to provide implementation-dependent primitives.

The interpretation and usage of the SL_USER_REQ primitive is up to the signaling process. If the signaling process does not support the SL_USER_REQ primitive, it should respond by issuing sl_send_confirm(), specifying an SL_USER_CNF primitive with ReplyCode set to SL_REPLY_NOT_IMPLEMENTED.

Any implementation-dependent primitives, implemented using SL_USER_REQ, should be documented by the supplier of the signaling process.

Corresponding state table action

None.

Parameters

id
Eye-catcher that identifies the structure as containing a request primitive. 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 sending process. The signaling process should use this value to set the pidCHP field of the corresponding SL_USER_CNF primitive.
Command.id
The primitive that the structure contains. Must be set to SL_USER_REQ.
Parms.user_request_st.sizetLength
Must be set to sizeof(struct _user_request_st).
Parms.user_request_st.command
This field is provided for use by the signaling process to differentiate implementation-dependent primitives. The values of this field are implementation-dependent, and are defined by the provider of the signaling process.
Parms.user_request_st.iChannelNo
Identifies the channel, in the range SL_MIN_CHANNEL_ID to SL_MAX_CHANNEL_ID (see Pack and channel numbers).
Parms.user_request_st.iVpackNo
Identifies the trunk, in the range SL_MIN_TRUNK_ID to SL_MAX_TRUNK_ID (see Pack and channel numbers).
Parms.user_request_st.data
Up to SL_USER_DATA_LEN bytes of implementation-dependent data. The interpretation of this field depends on the value of Parms.user_request_st.command, and is defined by the provider of the signaling process.

Related information