aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2010-11-09 16:55:32 +0000
committerrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2010-11-09 16:55:32 +0000
commit89fdc4f316990d60c22d21f8fd5885a49d710c57 (patch)
tree85627bda8a8f48ade72ef64c8f71c74618258edc /include
parent3f17f7ce08f9b3783e09ec2e23779f55803ffc4a (diff)
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: http://svn.digium.com/svn/asterisk/branches/1.8@294349 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include')
-rw-r--r--include/asterisk/channel.h46
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