Signaling process initialization

Before it can use any other signaling interface subroutines, the signaling process must use the sl_open() subroutine to open the signaling interface. The sl_open() must specify a valid SL_PROC_TYPE and a pointer to a SL_CONFIG_ST structure. The SL_CONFIG_ST structure is required to install the signaling process and to configure it so that Blueworx Voice Response knows the capabilities of this process. For more information, see Configuration data structures.

The SL_CONFIG_ST structure can be filled in with various different values, depending on the type and functionality of the signaling process. The values in the example are correct for a common channel signaling (CCS) process:

SL_CONFIG_ST               config_st ;
SL_HANDLE                  sl_handle ;
SL_RET_CODE                slRC ;
config_st.installed              = TRUE ;
config_st.call_data              = TRUE ;
config_st.SigprocClass           = SL_SIGPROC_CLASS_CCS ;
config_st.SigprocCapabilitySet   =
          SL_CAPABILITY_MASK( SL_SIGPROC_CAPABILITY_ANI_DNIS )     |
          SL_CAPABILITY_MASK( SL_SIGPROC_CAPABILITY_CALL_CONTROL ) |
          SL_CAPABILITY_MASK( SL_SIGPROC_CAPABILITY_FE_HUP )       |
          SL_CAPABILITY_MASK( SL_SIGPROC_CAPABILITY_CHANNEL_NEG ) ;
slRC = sl_open(SL_PROC_SS7, &config_st, &sl_handle) ;

The sl_open() subroutine updates the SL_HANDLE in sl_handle, which must be used on all subsequent signaling interface calls, and returns a value indicating success or failure of the call. SLRC_OK indicates success.

Configuring the signaling process

Blueworx Voice Response does not supply any additional configuration information to a signaling process. If a signaling process requires additional configuration information, for example network timer values for a common channel signaling protocol, it is responsible for determining this information. To obtain the information, this signaling process has the following options:

Exchange data link line identifiers

Exchange data link protocols use ASCII line identifiers to specify the trunk or channel for an incoming call. The channel process has no information on how to translate these line identifiers to trunk and channel. The signaling process has to translate the line identifiers it receives on the exchange data link into trunk and channel numbers suitable for Blueworx Voice Response.

Registering the signaling process

After a signaling process has opened the signaling interface it must then register itself, using the sl_register() subroutine, before it can send and receive signaling interface primitives:

int msgqid;
slRC = sl_register(sl_handle, &msgqid) ;

The sl_register() subroutine creates a message queue, fills in the message queue identifier in msgqid and returns a value indicating success or failure of the subroutine. SLRC_OK indicates success. The msgqid can be used later with the poll() system call to wait for signaling interface events.

When a signaling process has registered itself, it is responsible for processing every request sent to it. For more information, see Polling the message queue.