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), irReturn(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.