[asterisk-commits] kpfleming: branch kpfleming/rfc5456-ACK-compliance r330106 - in /team/kpflemi...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Jul 28 16:09:15 CDT 2011


Author: kpfleming
Date: Thu Jul 28 16:09:11 2011
New Revision: 330106

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=330106
Log:
Branch to hold changes for IAX2 compliance changes related to acknowledgements
of PING, POKE and LAGRQ requests.


Added:
    team/kpfleming/rfc5456-ACK-compliance/   (props changed)
      - copied from r330104, branches/1.8/
Modified:
    team/kpfleming/rfc5456-ACK-compliance/channels/chan_iax2.c

Propchange: team/kpfleming/rfc5456-ACK-compliance/
------------------------------------------------------------------------------
--- branch-1.6.2-blocked (added)
+++ branch-1.6.2-blocked Thu Jul 28 16:09:11 2011
@@ -1,0 +1,1 @@
+/branches/1.6.2:279852,279883,280227,280556,280812,282668,299533,303273,309348,320506

Propchange: team/kpfleming/rfc5456-ACK-compliance/
------------------------------------------------------------------------------
Binary property 'branch-1.6.2-merged' - no diff available.

Propchange: team/kpfleming/rfc5456-ACK-compliance/
------------------------------------------------------------------------------
--- reviewboard:url (added)
+++ reviewboard:url Thu Jul 28 16:09:11 2011
@@ -1,0 +1,1 @@
+https://reviewboard.asterisk.org

Propchange: team/kpfleming/rfc5456-ACK-compliance/
------------------------------------------------------------------------------
--- svn:externals (added)
+++ svn:externals Thu Jul 28 16:09:11 2011
@@ -1,0 +1,1 @@
+menuselect https://origsvn.digium.com/svn/menuselect/trunk

Propchange: team/kpfleming/rfc5456-ACK-compliance/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Jul 28 16:09:11 2011
@@ -1,0 +1,26 @@
+asterisk
+defaults.h
+ast_expr2.output
+.version
+.depend
+.applied
+mpg123-0.59r
+mpg123-0.59r.tar.gz
+update.out
+.lastclean
+.cleancount
+.tags-depend
+.tags-sources
+tags
+TAGS
+testexpr2
+makeopts
+menuselect.makeopts
+menuselect.makedeps
+config.status
+config.log
+menuselect-tree
+autom4te.cache
+makeopts.embed_rules
+aclocal.m4
+update.log

Propchange: team/kpfleming/rfc5456-ACK-compliance/
------------------------------------------------------------------------------
    svn:mergeinfo = /be/branches/C.3:256426

Modified: team/kpfleming/rfc5456-ACK-compliance/channels/chan_iax2.c
URL: http://svnview.digium.com/svn/asterisk/team/kpfleming/rfc5456-ACK-compliance/channels/chan_iax2.c?view=diff&rev=330106&r1=330104&r2=330106
==============================================================================
--- team/kpfleming/rfc5456-ACK-compliance/channels/chan_iax2.c (original)
+++ team/kpfleming/rfc5456-ACK-compliance/channels/chan_iax2.c Thu Jul 28 16:09:11 2011
@@ -11390,15 +11390,25 @@
 				ies.vars = NULL;
 			}
 
-			/* Don't actually pass these frames along */
-			if ((f.subclass.integer != IAX_COMMAND_ACK) && 
-			  (f.subclass.integer != IAX_COMMAND_TXCNT) && 
-			  (f.subclass.integer != IAX_COMMAND_TXACC) && 
-			  (f.subclass.integer != IAX_COMMAND_INVAL) &&
-			  (f.subclass.integer != IAX_COMMAND_VNAK)) { 
-			  	if (iaxs[fr->callno] && iaxs[fr->callno]->aseqno != iaxs[fr->callno]->iseqno)
+			/* Send an ACK if necessary */
+			switch (f.subclass.integer) {
+			case IAX_COMMAND_ACK:
+			case IAX_COMMAND_TXCNT:
+			case IAX_COMMAND_TXACC:
+			case IAX_COMMAND_INVAL:
+			case IAX_COMMAND_VNAK:
+			case IAX_COMMAND_PING:
+			case IAX_COMMAND_POKE:
+			case IAX_COMMAND_LAGRQ:
+				/* None of these command frames need to be ACKed */
+				break;
+			default:
+				/* Send an ACK if the current command frame has not already been ACKed */
+			  	if (iaxs[fr->callno] && iaxs[fr->callno]->aseqno != iaxs[fr->callno]->iseqno) {
 					send_command_immediate(iaxs[fr->callno], AST_FRAME_IAX, IAX_COMMAND_ACK, fr->ts, NULL, 0,fr->iseqno);
+				}
 			}
+
 			ast_mutex_unlock(&iaxsl[fr->callno]);
 			return 1;
 		}




More information about the asterisk-commits mailing list