TX device drivers are programs that implement the physical interface between the host and the TX board communications processor (CP). The TX device drivers establish a set of virtual channels. Channels enable multiple processes on both the host and the TX board CP to exchange messages without interfering with each other.
A process (either on the host or on the CP) that receives messages registers with the TX device driver for a specific channel number. For a host-resident process, the channel registration can be implicit with the device open request, or it can be a separate operation. Channel numbers are assigned statically at compile time.
In the application, specify a channel number from the range of supported values. The TX board currently supports 256 channels (numbered 0 to 255). Channels 0 to 31 and 128 to 255 are reserved for use by Dialogic standard products. Channels 32 to 127 are available for application use. There is no built-in facility to dynamically learn the channel assigned to any particular function.
Only one process receives messages for a specific channel. Each message contains a header that the sender of the message supplies. The header identifies the destination board and channel, the source board and channel, and the length of the message.
Each process in an SS7 implementation, both on the CP and on the host, registers for the channel that corresponds to a layer (or application) entity ID. The monitor task registers for channel 0x5f. To send a message to the monitor task on TX board n, set the destination channel to 0x5f, the destination board to n, and the source channel and board to the sender's entity ID and board number. The host is board number 0 (zero). For more information, refer to Entity and instance IDs.
Applications and TX device drivers can use the CPI Library interface to communicate. To initialize the CPI Library interface, call cpi_init before using any other CPI calls. Issue a call to cpi_open, cpia_open, or cpix_open for each board the application wants to communicate with.
cpi_open creates a synchronous interface suitable for configuration but not recommended for high traffic load applications. cpia_open and cpix_open create asynchronous interfaces that are optimized for high traffic applications. For the synchronous interface, cpi_send and cpi_get_data are then called to send and retrieve data packets to and from the board. For the asynchronous interface, cpia_send and cpia_get_data are then called to send and retrieve data packets to and from the board. For more information, refer to the Dialogic® TX Series SS7 Boards CPI Library Developer's Reference Manual.