[asterisk-dev] extending bridging API

Klaus Darilion klaus.mailinglists at pernau.at
Tue Feb 9 07:53:11 CST 2010


Hi Joshua!

Thanks for the answers, some more questions inline :-)

Am 08.02.2010 20:51, schrieb Joshua Colp:
> ----- "Klaus Darilion"<klaus.mailinglists at pernau.at>  wrote:
>
>> Hi!
>>
>> I just tried to understand how the new bridging API works, and how I
>> can
>> extend it, but I am not sure how/where to extend it. Thus I have some
>>
>> questions :-)
>>
>> For example the bridge should react on AST_CONTROL_* frames. If a
>> participant puts the call on hold, and AST_CONTROL_HOLD is received on
>>
>> the participants channel, the participant should be muted. Or if
>> AST_CONTROL_CONNECTED_LINE is received, the other participants should
>> be
>> informed about the new line identity.
>
> It's the responsibility of the bridging technology in use to propagate frames
> as it sees fit.

What exactly is the "bridging technology"? Is it the respective 
implementation in 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?

thanks
klaus




More information about the asterisk-dev mailing list