[asterisk-commits] mmichelson: trunk r148160 - /trunk/main/manager.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Oct 9 18:55:00 CDT 2008


Author: mmichelson
Date: Thu Oct  9 18:54:59 2008
New Revision: 148160

URL: http://svn.digium.com/view/asterisk?view=rev&rev=148160
Log:
The priority was unnecessary for the manager atxfer, so it has
been removed. Furthermore, now we actually use the Context argument
passed to set the transfer context and don't error out if no
context is specified.

This addresses the actual problems outlined in issue 12158. Regarding
the other points brought up, regarding the inability to not transfer
to extensions which cannot be represented by DTMF, it is not enough of
a constraint that it is worth attempting to rework the feature.

(closes issue #12158)
Reported by: davidw


Modified:
    trunk/main/manager.c

Modified: trunk/main/manager.c
URL: http://svn.digium.com/view/asterisk/trunk/main/manager.c?view=diff&rev=148160&r1=148159&r2=148160
==============================================================================
--- trunk/main/manager.c (original)
+++ trunk/main/manager.c Thu Oct  9 18:54:59 2008
@@ -2088,11 +2088,9 @@
 	const char *name = astman_get_header(m, "Channel");
 	const char *exten = astman_get_header(m, "Exten");
 	const char *context = astman_get_header(m, "Context");
-	const char *priority = astman_get_header(m, "Priority");
 	struct ast_channel *chan = NULL;
 	struct ast_call_feature *atxfer_feature = NULL;
 	char *feature_code = NULL;
-	int priority_int = 0;
 
 	if (ast_strlen_zero(name)) { 
 		astman_send_error(s, m, "No channel specified");
@@ -2102,19 +2100,6 @@
 		astman_send_error(s, m, "No extension specified");
 		return 0;
 	}
-	if (ast_strlen_zero(context)) {
-		astman_send_error(s, m, "No context specified");
-		return 0;
-	}
-	if (ast_strlen_zero(priority)) {
-		astman_send_error(s, m, "No priority specified");
-		return 0;
-	}
-
-	if (sscanf(priority, "%d", &priority_int) != 1 && (priority_int = ast_findlabel_extension(NULL, context, exten, priority, NULL)) < 1) {
-		astman_send_error(s, m, "Invalid Priority");
-		return 0;
-	}
 
 	if (!(atxfer_feature = ast_find_call_feature("atxfer"))) {
 		astman_send_error(s, m, "No attended transfer feature found");
@@ -2124,6 +2109,10 @@
 	if (!(chan = ast_get_channel_by_name_locked(name))) {
 		astman_send_error(s, m, "Channel specified does not exist");
 		return 0;
+	}
+
+	if (!ast_strlen_zero(context)) {
+		pbx_builtin_setvar_helper(chan, "TRANSFER_CONTEXT", context);
 	}
 
 	for (feature_code = atxfer_feature->exten; feature_code && *feature_code; ++feature_code) {




More information about the asterisk-commits mailing list