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.