[asterisk-commits] mmichelson: branch mmichelson/transfer_stasis r391587 - /team/mmichelson/tran...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Jun 12 17:52:10 CDT 2013
Author: mmichelson
Date: Wed Jun 12 17:52:09 2013
New Revision: 391587
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=391587
Log:
Add documentation for publication information on attended transfers.
Modified:
team/mmichelson/transfer_stasis/main/bridging.c
Modified: team/mmichelson/transfer_stasis/main/bridging.c
URL: http://svnview.digium.com/svn/asterisk/team/mmichelson/transfer_stasis/main/bridging.c?view=diff&rev=391587&r1=391586&r2=391587
==============================================================================
--- team/mmichelson/transfer_stasis/main/bridging.c (original)
+++ team/mmichelson/transfer_stasis/main/bridging.c Wed Jun 12 17:52:09 2013
@@ -5602,8 +5602,14 @@
return AST_BRIDGE_TRANSFER_SUCCESS;
}
+/*!
+ * \internal
+ * \brief Base data to publish for stasis attended transfer messages
+ */
struct stasis_attended_transfer_publish_data {
+ /* The bridge between the transferer and transferee, and the transferer channel in this bridge */
struct ast_bridge_channel_pair to_transferee;
+ /* The bridge between the transferer and transfer target, and the transferer channel in this bridge */
struct ast_bridge_channel_pair to_transfer_target;
};
@@ -5615,6 +5621,16 @@
ao2_cleanup(publication->to_transfer_target.bridge);
}
+/*!
+ * \internal
+ * \brief Set up base data for an attended transfer stasis publication
+ *
+ * \param to_transferee The original transferer channel, which may be bridged to a transferee
+ * \param to_transferee_bridge The bridge that to_transferee is in.
+ * \param to_transfer_target The second transferer channel, which may be bridged to a transfer target
+ * \param to_target_bridge The bridge that to_transfer_target_is in.
+ * \param[out] publication A structure to hold the other parameters
+ */
static void stasis_publish_data_init(struct ast_channel *to_transferee,
struct ast_bridge *to_transferee_bridge, struct ast_channel *to_transfer_target,
struct ast_bridge *to_target_bridge,
@@ -5634,6 +5650,13 @@
}
}
+/*
+ * \internal
+ * \brief Publish a stasis attended transfer resulting in a bridge merge
+ *
+ * \param publication Base data about the attended transfer
+ * \param final_bridge The surviving bridge of the attended transfer
+ */
static void publish_attended_transfer_bridge_merge(struct stasis_attended_transfer_publish_data *publication,
struct ast_bridge *final_bridge)
{
@@ -5641,6 +5664,13 @@
&publication->to_transferee, &publication->to_transfer_target, final_bridge);
}
+/*
+ * \internal
+ * \brief Publish a stasis attended transfer to an application
+ *
+ * \param publication Base data about the attended transfer
+ * \param app The app that is running at the conclusion of the transfer
+ */
static void publish_attended_transfer_app(struct stasis_attended_transfer_publish_data *publication,
const char *app)
{
@@ -5648,6 +5678,16 @@
&publication->to_transferee, &publication->to_transfer_target, app);
}
+/*
+ * \internal
+ * \brief Publish a stasis attended transfer showing a link between bridges
+ *
+ * \param publication Base data about the attended transfer
+ * \param local_channel1 Local channel in the original bridge
+ * \param local_bridge1 Bridge that local_channel1 is in
+ * \param local_channel2 Local channel in the second bridge
+ * \param local_bridge2 Bridge taht local_channel2 is in
+ */
static void publish_attended_transfer_link(struct stasis_attended_transfer_publish_data *publication,
struct ast_channel *local_channel1, struct ast_bridge *local_bridge1,
struct ast_channel *local_channel2, struct ast_bridge *local_bridge2)
@@ -5666,8 +5706,15 @@
&publication->to_transferee, &publication->to_transfer_target, locals);
}
-static void publish_attended_transfer_fail(enum ast_transfer_result result,
- struct stasis_attended_transfer_publish_data *publication)
+/*
+ * \internal
+ * \brief Publish a stasis attended transfer failure
+ *
+ * \param publication Base data about the attended transfer
+ * \param result The transfer result
+ */
+static void publish_attended_transfer_fail(struct stasis_attended_transfer_publish_data *publication,
+ enum ast_transfer_result result)
{
ast_bridge_publish_attended_transfer_fail(1, result, &publication->to_transferee,
&publication->to_transfer_target);
@@ -5691,6 +5738,7 @@
* \param chan2 Other transferer channel. May or may not be bridged.
* \param bridge1 Bridge that chan1 is in. Guaranteed to be non-NULL.
* \param bridge2 Bridge that chan2 is in. If NULL, then chan2 is not bridged.
+ * \param publication Data to publish for a stasis attended transfer message.
* \retval AST_BRIDGE_TRANSFER_FAIL Internal error occurred
* \retval AST_BRIDGE_TRANSFER_SUCCESS Succesfully transferred the bridge
*/
@@ -6093,6 +6141,7 @@
* \param to_target_bridge_channel to_transfer_target's bridge_channel
* \param to_transferee_bridge The bridge between to_transferee and the transferee
* \param to_target_bridge The bridge between to_transfer_target and the transfer_target
+ * \param publication Data to publish for a stasis attended transfer message
* \return The success or failure of the attended transfer
*/
static enum ast_transfer_result two_bridge_attended_transfer(struct ast_channel *to_transferee,
@@ -6306,7 +6355,7 @@
* All failure paths have deferred publishing a stasis message until this point
*/
if (res != AST_BRIDGE_TRANSFER_SUCCESS) {
- publish_attended_transfer_fail(res, &publication);
+ publish_attended_transfer_fail(&publication, res);
}
stasis_publish_data_cleanup(&publication);
return res;
More information about the asterisk-commits
mailing list