mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-03 19:16:46 +00:00
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:
12
main/rtp.c
12
main/rtp.c
@@ -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;
|
||||
|
Reference in New Issue
Block a user