[asterisk-dev] extending bridging API
Joshua Colp
jcolp at digium.com
Tue Feb 9 12:30:10 CST 2010
----- "Klaus Darilion" <klaus.mailinglists at pernau.at> wrote:
>
> What exactly is the "bridging technology"? Is it the respective
> implementation in bridges/ directory?
The bridging technology is what receives frames and sends them to the
other channels in the bridge. For example if there are 3 or more people
in a bridge then the technology has to mix audio together. They do
indeed exist in the bridges directory.
> >> Where would this kind of features be implemented? Adding a new
> bridge
> >>
> >> implementation in the bridges/ directory or by adding the code to
> >> main/bridging.c?
> >
> > The bridging core itself doesn't care about frames like this, you
> would have
> > to extend it to intercept them.
>
> I played around with the app_confbridge (unmodified). I dial with 2
> SIP
> clients into the conference. When one SIP clients puts the call on
> hold,
> I see incoming AST_CONTROL_HOLD from the respective channel which gets
>
> forwarded to the other channel (on the other SIP client gets a hold
> tone).
>
> Doing the same with 3 participants, the AST_CONTROL_HOLD is NOT
> forwarded to the other channels.
>
> I searched through app_confbridge.c, main/bridging.c and bridge/*.c
> but
> I can not find code where this AST_CONTROL_HOLD is forwarded. Which
> file
> controls the forwarding of the AST_CONTROL_HOLD?
For a 2 person bridge it would have been using bridge_simple or
bridge_multiplexed which simply forwards frames back and forth not
caring that much about them.
For a 3 person bridge it would have been using bridge_softmix which is more
careful and only forwards some kinds of frames.
--
Joshua Colp
Digium, Inc. | Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: www.digium.com & www.asterisk.org
More information about the asterisk-dev
mailing list