From: Anthony Minessale Date: Fri, 28 Sep 2012 21:17:20 +0000 (-0500) Subject: fix issue where dtmf was not being sent on an outbound leg when there was no inbound... X-Git-Tag: v1.3.0~143 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8d614040168083f0dad5ca4a45bae7c06ed3de7c;p=thirdparty%2Ffreeswitch.git fix issue where dtmf was not being sent on an outbound leg when there was no inbound audio --- diff --git a/src/switch_rtp.c b/src/switch_rtp.c index b3b396e619..14fbe1a849 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -3492,7 +3492,6 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_ if (!switch_test_flag(rtp_session, SWITCH_RTP_FLAG_NOBLOCK) || !switch_test_flag(rtp_session, SWITCH_RTP_FLAG_USE_TIMER) || switch_test_flag(rtp_session, SWITCH_RTP_FLAG_PROXY_MEDIA) || switch_test_flag(rtp_session, SWITCH_RTP_FLAG_UDPTL) || (bytes && bytes < 5) || (!bytes && poll_loop)) { - do_2833(rtp_session, session); bytes = 0; return_cng_frame(); } @@ -3692,6 +3691,8 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_ if (do_cng) { uint8_t *data = (uint8_t *) rtp_session->recv_msg.body; + do_2833(rtp_session, session); + if (rtp_session->last_cng_ts == rtp_session->last_read_ts + rtp_session->samples_per_interval) { rtp_session->last_cng_ts = 0; } else {