diff options
-rw-r--r-- | main/manager.c | 19 |
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); |