From 4b29f7c3d9b17562a032b0882f047d6bf0846954 Mon Sep 17 00:00:00 2001 From: Anthony Minessale <anthony.minessale@gmail.com> Date: Fri, 25 May 2007 15:31:47 +0000 Subject: [PATCH] possible fix for FSCORE-30 git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5214 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/switch_rtp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 426704b515..8631f962b1 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -751,9 +751,14 @@ static void do_2833(switch_rtp_t *rtp_session) rtp_session->dtmf_data.out_digit_packet[2] = (unsigned char) (duration >> 8); rtp_session->dtmf_data.out_digit_packet[3] = (unsigned char) duration; + if (loops != 1) { + rtp_session->dtmf_data.out_digit_seq++; + } for (x = 0; x < loops; x++) { - rtp_session->dtmf_data.out_digit_seq++; + if (loops == 1) { + rtp_session->dtmf_data.out_digit_seq++; + } switch_rtp_write_manual(rtp_session, rtp_session->dtmf_data.out_digit_packet, 4, @@ -769,6 +774,8 @@ static void do_2833(switch_rtp_t *rtp_session) if (loops == 1) { rtp_session->last_write_seq = 0; + } else { + rtp_session->dtmf_data.out_digit_seq = 0; } } @@ -1409,7 +1416,7 @@ static int rtp_common_write(switch_rtp_t *rtp_session, void *data, uint32_t data } - if (rtp_session->last_write_seq >0 && rtp_session->last_write_seq <= rtp_session->dtmf_data.out_digit_seq) { + if (rtp_session->last_write_seq > 0 && rtp_session->last_write_seq <= rtp_session->dtmf_data.out_digit_seq) { send = 0; }