diff --git a/rtp.c b/rtp.c index 03606b0245b752cba39bb0b8bf13dc762528c2af..484e53fa0cea85ce201753e6ed720637a7b5ebfd 100755 --- a/rtp.c +++ b/rtp.c @@ -233,7 +233,10 @@ static struct ast_frame *process_rfc2833(struct ast_rtp *rtp, unsigned char *dat } else if(event_end & 0x80) { - f = send_dtmf(rtp); + if (rtp->resp) { + f = send_dtmf(rtp); + rtp->resp = 0; + } resp = 0; duration = 0; } @@ -241,8 +244,8 @@ static struct ast_frame *process_rfc2833(struct ast_rtp *rtp, unsigned char *dat { f = send_dtmf(rtp); } - - rtp->resp = resp; + if (!(event_end & 0x80)) + rtp->resp = resp; rtp->dtmfcount = dtmftimeout; rtp->dtmfduration = duration; return f;