[asterisk-commits] mmichelson: branch mmichelson/queue-log-atxfer r121991 - /team/mmichelson/que...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Jun 11 17:46:48 CDT 2008
Author: mmichelson
Date: Wed Jun 11 17:46:47 2008
New Revision: 121991
URL: http://svn.digium.com/view/asterisk?view=rev&rev=121991
Log:
Add doxygen to new functions
Modified:
team/mmichelson/queue-log-atxfer/apps/app_queue.c
Modified: team/mmichelson/queue-log-atxfer/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/mmichelson/queue-log-atxfer/apps/app_queue.c?view=diff&rev=121991&r1=121990&r2=121991
==============================================================================
--- team/mmichelson/queue-log-atxfer/apps/app_queue.c (original)
+++ team/mmichelson/queue-log-atxfer/apps/app_queue.c Wed Jun 11 17:46:47 2008
@@ -3049,12 +3049,23 @@
int starttime;
};
+/*! \brief a datastore used to help correctly log attended transfers of queue callers
+ */
static const struct ast_datastore_info queue_transfer_info = {
.type = "queue_transfer",
.destroy = queue_transfer_destroy,
.chan_fixup = queue_transfer_fixup,
};
+/*! \brief Log an attended transfer when a queue caller channel is masqueraded
+ *
+ * When a caller is masqueraded, we want to log a transfer. Fixup time is the closest we can come to when
+ * the actual transfer occurs. This happens during the masquerade after datastores are moved from old_chan
+ * to new_chan. This is why new_chan is referenced for exten, context, and datastore information.
+ *
+ * At the end of this, we want to remove the datastore so that this does not get called on any further
+ * transfers during this call.
+ */
static void queue_transfer_fixup(void *data, struct ast_channel *old_chan, struct ast_channel *new_chan)
{
struct queue_transfer_ds *qtds = data;
@@ -3073,15 +3084,19 @@
ast_channel_datastore_remove(new_chan, datastore);
}
-/* When a caller is atxferred, then the queue_transfer_info datastore
- * is removed from the channel. If it's still there, then the caller was
- * not atxferred
+/*! \brief mechanism to tell if a queue caller was atxferred by a queue member.
+ *
+ * When a caller is atxferred, then the queue_transfer_info datastore
+ * is removed from the channel. If it's still there after the bridge is
+ * broken, then the caller was not atxferred.
*/
static int attended_transfer_occurred(struct ast_channel *chan)
{
return ast_channel_datastore_find(chan, &queue_transfer_info, NULL) ? 0 : 1;
}
+/*! \brief create a datastore for storing relevant info to log attended transfers in the queue_log
+ */
static void setup_transfer_datastore(struct queue_ent *qe, struct member *member, int starttime)
{
struct ast_datastore *ds;
More information about the asterisk-commits
mailing list