NAME
irHBridge - add/drop a half-bridge to another channel
SYNOPSIS
#include <irapi.h>
int irHBridge (channel_id cid1, int chan2, int addDropFlag);
int irHBridge2 (channel_id cid1, int chan2, int addDropFlag,
int releaseFlag);
DESCRIPTION
The irHBridge and irHBridge2 functions half-bridge channel
cid1 to chan2 or drop an existing half-bridge between the
two channels. Half-bridging means that the audio coming in
on chan2 is heard on cid1.
This is achieved by low level timeslot arbitration func-
tions.
The value of addDropFlag determines if the half-bridge
should be added or dropped. Use IRD_ADD [see
IrDEFINES(4IRAPI)] as addDropFlag to create the half-bridge.
To drop the half-bridge, irHBridge or irHBridge2 must be
invoked with IRD_DROP as the value of addDropFlag.
The half-bridge is dropped when cid1 is released via
irDeinit(3IRAPI) or irReturn(3IRAPI) by its owning process.
The IRAPI supports the CONVERSANT VIS Transmission Level
Plan (TLP) for call bridging. Refer to Intuity CONVERSANT
VIS V5.0 Communication Development, 585-310-229, for infor-
mation about the CONVERSANT VIS TLP.
The IRP_DTMF_MUTING parameter determines whether the input
of touch-tone digits is passed through the bridge. When
bridging to another automated response system,
IRP_DTMF_MUTING must be set to IRD_ON to allow touch-tone
digits to pass through the bridge. DTMF muting is automati-
cally enabled on Tip/Ring (T/R) cards and can currently only
be controlled on digital interfaces (T1, PRI, and LST1)
Each channel can have at most 7 output timeslots of which
one is pre-assigned. Therefore, a channel can only add
another 6 output timeslots.
The releaseFlag argument to rHBridge2 allows an application
to specify whether the "talk" timeslot (used for "play" and
"say" activity) is to be released when the half bridge is
established. This argument only has an effect when dynamic
timeslot allocation is in effect (when the
IRP_STATIC_TIMESLOTS global parameter has the value of
IRD_FALSE). When releaseFlag has the value IRD_TRUE and
dynamic timeslot allocation is in effect, irHBridge2 will
attempt to release the "talk" timeslot unless it is in use
for playing, saying, or echo cancelation. Note that the
releaseFlag argument only has an effect when the addDropFlag
has the value IRD_ADD (to create half-bridge). The
irHBridge function uses the IRP_RELEASE_TALKSLOT global
parameter to determine whether the "talk" timeslot is to be
released when the half bridge is established. Most applica-
tions should use irHBridge rather than irHBridge2 so that
the global parameter can be used for system-wide control of
whether to release the "talk" timeslot during bridging.
WARNING: The use of dynamic timeslot allocation and the
irHBridge2 function is reserved for future use and not yet
officially supported. Operational problems are likely for
applications that attempt to use these options in this
release.
EVENT
No event results from a call to irHBridge or irHBridge2.
RETURN VALUE
IRR_OK is returned if the request is successful.
IRR_FAIL is returned if an error occurs.
ERROR
irError is set as follows if an error occurs:
IRER_INVALID if invalid arguments are passed
IRER_MAXCHAN_TIMESLOTS if the channel has reached the limit
for output timeslots (7 maximum per channel)
IRER_SYSERROR if a system or driver call failure occurs (see
irSysError for additional information)
IRER_TSBUS if an attempt is made to half-bridge between two
channels on buses which do not communicate or if either
channel is not on a bus
SEE ALSO
irDeinit(3IRAPI), irMonitor(3IRAPI), irReturn(3IRAPI),
irTSControl(3IRAPI), irTalkslotControl(3IRAPI)
CAVEAT
Note that the half-bridge to channel chan2 stays active
until dropped regardless of the state of channel chan2.
VERSION
This is version 8/31/00 of this man page.