Merged revisions 279207 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r279207 | rmudgett | 2010-07-23 17:11:23 -0500 (Fri, 23 Jul 2010) | 14 lines
  
  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: https://origsvn.digium.com/svn/asterisk/branches/1.8@279227 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2010-07-23 22:20:47 +00:00
parent a2d1082065
commit 6341d1b2ad
2 changed files with 12 additions and 6 deletions

View File

@@ -843,7 +843,9 @@ static void do_forward(struct chanlist *o,
ast_ignore_cc(o->chan); ast_ignore_cc(o->chan);
ast_log(LOG_NOTICE, "Not accepting call completion offers from call-forward recipient %s\n", o->chan->name); ast_log(LOG_NOTICE, "Not accepting call completion offers from call-forward recipient %s\n", o->chan->name);
} else } 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) { if (!c) {
ast_clear_flag64(o, DIAL_STILLGOING); ast_clear_flag64(o, DIAL_STILLGOING);
@@ -909,8 +911,9 @@ static void do_forward(struct chanlist *o,
ast_channel_unlock(in); ast_channel_unlock(in);
if (ast_call(c, tmpchan, 0)) { if (ast_call(c, stuff, 0)) {
ast_log(LOG_NOTICE, "Failed to dial on local channel for call forward to '%s'\n", tmpchan); ast_log(LOG_NOTICE, "Forwarding failed to dial '%s/%s'\n",
tech, stuff);
ast_clear_flag64(o, DIAL_STILLGOING); ast_clear_flag64(o, DIAL_STILLGOING);
ast_hangup(original); ast_hangup(original);
ast_hangup(c); ast_hangup(c);

View File

@@ -3408,7 +3408,9 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
/* Setup parameters */ /* Setup parameters */
o->chan = ast_request(tech, in->nativeformats, in, stuff, &status); o->chan = ast_request(tech, in->nativeformats, in, stuff, &status);
if (!o->chan) { 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; o->stillgoing = 0;
numnochan++; numnochan++;
} else { } else {
@@ -3458,8 +3460,9 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
update_connectedline = 1; update_connectedline = 1;
if (ast_call(o->chan, tmpchan, 0)) { if (ast_call(o->chan, stuff, 0)) {
ast_log(LOG_NOTICE, "Failed to dial on local channel for call forward to '%s'\n", tmpchan); ast_log(LOG_NOTICE, "Forwarding failed to dial '%s/%s'\n",
tech, stuff);
ast_channel_unlock(o->chan); ast_channel_unlock(o->chan);
do_hang(o); do_hang(o);
numnochan++; numnochan++;