]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Reset RTP timestamp; sequence number on SSRC change
authorMatthew Jordan <mjordan@digium.com>
Thu, 14 Feb 2013 15:10:46 +0000 (15:10 +0000)
committerMatthew Jordan <mjordan@digium.com>
Thu, 14 Feb 2013 15:10:46 +0000 (15:10 +0000)
In r370252 for ASTERISK-18404, Asterisk's handling of RTP was modified to
better account for out of order RTP packets. This was accomplished by using the
RTP timestamp and sequence number to check for out of order packets. However,
when a SSRC change occurs, the timestamp and sequence number will no longer
have any relation to the previously received packets. The variables tracking
the timestamp and sequence number therefore have to be reset.

(closes issue ASTERISK-20906)
Reported by: Eelco Brolman
patches:
  dtmf_on_hold.patch uploaded by Eelco Brolman (license #6442)
........

Merged revisions 378967 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 378984 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/11.2@381403 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_rtp_asterisk.c

index a5ae99e318fd37ab426d116b71d2f4973d1a2f12..460e57a661ea4722aac3c59112298f7ffaa2cfe2 100644 (file)
@@ -3584,6 +3584,9 @@ static struct ast_frame *ast_rtp_read(struct ast_rtp_instance *instance, int rtc
 
                f = ast_frisolate(&srcupdate);
                AST_LIST_INSERT_TAIL(&frames, f, frame_list);
+
+               rtp->last_seqno = 0;
+               rtp->last_end_timestamp = 0;
        }
 
        rtp->rxssrc = ssrc;