[asterisk-commits] mnicholson: branch 1.4 r286679 - /branches/1.4/main/channel.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Sep 14 13:00:06 CDT 2010


Author: mnicholson
Date: Tue Sep 14 13:00:01 2010
New Revision: 286679

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=286679
Log:
Only drop duplicate answer frames if the channel is bridged.

Back in r3710 ast_read() was modified to drop answer frames on channels that were in the UP state.  This modification prevented bridges that were up before the answer from being broken and reestablished by an ANSWER control frame.  That change also prevents pickup of channels called from the ast_dial framework from working properly.  The ast_dial framework expects to see an ANSWER frame after dialing and the pickup code queues one but ast_read() drops it.  This new change only drops ANSWER frames when the channel is bridged, allowing the answer queued by the pickup code to properly pass through ast_read() on to the ast_dial framework.

ABE-2473
(related to issue #2342)

Modified:
    branches/1.4/main/channel.c

Modified: branches/1.4/main/channel.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/main/channel.c?view=diff&rev=286679&r1=286678&r2=286679
==============================================================================
--- branches/1.4/main/channel.c (original)
+++ branches/1.4/main/channel.c Tue Sep 14 13:00:01 2010
@@ -2352,7 +2352,7 @@
 						ast_log(LOG_DEBUG, "Ignoring answer on an inbound call!\n");
 					ast_frfree(f);
 					f = &ast_null_frame;
-				} else if (prestate == AST_STATE_UP) {
+				} else if (prestate == AST_STATE_UP && ast_bridged_channel(chan)) {
 					if (option_debug)
 						ast_log(LOG_DEBUG, "Dropping duplicate answer!\n");
 					ast_frfree(f);




More information about the asterisk-commits mailing list