[asterisk-commits] mmichelson: branch 1.8 r306575 - /branches/1.8/main/ccss.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Feb 7 11:36:59 CST 2011


Author: mmichelson
Date: Mon Feb  7 11:36:56 2011
New Revision: 306575

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=306575
Log:
Rearrange a bit of code in the generic CC recall operation.

By waiting to call the callback macro after the CC_INTERFACES,
extension, priority, and context have been set, this information
can be accessed more easily within the callback macro.

Reported by Philippe Lindheimer.


Modified:
    branches/1.8/main/ccss.c

Modified: branches/1.8/main/ccss.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/main/ccss.c?view=diff&rev=306575&r1=306574&r2=306575
==============================================================================
--- branches/1.8/main/ccss.c (original)
+++ branches/1.8/main/ccss.c Mon Feb  7 11:36:56 2011
@@ -2495,6 +2495,19 @@
 		ast_cc_failed(agent->core_id, "Failed to call back device %s/%s", tech, target);
 		return NULL;
 	}
+	
+	/* We have a channel. It's time now to set up the datastore of recalled CC interfaces.
+	 * This will be a common task for all recall functions. If it were possible, I'd have
+	 * the core do it automatically, but alas I cannot. Instead, I will provide a public
+	 * function to do so.
+	 */
+	ast_setup_cc_recall_datastore(chan, agent->core_id);
+	ast_cc_agent_set_interfaces_chanvar(chan);
+
+	ast_copy_string(chan->exten, generic_pvt->exten, sizeof(chan->exten));
+	ast_copy_string(chan->context, generic_pvt->context, sizeof(chan->context));
+	chan->priority = 1;
+
 	if (!ast_strlen_zero(callback_macro)) {
 		ast_log_dynamic_level(cc_logger_level, "Core %d: There's a callback macro configured for agent %s\n",
 				agent->core_id, agent->device_name);
@@ -2504,17 +2517,6 @@
 			return NULL;
 		}
 	}
-	/* We have a channel. It's time now to set up the datastore of recalled CC interfaces.
-	 * This will be a common task for all recall functions. If it were possible, I'd have
-	 * the core do it automatically, but alas I cannot. Instead, I will provide a public
-	 * function to do so.
-	 */
-	ast_setup_cc_recall_datastore(chan, agent->core_id);
-	ast_cc_agent_set_interfaces_chanvar(chan);
-
-	ast_copy_string(chan->exten, generic_pvt->exten, sizeof(chan->exten));
-	ast_copy_string(chan->context, generic_pvt->context, sizeof(chan->context));
-	chan->priority = 1;
 	ast_cc_agent_recalling(agent->core_id, "Generic agent %s is recalling", agent->device_name);
 	ast_pbx_start(chan);
 	return NULL;




More information about the asterisk-commits mailing list