[asterisk-dev] [Code Review] 2642: app_bridgewait: Add a name argument so that multiple holding bridges may be used

jrose reviewboard at asterisk.org
Tue Jun 25 12:06:10 CDT 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/2642/
-----------------------------------------------------------

(Updated June 25, 2013, 5:06 p.m.)


Review request for Asterisk Developers, Matt Jordan and rmudgett.


Changes
-------

Removed the bridge flag changing weirdness in favor of adding a bridge channel state (return enumerator of ast_bridge_join) indicating that the bridge channel failed to enter due to the fact that the bridge was already dissolved. Finding/creating and joining the bridge now loops through until the bridge is either successfully joined or else the join fails for a reason other than entry of a dissolving bridge. I added the dissolve when empty flag back to the bridges that are created and now there is no need to do anything when a bridge becomes disassociated with app_bridgewait.

I tested this change to make sure the normal entry and exit with multiple users still works as well as what happens when the bridge dissolves before joining. Particular focuses of testing were memory allocation in app_bridgewait.c and bridging.c as well as functionality of the holding bridge.


Bugs: ASTERISK-21922
    https://issues.asterisk.org/jira/browse/ASTERISK-21922


Repository: Asterisk


Description
-------

Previously the holding bridge used for bridgewait was a single bridge that once created would stick around until the application was unloaded.

Now things are a little more complicated. Each holding bridge has a name and will be destroyed when it is empty. Since it's theoretically possible to have channels enter a holding bridge without going through the bridge wait application, it isn't always possible to deliberately control when the bridge will be destroyed, so the bridge can effectively be abandoned and set to be destroyed once it empties out.


Diffs (updated)
-----

  /trunk/apps/app_bridgewait.c 392721 
  /trunk/include/asterisk/bridging.h 392721 
  /trunk/main/bridging.c 392721 

Diff: https://reviewboard.asterisk.org/r/2642/diff/


Testing
-------

Tested multiple simultaneous holding bridges, multiple channels in the same holding bridge, what would happen if one channel entered as another one was leaving but before the bridge was destroyed, tested bridges emptying out, tested module unload and module load after unload.


Thanks,

jrose

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20130625/b0ba1806/attachment.htm>


More information about the asterisk-dev mailing list