[asterisk-commits] mmichelson: branch mmichelson/transfer_stasis r391429 - /team/mmichelson/tran...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Jun 11 14:26:37 CDT 2013
Author: mmichelson
Date: Tue Jun 11 14:26:35 2013
New Revision: 391429
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=391429
Log:
Add a test function for seeing attended transfer events.
Modified:
team/mmichelson/transfer_stasis/main/stasis_bridging.c
Modified: team/mmichelson/transfer_stasis/main/stasis_bridging.c
URL: http://svnview.digium.com/svn/asterisk/team/mmichelson/transfer_stasis/main/stasis_bridging.c?view=diff&rev=391429&r1=391428&r2=391429
==============================================================================
--- team/mmichelson/transfer_stasis/main/stasis_bridging.c (original)
+++ team/mmichelson/transfer_stasis/main/stasis_bridging.c Tue Jun 11 14:26:35 2013
@@ -611,6 +611,45 @@
}
}
+static void atxfer_cb(void *userdata, struct stasis_subscription *sub,
+ struct stasis_topic *topic, struct stasis_message *msg)
+{
+ struct ast_attended_transfer_message *xfer_msg;
+
+ if (ast_attended_transfer_type() != stasis_message_type(msg)) {
+ return;
+ }
+
+ xfer_msg = stasis_message_data(msg);
+
+ ast_log(LOG_NOTICE, "Attended transfer!\n");
+ ast_log(LOG_NOTICE, "Original transferer: %s, and his bridge: %s\n",
+ xfer_msg->to_transferee.channel_snapshot->name,
+ xfer_msg->to_transferee.bridge_snapshot ? xfer_msg->to_transferee.bridge_snapshot->uniqueid : "None");
+
+ ast_log(LOG_NOTICE, "Second transferer: %s, and his bridge: %s\n",
+ xfer_msg->to_transfer_target.channel_snapshot->name,
+ xfer_msg->to_transfer_target.bridge_snapshot ? xfer_msg->to_transfer_target.bridge_snapshot->uniqueid : "None");
+
+ switch (xfer_msg->dest_type) {
+ case AST_ATTENDED_TRANSFER_DEST_FAIL:
+ ast_log(LOG_NOTICE, "Attended transfer attempt failed :(\n");
+ break;
+ case AST_ATTENDED_TRANSFER_DEST_BRIDGE_MERGE:
+ ast_log(LOG_NOTICE, "Transfer accomplished via bridge merge. Surviving bridge: %s\n",
+ xfer_msg->dest.bridge);
+ break;
+ case AST_ATTENDED_TRANSFER_DEST_APP:
+ ast_log(LOG_NOTICE, "Transfer to application %s\n", xfer_msg->dest.app);
+ break;
+ case AST_ATTENDED_TRANSFER_DEST_LINK:
+ ast_log(LOG_NOTICE, "Transfer linking two bridges. First bridge and chan: %s and %s. Second bridge and chan: %s and %s\n",
+ xfer_msg->dest.links[0].channel, xfer_msg->dest.links[0].bridge,
+ xfer_msg->dest.links[1].channel, xfer_msg->dest.links[1].bridge);
+ break;
+ }
+}
+
int ast_stasis_bridging_init(void)
{
ast_register_cleanup(stasis_bridging_cleanup);
@@ -627,6 +666,7 @@
/* XXX Temporary stasis subscriptions for debugging/testing */
stasis_subscribe(ast_bridge_topic_all(), transfer_cb, NULL);
+ stasis_subscribe(ast_bridge_topic_all(), atxfer_cb, NULL);
return !bridge_topic_all
|| !bridge_topic_all_cached
More information about the asterisk-commits
mailing list