diff options
author | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-07-23 22:11:23 +0000 |
---|---|---|
committer | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-07-23 22:11:23 +0000 |
commit | a201498eb6a975312d27636d0b1fc8f2e1f08cee (patch) | |
tree | 7e5385942df366c6de905844fc8567e676b302a7 | |
parent | 1ac598372b774c2b76a295d367c5b1f9b6ce897a (diff) |
Merged revisions 279206 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r279206 | rmudgett | 2010-07-23 16:56:44 -0500 (Fri, 23 Jul 2010) | 7 lines
SIP promiscuous redirect could fail to dial the redirect.
The ast_channel was created with one variable to ast_request() but the
call to ast_call() that initiates the outgoing call was using a different
variable. The two variables are not equivalent if the call_forward string
included a channel technology specifier. e.g., SIP/200
........
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@279207 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | apps/app_dial.c | 9 | ||||
-rw-r--r-- | apps/app_queue.c | 9 |
2 files changed, 12 insertions, 6 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c index 61b3fa105..f5309f5ed 100644 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -754,7 +754,9 @@ static void do_forward(struct chanlist *o, ast_channel_inherit_variables(in, o->chan); ast_channel_datastore_inherit(in, o->chan); } else - ast_log(LOG_NOTICE, "Unable to create local channel for call forward to '%s/%s' (cause = %d)\n", tech, stuff, cause); + ast_log(LOG_NOTICE, + "Forwarding failed to create channel to dial '%s/%s' (cause = %d)\n", + tech, stuff, cause); } if (!c) { ast_clear_flag64(o, DIAL_STILLGOING); @@ -785,8 +787,9 @@ static void do_forward(struct chanlist *o, S_REPLACE(c->cid.cid_ani, ast_strdup(in->cid.cid_ani)); } S_REPLACE(c->cid.cid_rdnis, ast_strdup(S_OR(in->macroexten, in->exten))); - if (ast_call(c, tmpchan, 0)) { - ast_log(LOG_NOTICE, "Failed to dial on local channel for call forward to '%s'\n", tmpchan); + if (ast_call(c, stuff, 0)) { + ast_log(LOG_NOTICE, "Forwarding failed to dial '%s/%s'\n", + tech, stuff); ast_clear_flag64(o, DIAL_STILLGOING); ast_hangup(original); ast_hangup(c); diff --git a/apps/app_queue.c b/apps/app_queue.c index 32adfd7a3..63e2931e3 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -2962,7 +2962,9 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte /* Setup parameters */ o->chan = ast_request(tech, in->nativeformats, stuff, &status); if (!o->chan) { - ast_log(LOG_NOTICE, "Unable to create local channel for call forward to '%s/%s'\n", tech, stuff); + ast_log(LOG_NOTICE, + "Forwarding failed to create channel to dial '%s/%s'\n", + tech, stuff); o->stillgoing = 0; numnochan++; } else { @@ -2987,8 +2989,9 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte if (o->chan->cid.cid_rdnis) ast_free(o->chan->cid.cid_rdnis); o->chan->cid.cid_rdnis = ast_strdup(S_OR(in->macroexten, in->exten)); - if (ast_call(o->chan, tmpchan, 0)) { - ast_log(LOG_NOTICE, "Failed to dial on local channel for call forward to '%s'\n", tmpchan); + if (ast_call(o->chan, stuff, 0)) { + ast_log(LOG_NOTICE, "Forwarding failed to dial '%s/%s'\n", + tech, stuff); do_hang(o); numnochan++; } |