]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix issue where dtmf was not being sent on an outbound leg when there was no inbound...
authorAnthony Minessale <anthm@freeswitch.org>
Fri, 28 Sep 2012 21:17:20 +0000 (16:17 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Fri, 28 Sep 2012 21:17:20 +0000 (16:17 -0500)
src/switch_rtp.c

index b3b396e619aeb387ece9335e30f0b55374ab6dc6..14fbe1a849d5f6498f6348e842a7a20f95b8d221 100644 (file)
@@ -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 {