Fixify infinite DTMF in the case that no RFC2833 END event is ever received

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@174985 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2009-02-11 23:56:37 +00:00
parent 9e38dd5427
commit 9dff8995b4

View File

@@ -1299,6 +1299,18 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp)
/* Record received timestamp as last received now */
rtp->lastrxts = timestamp;
if (rtp->dtmfcount) {
rtp->dtmfcount -= (timestamp - rtp->lastrxts);
if (rtp->dtmfcount < 0) {
rtp->dtmfcount = 0;
}
if (rtp->resp && !rtp->dtmfcount) {
return send_dtmf(rtp, AST_FRAME_DTMF_END);
}
}
rtp->f.mallocd = 0;
rtp->f.datalen = res - hdrlen;
rtp->f.data = rtp->rawdata + hdrlen + AST_FRIENDLY_OFFSET;