Once the boards are opened then the board capabilities are examined and any boards that have switching capabilities will have their transmit channels ‘nailed’ to the external H.100 or SCBUS. This provides a consistent method for switching between channels and in the current version of the library even channels on the same board will be switched through the external H.100 or SCBUS.
H.100 channels are defined by both a stream number and a channel number where each stream can have up to 128 timeslots. For the SCBUS there is only one stream and the timeslots range from 0 up to 4096. To create a consistent way of referencing these channels whether the external bus is a H.100 bus or an SCBUS the CXACUDSP.DLL generates a stream/timeslot handle which is calculated from the stream and the timeslot as follows:
handle = stream * 4096 + timeslot
For the SCbus the stream is always 24 which is the internal fixed stream that is used by the ACULAB firmware when SCBUS is present.
This handle is used/returned by the switching functions listed below.
handle=SMgetslot(port,channel);
x= SMlisten(channel,handle);
x= SMunlisten(channel);
By default the first channel on the first logical port will be ‘nailed’ to stream 8, timeslot 0 of the H.100 bus (or just timeslot 512 of the SCBUS). If there is other non-Aculab hardware in the system that is using these stream/timeslot ranges, or there is some other reason why a different stream/timeslot range should be used for nailing the transmit timeslots to the external bus then the environment variable PROSODY_TSOFFS can be set to define the start stream and timeslot offset to nail to.
This variable should be specified in the same form as defined above for the stream/timeslot handle. For example if you want to start nailing the call control channel starting at stream 64, channel 0 then you would set the environment variable as follows:
REM set offset to: 64 * 4096 + 0
SET PROSODY_TSOFFS=262144
or for the SCBUS where the stream is hardcoded to 24, if for example you wanted to start ‘nailing’ the voice channels from SCbus timeslot 1024 the you would have:
REM set offset to: 24 * 4096 + 1024
SET PROSODY_TSOFFS=99328
N.B. The current version of the library does yet transparently support multi-chassis switching for Prosody-X functionality (although the programmer has access to the RTS functions and can therefore implement their own multi-chassis switching capability). The next version of the library will include a transparent method for multi-chassis switching consistent with above function calls and methodology.