diff options
author | qwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-01-17 00:20:56 +0000 |
---|---|---|
committer | qwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-01-17 00:20:56 +0000 |
commit | d205a34d7b7433e0593953fa57e496990026d7cf (patch) | |
tree | 3c6b64973b5ffd70d9cc4db52e90c52243580e09 /main/rtp.c | |
parent | 7f636e8320f475129a60364d57c89be16fb4d8e4 (diff) |
Fix issue with dtmf continuation packets when the dtmf digit is 0...
Issue 8831
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@51170 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/rtp.c')
-rw-r--r-- | main/rtp.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/main/rtp.c b/main/rtp.c index c1285654d..ec4a93ab9 100644 --- a/main/rtp.c +++ b/main/rtp.c @@ -143,7 +143,8 @@ struct ast_rtp { unsigned int dtmfduration; /* DTMF Transmission Variables */ unsigned int lastdigitts; - char send_digit; + char sending_digit; /* boolean - are we sending digits */ + char send_digit; /* digit we are sending */ int send_payload; int send_duration; int nat; @@ -1091,7 +1092,7 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp) struct ast_rtp *bridged = NULL; /* If time is up, kill it */ - if (rtp->send_digit) + if (rtp->sending_digit) ast_rtp_senddigit_continuation(rtp); len = sizeof(sin); @@ -2138,6 +2139,7 @@ int ast_rtp_senddigit_begin(struct ast_rtp *rtp, char digit) } /* Since we received a begin, we can safely store the digit and disable any compensation */ + rtp->sending_digit = 1; rtp->send_digit = digit; rtp->send_payload = payload; @@ -2229,6 +2231,7 @@ int ast_rtp_senddigit_end(struct ast_rtp *rtp, char digit) ast_inet_ntoa(rtp->them.sin_addr), ntohs(rtp->them.sin_port), rtp->send_payload, rtp->seqno, rtp->lastdigitts, res - hdrlen); } + rtp->sending_digit = 0; rtp->send_digit = 0; /* Increment lastdigitts */ rtp->lastdigitts += 960; |