Integrating a custom server with other software

If your custom server interfaces with other software such as database managers, fax servers, or speech servers, you may need to set AIX environment variables or add entries to the AIX PATH. Do this by editing the .vaeprofile.user file in the $VAE/sw/environ directory; add what you need at the end of the file, in the section that starts with the following line:

#  User area starts after this line do not delete this line

Shared memory segments

A custom server uses a number of shared memory segments to communicate with Blueworx Voice Response. These shared memory segments are in the range 0x3 to 0xA, and will usually be at 0x3, 0x4, and 0x5, but they can be changed using system parameters (Control Memory Address, Buffer Pool Address, and Error Table Address) in the General parameter group. For information about these system parameters see the Blueworx Voice Response for AIX: Configuring the System information. Your custom server must not allocate these shared memory segments for any other purpose. The CA_Init() call will fail if they have been allocated.

The memory mapped file is allocated to the next free segment. If no other segments have been allocated by the custom server before the CA_Init() call it will be in segment 0x6. If the custom server is also a signaling process, an additional memory mapped file is allocated when the signaling interface is initialized by the sl_open() call. This is allocated to whatever segment is free at the time.

Process groups

A custom server will normally be in the AIX process group that contains Blueworx Voice Response processes. If the custom server (or any of its library calls) generates a signal that the operating system sends to all processes in the group, Blueworx Voice Response exits. The IBM SNA library generates such signals.

To prevent the custom server causing this problem, isolate your custom server by using the C-language setpgrp call. This puts the process in its own process group.