diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-02-23 23:22:52 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-02-23 23:22:52 +0000 |
commit | 7280c80673d25cd7fe6865af913eea97c36bb3c1 (patch) | |
tree | c533ffafdcc22efc1ac09b4260d6bf196f6fd451 /main | |
parent | d0726523897a1123caa706fecb5652c7637e13c5 (diff) |
Merged revisions 178142 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r178142 | russell | 2009-02-23 17:11:37 -0600 (Mon, 23 Feb 2009) | 22 lines
Merged revisions 178141 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r178141 | russell | 2009-02-23 17:09:01 -0600 (Mon, 23 Feb 2009) | 14 lines
Fix infinite DTMF when a BEGIN is received without an END.
This commit is related to rev 175124 of 1.4 where a previous attempt was made
to fix this problem. The problem with the previous patch was that the inserted
code needed to go _before_ setting the lastrxts to the current timestamp.
Because those were the same, the dtmfcount variable was never decremented, and
so the END was never sent.
In passing, I removed the dtmfsamples variable which was completed unused. I
also removed a redundant setting of the lastrxts variable.
(closes issue #14460)
Reported by: moliveras
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.1@178172 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r-- | main/rtp.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/main/rtp.c b/main/rtp.c index 376221a83..8aad80a5b 100644 --- a/main/rtp.c +++ b/main/rtp.c @@ -1741,14 +1741,8 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp) rtp->lastrxformat = rtp->f.subclass = rtpPT.code; rtp->f.frametype = (rtp->f.subclass & AST_FORMAT_AUDIO_MASK) ? AST_FRAME_VOICE : (rtp->f.subclass & AST_FORMAT_VIDEO_MASK) ? AST_FRAME_VIDEO : AST_FRAME_TEXT; - if (!rtp->lastrxts) - rtp->lastrxts = timestamp; - rtp->rxseqno = seqno; - /* Record received timestamp as last received now */ - rtp->lastrxts = timestamp; - if (rtp->dtmfcount) { rtp->dtmfcount -= (timestamp - rtp->lastrxts); @@ -1764,6 +1758,9 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp) } } + /* Record received timestamp as last received now */ + rtp->lastrxts = timestamp; + rtp->f.mallocd = 0; rtp->f.datalen = res - hdrlen; rtp->f.data.ptr = rtp->rawdata + hdrlen + AST_FRIENDLY_OFFSET; |