[asterisk-bugs] [Asterisk 0017571]: [patch] RFC 2833 frame out of order detection does not properly handle numeric overflow

Asterisk Bug Tracker noreply at bugs.digium.com
Fri Jul 2 12:27:22 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17571 
====================================================================== 
Reported By:                mdeneen
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   17571
Category:                   Core/RTP
Reproducibility:            sometimes
Severity:                   minor
Priority:                   normal
Status:                     ready for testing
Asterisk Version:           1.6.2.9 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-06-30 10:24 CDT
Last Modified:              2010-07-02 12:27 CDT
====================================================================== 
Summary:                    [patch] RFC 2833 frame out of order detection does
not properly handle numeric overflow
Description: 
SVN revision r254482 added code to detect out of sequence RTP frames, and
to discard them.  However, at least with my ITSP, the RTP sequence is a 16
bit unsigned number.  It is possible to get into a situation where the
check fails because the RTP sequence number rolls back around to 0 as the
DTMF frame comes in.

In this situation, the last sequence number (rtp->lastevent) is not
updated and further DTMF frames are ignored.

For example, rtp->lastevent might be 65535.  The RTP sequence can never be
greater than this, so no further DTMF will be processed.

Instead of doing:

if (rtp->lastevent > seqno) {
    return;
}
Perhaps it should not fall into the "out of order" branch if the
difference between the last sequence and the current sequence is greater
than a chosen reasonable number.

======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0015811 [patch] dtmf creating double digits if ...
has duplicate       0017545 [regression] DTMF transfers stop workin...
====================================================================== 

---------------------------------------------------------------------- 
 (0124194) maxochoa (reporter) - 2010-07-02 12:27
 https://issues.asterisk.org/view.php?id=17571#c124194 
---------------------------------------------------------------------- 
This patch resolved the issue in testing using an agent in app_queue with
durations just over 20 minutes. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-07-02 12:27 maxochoa       Note Added: 0124194                          
======================================================================




More information about the asterisk-bugs mailing list