diff options
author | Richard Mudgett <rmudgett@digium.com> | 2010-11-09 17:00:07 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2010-11-09 17:00:07 +0000 |
commit | 3adb425b2536c826c66ef5cfc9b2490fd2dbfc28 (patch) | |
tree | 59aa08f9a0bb52e1cd858c5490afa1fee85c6a49 /include | |
parent | 9a257b9f9708d9efb542bf989215236b5bbbf94b (diff) |
Merged revisions 294349 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
........
r294349 | rmudgett | 2010-11-09 10:55:32 -0600 (Tue, 09 Nov 2010) | 17 lines
Analog lines do not transfer CONNECTED LINE or execute the interception macros.
Add connected line update for sig_analog transfers and simplify the
corresponding sig_pri and chan_misdn transfer code.
Note that if you create a three-way call in sig_analog before transferring
the call, the distinction of the caller/callee interception macros make
little sense. The interception macro writer needs to be prepared for
either caller/callee macro to be executed. The current implementation
swaps which caller/callee interception macro is executed after a three-way
call is created.
Review: https://reviewboard.asterisk.org/r/996/
JIRA ABE-2589
JIRA SWP-2372
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@294351 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include')
-rw-r--r-- | include/asterisk/channel.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index d12d478d3..172f69b03 100644 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -1875,6 +1875,52 @@ int ast_channel_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. * * \param state cause to get the description of |