diff options
author | Richard Mudgett <rmudgett@digium.com> | 2014-07-09 16:34:51 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2014-07-09 16:34:51 +0000 |
commit | f962448eee1a2dee763e90441edd79cd99842ef6 (patch) | |
tree | 3c8b026758db2317294d301a3eb58975a32d7fc6 /include/asterisk/bridge_channel.h | |
parent | 5a3023a114af06a41bcea9cf4cf883939270e997 (diff) |
ARI: Make mixing bridges propagate linkedids and accountcodes.
* Create a Stasis bridge sub-class to propagate linkedids and
accountcodes.
* Fixed the basic bridge sub-class to update peeraccount codes when the
number of channels in the bridge drops back down to two parties.
* Refactored ast_bridge_channel_update_accountcodes() to handle channels
joining/leaving the bridge.
* Fixed the basic bridge sub-class to not call the base bridge class pull
method twice.
AFS-105 #close
ASTERISK-23852 #close
Reported by: Richard Mudgett
Review: https://reviewboard.asterisk.org/r/3720/
........
Merged revisions 418225 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@418226 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk/bridge_channel.h')
-rw-r--r-- | include/asterisk/bridge_channel.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/include/asterisk/bridge_channel.h b/include/asterisk/bridge_channel.h index c8aaf8906..ae8369d15 100644 --- a/include/asterisk/bridge_channel.h +++ b/include/asterisk/bridge_channel.h @@ -326,14 +326,15 @@ struct ast_bridge *ast_bridge_channel_merge_inhibit(struct ast_bridge_channel *b * \param bridge_channel The channel joining the bridge * \param swap The channel being swapped out of the bridge. May be NULL. * - * \note The bridge must be locked prior to calling this function. This should be called - * during a \ref bridge_channel_internal_push operation, typically by a sub-class of a bridge + * \note The bridge must be locked prior to calling this function. + * \note This should be called during a \ref bridge_channel_internal_push + * operation, typically by a sub-class of a bridge. */ void ast_bridge_channel_update_linkedids(struct ast_bridge_channel *bridge_channel, struct ast_bridge_channel *swap); /*! * \internal - * \brief Update the accountcodes for a channel entering a bridge + * \brief Update the accountcodes for channels joining/leaving a bridge * \since 12.0.0 * * This function updates the accountcode and peeraccount on channels in two-party @@ -341,13 +342,17 @@ void ast_bridge_channel_update_linkedids(struct ast_bridge_channel *bridge_chann * however accountcode propagation will still occur if the channel joining has an * accountcode. * - * \param bridge_channel The channel joining the bridge - * \param swap The channel being swapped out of the bridge. May be NULL. + * \param joining The channel joining the bridge. May be NULL. + * \param leaving The channel leaving or being swapped out of the bridge. May be NULL. + * + * \note The joining and leaving parameters cannot both be NULL. * - * \note The bridge must be locked prior to calling this function. This should be called - * during a \ref bridge_channel_internal_push operation, typically by a sub-class of a bridge + * \note The bridge must be locked prior to calling this function. + * \note This should be called during a \ref bridge_channel_internal_push + * or \ref bridge_channel_internal_pull operation, typically by a + * sub-class of a bridge. */ -void ast_bridge_channel_update_accountcodes(struct ast_bridge_channel *bridge_channel, struct ast_bridge_channel *swap); +void ast_bridge_channel_update_accountcodes(struct ast_bridge_channel *joining, struct ast_bridge_channel *leaving); /*! * \brief Write a frame to the specified bridge_channel. |