]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix rfc2833 bs
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 26 Apr 2007 21:57:50 +0000 (21:57 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 26 Apr 2007 21:57:50 +0000 (21:57 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5021 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_rtp.c

index 105cf70ec3351164d49e82d67d86a5584cb408fe..05e5295025627ba98176bf747adac25db4bc0875 100644 (file)
@@ -967,6 +967,7 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
                        char key = switch_rfc2833_to_char(packet[0]);
                        uint16_t in_digit_seq = ntohs((uint16_t) rtp_session->recv_msg.header.seq);
 
+                       
                        /* SHEESH.... Curse you RFC2833 inventors!!!! */
                        if ((time(NULL) - rtp_session->dtmf_data.last_digit_time) > 2) {
                                rtp_session->dtmf_data.last_digit = 0;
@@ -974,12 +975,12 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
                        }
                        if (in_digit_seq > rtp_session->dtmf_data.in_digit_seq) {
                                rtp_session->dtmf_data.in_digit_seq = in_digit_seq;
-
                                if (duration && end) {
                                        if (key != rtp_session->dtmf_data.last_digit) {
                                                char digit_str[] = { key, 0 };
                                                time(&rtp_session->dtmf_data.last_digit_time);
                                                switch_rtp_queue_dtmf(rtp_session, digit_str);
+                                               switch_set_flag_locked(rtp_session, SWITCH_RTP_FLAG_BREAK);
                                        }
                                        if (++rtp_session->dtmf_data.dc >= 3) {
                                                rtp_session->dtmf_data.last_digit = 0;