[asterisk-dev] [Code Review] Bridging API for Conference Bridge purposes

Russell Bryant russell at digium.com
Thu Mar 5 09:40:22 CST 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.digium.com/r/93/#review513
-----------------------------------------------------------

Ship it!


I think it's time we merge this code into trunk so that it gets more exposure and more testing.  It is self contained, so there is very low risk involved at this point.  We can continue working on it in trunk as we find things to improve.

Very nice work, Josh!


/trunk/apps/app_confbridge.c
<http://reviewboard.digium.com/r/93/#comment1182>

    You have declared two instances of these two nameless enums.  You can just remove "option_flags" and "option_args".



/trunk/apps/app_confbridge.c
<http://reviewboard.digium.com/r/93/#comment1184>

    These could be unsigned



/trunk/apps/app_confbridge.c
<http://reviewboard.digium.com/r/93/#comment1183>

    superfluous return



/trunk/apps/app_confbridge.c
<http://reviewboard.digium.com/r/93/#comment1185>

    superfluous return



/trunk/apps/app_confbridge.c
<http://reviewboard.digium.com/r/93/#comment1186>

    superfluous return
    
    (I'll stop marking these, now, you get the point.)  :-)



/trunk/main/bridging.c
<http://reviewboard.digium.com/r/93/#comment1198>

    missing space "ast_channel*"
    
    Also, check for allocation failure here



/trunk/main/bridging.c
<http://reviewboard.digium.com/r/93/#comment1199>

    It's kind of interesting that usleep(1) is used everywhere in asterisk, when what we really mean is that we want to yield to other threads.
    
    I think for new code, we should start using sched_yield() instead.  At some point, we should make fixing all of the other code a janitor project.



/trunk/main/bridging.c
<http://reviewboard.digium.com/r/93/#comment1200>

    I presume this function assumes the bridge is locked.  I would document that fact.



/trunk/main/bridging.c
<http://reviewboard.digium.com/r/93/#comment1201>

    I wish all of this code was wrapped at 90 columns, but we can deal with that later ...



/trunk/main/bridging.c
<http://reviewboard.digium.com/r/93/#comment1202>

    It seems like the handling of waiting should be done with the lock held to synchronize with threads that want to check this value.


- Russell


On 2009-03-02 10:49:59, Joshua Colp wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.digium.com/r/93/
> -----------------------------------------------------------
> 
> (Updated 2009-03-02 10:49:59)
> 
> 
> Review request for Asterisk Developers and Russell Bryant.
> 
> 
> Summary
> -------
> 
> This patch implements the new bridging API and brings with it a module for conference bridges. It does *not* replace existing internal bridging or features yet and will not cause any regressions when put in. It will essentially be introduced as a first test phase to work out any unforeseen critical issues. The bridging core itself is fully implemented besides the following: jitterbuffer support, native bridging, and interval hooks (hooks that are time based versus action based). If you would like an explanation of what the bridging API is made up of and how it works that can be found in the bridging.h header file.
> 
> 
> Diffs
> -----
> 
>   /trunk/Makefile 179359 
>   /trunk/apps/app_confbridge.c PRE-CREATION 
>   /trunk/bridges/Makefile PRE-CREATION 
>   /trunk/bridges/bridge_builtin_features.c PRE-CREATION 
>   /trunk/bridges/bridge_multiplexed.c PRE-CREATION 
>   /trunk/bridges/bridge_simple.c PRE-CREATION 
>   /trunk/bridges/bridge_softmix.c PRE-CREATION 
>   /trunk/channels/chan_bridge.c PRE-CREATION 
>   /trunk/include/asterisk/bridging.h PRE-CREATION 
>   /trunk/include/asterisk/bridging_features.h PRE-CREATION 
>   /trunk/include/asterisk/bridging_technology.h PRE-CREATION 
>   /trunk/include/asterisk/channel.h 179359 
>   /trunk/main/Makefile 179359 
>   /trunk/main/bridging.c PRE-CREATION 
> 
> Diff: http://reviewboard.digium.com/r/93/diff
> 
> 
> Testing
> -------
> 
> Conference bridge testing using app_confbridge with features. Joining two channels with simple frame exchange and joining three channels to move it to a true conference bridge. IVR capability of app_confbridge was also tested.
> 
> 
> Thanks,
> 
> Joshua
> 
>




More information about the asterisk-dev mailing list