Add support to the bridging core for performing COLP updates when channels join a 2 party bridge.

(closes issue ASTERISK-21829)

Review: https://reviewboard.asterisk.org/r/2636/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394249 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2013-07-12 21:42:53 +00:00
parent d418e991ee
commit 238a54fa15
4 changed files with 133 additions and 275 deletions

View File

@@ -2034,52 +2034,6 @@ int ast_channel_early_bridge(struct ast_channel *c0, struct ast_channel *c1);
*/
int ast_channel_masquerade(struct ast_channel *original, struct ast_channel *clone);
/*!
* \brief Setup a masquerade to transfer a call.
* \since 1.8
*
* \param target_chan Target of the call transfer. (Masquerade original channel)
* \param target_id New connected line information for the target channel.
* \param target_held TRUE if the target call is on hold.
* \param transferee_chan Transferee of the call transfer. (Masquerade clone channel)
* \param transferee_id New connected line information for the transferee channel.
* \param transferee_held TRUE if the transferee call is on hold.
*
* \details
* Party A - Transferee
* Party B - Transferer
* Party C - Target of transfer
*
* Party B transfers A to C.
*
* Party A is connected to bridged channel B1.
* Party B is connected to channels C1 and C2.
* Party C is connected to bridged channel B2.
*
* Party B -- C1 == B1 -- Party A
* __/
* /
* Party B -- C2 == B2 -- Party C
*
* Bridged channel B1 is masqueraded into channel C2. Where B1
* is the masquerade clone channel and C2 is the masquerade
* original channel.
*
* \see ast_channel_masquerade()
*
* \note Has the same locking requirements as ast_channel_masquerade().
*
* \retval 0 on success.
* \retval -1 on error.
*/
int ast_channel_transfer_masquerade(
struct ast_channel *target_chan,
const struct ast_party_connected_line *target_id,
int target_held,
struct ast_channel *transferee_chan,
const struct ast_party_connected_line *transferee_id,
int transferee_held);
/*!
* \brief Gives the string form of a given cause code.
*
@@ -4023,6 +3977,7 @@ struct ast_frame *ast_channel_dtmff(struct ast_channel *chan);
struct ast_jb *ast_channel_jb(struct ast_channel *chan);
struct ast_party_caller *ast_channel_caller(struct ast_channel *chan);
struct ast_party_connected_line *ast_channel_connected(struct ast_channel *chan);
struct ast_party_connected_line *ast_channel_connected_indicated(struct ast_channel *chan);
struct ast_party_id ast_channel_connected_effective_id(struct ast_channel *chan);
struct ast_party_dialed *ast_channel_dialed(struct ast_channel *chan);
struct ast_party_redirecting *ast_channel_redirecting(struct ast_channel *chan);