Asterisk - The Open Source Telephony Project  18.5.0
Bridging API

The purpose of this API is to provide an easy and flexible way to bridge channels of different technologies with different features.

Bridging technologies provide the mechanism that do the actual handling of frames between channels. They provide capability information, codec information, and preference value to assist the bridging core in choosing a bridging technology when creating a bridge. Different bridges may use different bridging technologies based on needs but once chosen they all operate under the same premise; they receive frames and send frames.

Bridges are a combination of bridging technology, channels, and features. A developer creates a new bridge based on what they are currently expecting to do with it or what they will do with it in the future. The bridging core determines what available bridging technology will best fit the requirements and creates a new bridge. Once created, channels can be added to the bridge in a blocking or non-blocking fashion.

Features are such things as channel muting or DTMF based features such as attended transfer, blind transfer, and hangup. Feature information must be set at the most granular level, on the channel. While you can use features on a global scope the presence of a feature structure on the channel will override the global scope. An example would be having the bridge muted at global scope and attended transfer enabled on a channel. Since the channel itself is not muted it would be able to speak.

Feature hooks allow a developer to tell the bridging core that when a DTMF string is received from a channel a callback should be called in their application. For example, a conference bridge application may want to provide an IVR to control various settings on the conference bridge. This can be accomplished by attaching a feature hook that calls an IVR function when a DTMF string is entered.