[svn-commits] rmudgett: branch 1.8 r306324 - in /branches/1.8/apps: app_dial.c app_queue.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Feb 4 12:53:10 CST 2011


Author: rmudgett
Date: Fri Feb  4 12:53:06 2011
New Revision: 306324

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=306324
Log:
Don't send redirecting updates to the caller if the dialplan forked the call.

Each fork in the dial could be redirected and confuse the caller.  For
ISDN the DivLeg1 and DivLeg3 messages would get confused because ISDN
redirects calls in sequence not in parallel.

* Also fixed a formatting inconsistency in app_dial.c and make a warning
message more useful about what frame type could not be written.

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

Modified: branches/1.8/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/apps/app_dial.c?view=diff&rev=306324&r1=306323&r2=306324
==============================================================================
--- branches/1.8/apps/app_dial.c (original)
+++ branches/1.8/apps/app_dial.c Fri Feb  4 12:53:06 2011
@@ -1276,7 +1276,7 @@
 				case AST_CONTROL_REDIRECTING:
 					if (ast_test_flag64(peerflags, OPT_IGNORE_CONNECTEDLINE)) {
 						ast_verb(3, "Redirecting update to %s prevented.\n", in->name);
-					} else {
+					} else if (single) {
 						ast_verb(3, "%s redirecting info has changed, passing it to %s\n", c->name, in->name);
 						if (ast_channel_redirecting_macro(c, in, f, 1, 1)) {
 							ast_indicate_data(in, AST_CONTROL_REDIRECTING, f->data.ptr, f->datalen);
@@ -1321,20 +1321,22 @@
 				}
 			} else if (single) {
 				switch (f->frametype) {
-					case AST_FRAME_VOICE:
-					case AST_FRAME_IMAGE:
-					case AST_FRAME_TEXT:
-						if (ast_write(in, f)) {
-							ast_log(LOG_WARNING, "Unable to write frame\n");
-						}
-						break;
-					case AST_FRAME_HTML:
-						if (!ast_test_flag64(outgoing, DIAL_NOFORWARDHTML) && ast_channel_sendhtml(in, f->subclass.integer, f->data.ptr, f->datalen) == -1) {
-							ast_log(LOG_WARNING, "Unable to send URL\n");
-						}
-						break;
-					default:
-						break;
+				case AST_FRAME_VOICE:
+				case AST_FRAME_IMAGE:
+				case AST_FRAME_TEXT:
+					if (ast_write(in, f)) {
+						ast_log(LOG_WARNING, "Unable to write frametype: %d\n",
+							f->frametype);
+					}
+					break;
+				case AST_FRAME_HTML:
+					if (!ast_test_flag64(outgoing, DIAL_NOFORWARDHTML)
+						&& ast_channel_sendhtml(in, f->subclass.integer, f->data.ptr, f->datalen) == -1) {
+						ast_log(LOG_WARNING, "Unable to send URL\n");
+					}
+					break;
+				default:
+					break;
 				}
 			}
 			ast_frfree(f);

Modified: branches/1.8/apps/app_queue.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/apps/app_queue.c?view=diff&rev=306324&r1=306323&r2=306324
==============================================================================
--- branches/1.8/apps/app_queue.c (original)
+++ branches/1.8/apps/app_queue.c Fri Feb  4 12:53:06 2011
@@ -3754,7 +3754,7 @@
 						case AST_CONTROL_REDIRECTING:
 							if (!update_connectedline) {
 								ast_verb(3, "Redirecting update to %s prevented\n", inchan_name);
-							} else {
+							} else if (qe->parent->strategy != QUEUE_STRATEGY_RINGALL) {
 								ast_verb(3, "%s redirecting info has changed, passing it to %s\n", ochan_name, inchan_name);
 								if (ast_channel_redirecting_macro(o->chan, in, f, 1, 1)) {
 									ast_indicate_data(in, AST_CONTROL_REDIRECTING, f->data.ptr, f->datalen);




More information about the svn-commits mailing list