summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/manager.c19
1 files changed, 4 insertions, 15 deletions
diff --git a/main/manager.c b/main/manager.c
index ee93dad36..15f485cbb 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -2088,11 +2088,9 @@ static int action_atxfer(struct mansession *s, const struct message *m)
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 @@ static int action_atxfer(struct mansession *s, const struct message *m)
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");
@@ -2126,6 +2111,10 @@ static int action_atxfer(struct mansession *s, const struct message *m)
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) {
struct ast_frame f = {AST_FRAME_DTMF, *feature_code};
ast_queue_frame(chan, &f);