[asterisk-commits] rmudgett: branch 1.4 r279206 - in /branches/1.4/apps: app_dial.c app_queue.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Jul 23 16:56:48 CDT 2010


Author: rmudgett
Date: Fri Jul 23 16:56:44 2010
New Revision: 279206

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=279206
Log:
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

Modified:
    branches/1.4/apps/app_dial.c
    branches/1.4/apps/app_queue.c

Modified: branches/1.4/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/apps/app_dial.c?view=diff&rev=279206&r1=279205&r2=279206
==============================================================================
--- branches/1.4/apps/app_dial.c (original)
+++ branches/1.4/apps/app_dial.c Fri Jul 23 16:56:44 2010
@@ -534,7 +534,9 @@
 						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_flag(o, DIAL_STILLGOING);	
@@ -569,8 +571,9 @@
 					if (c->cid.cid_rdnis) 
 						free(c->cid.cid_rdnis);
 					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_flag(o, DIAL_STILLGOING);	
 						ast_hangup(c);
 						c = o->chan = NULL;

Modified: branches/1.4/apps/app_queue.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/apps/app_queue.c?view=diff&rev=279206&r1=279205&r2=279206
==============================================================================
--- branches/1.4/apps/app_queue.c (original)
+++ branches/1.4/apps/app_queue.c Fri Jul 23 16:56:44 2010
@@ -2321,7 +2321,9 @@
 					/* 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 {
@@ -2346,8 +2348,9 @@
 						if (o->chan->cid.cid_rdnis)
 							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++;
 						}




More information about the asterisk-commits mailing list