diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-04-05 17:03:30 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-04-05 17:03:30 +0000 |
commit | 54a140d030be645458cc82416501f0386e1d9e4b (patch) | |
tree | 688cca05a172b5bdadeb3dad55c542952e6423ac | |
parent | 4d9f5c0d2ea0105f67ed52aecf44a543385a2861 (diff) |
Bug 6508 - if priority was a number, then findlabel fails
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@17626 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | apps/app_channelredirect.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/apps/app_channelredirect.c b/apps/app_channelredirect.c index de8b6abfa..00849302e 100644 --- a/apps/app_channelredirect.c +++ b/apps/app_channelredirect.c @@ -99,15 +99,16 @@ static int asyncgoto_exec(struct ast_channel *chan, void *data) context = NULL; } - if (!(prio = ast_findlabel_extension(chan2, S_OR(context, chan2->context), S_OR(exten, chan2->exten), - priority, chan2->cid.cid_num))) { + /* ast_findlabel_extension does not convert numeric priorities; it only does a lookup */ + if (!(prio = atoi(priority)) && !(prio = ast_findlabel_extension(chan2, S_OR(context, chan2->context), + S_OR(exten, chan2->exten), priority, chan2->cid.cid_num))) { ast_log(LOG_WARNING, "'%s' is not a known priority or label\n", priority); goto chanquit; } - ast_log(LOG_DEBUG, "Attempting async goto (%s) to %s\n", args.channel, args.label); + ast_log(LOG_DEBUG, "Attempting async goto (%s) to %s|%s|%d\n", args.channel, S_OR(context, chan2->context), S_OR(exten, chan2->exten), prio); - if (ast_async_goto_if_exists(chan2, context ? context : chan2->context, exten ? exten : chan2->exten, prio)) + if (ast_async_goto_if_exists(chan2, S_OR(context, chan2->context), S_OR(exten, chan2->exten), prio)) ast_log(LOG_WARNING, "%s failed for %s\n", app, args.channel); else res = 0; |