[asterisk-commits] mmichelson: branch 1.6.2 r274168 - in /branches/1.6.2: ./ main/rtp.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Jul 6 09:33:22 CDT 2010


Author: mmichelson
Date: Tue Jul  6 09:33:16 2010
New Revision: 274168

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=274168
Log:
Merged revisions 274164 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
  r274164 | mmichelson | 2010-07-06 09:31:13 -0500 (Tue, 06 Jul 2010) | 22 lines
  
  Merged revisions 274157 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r274157 | mmichelson | 2010-07-06 09:29:23 -0500 (Tue, 06 Jul 2010) | 16 lines
    
    Fix problem with RFC 2833 DTMF not being accepted.
    
    A recent check was added to ensure that we did not erroneously
    detect duplicate DTMF when we received packets out of order.
    The problem was that the check did not account for the fact that
    the seqno of an RTP stream will roll over back to 0 after hitting
    65535. Now, we have a secondary check that will ensure that the
    seqno rolling over will not cause us to stop accepting DTMF.
    
    (closes issue #17571)
    Reported by: mdeneen
    Patches: 
          rtp_seqno_rollover.patch uploaded by mmichelson (license 60)
    Tested by: richardf, maxochoa, JJCinAZ
  ........
................

Modified:
    branches/1.6.2/   (props changed)
    branches/1.6.2/main/rtp.c

Propchange: branches/1.6.2/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.2/main/rtp.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/main/rtp.c?view=diff&rev=274168&r1=274167&r2=274168
==============================================================================
--- branches/1.6.2/main/rtp.c (original)
+++ branches/1.6.2/main/rtp.c Tue Jul  6 09:33:16 2010
@@ -1072,8 +1072,11 @@
 		if (last_duration > 64000 && samples < last_duration)
 			new_duration += 0xFFFF + 1;
 		new_duration = (new_duration & ~0xFFFF) | samples;
-
-		if (rtp->lastevent > seqno) {
+		/* The second portion of this check is to not mistakenly
+		 * stop accepting DTMF if the seqno rolls over beyond
+		 * 65535.
+		 */
+		if (rtp->lastevent > seqno && rtp->lastevent - seqno < 50) {
 			/* Out of order frame. Processing this can cause us to
 			 * improperly duplicate incoming DTMF, so just drop
 			 * this.




More information about the asterisk-commits mailing list