]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-9871: [freeswitch-core] DTMF not delivered on B leg of a bridge when A leg has...
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 21 Dec 2016 22:09:54 +0000 (16:09 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 21 Dec 2016 22:09:54 +0000 (16:09 -0600)
src/switch_rtp.c

index 6a82db2e68b4cbdd8cddf4dfdb2193fb7edd4846..6e9e7d16977f56165df616427be80eedc304c90e 100644 (file)
@@ -4869,13 +4869,17 @@ static void do_2833(switch_rtp_t *rtp_session)
        switch_frame_flag_t flags = 0;
        uint32_t samples = rtp_session->samples_per_interval;
 
-       if (!rtp_session->last_write_ts) {
-               return;
-       }
-       
        if (rtp_session->dtmf_data.out_digit_dur > 0) {
                int x, loops = 1;
 
+               if (!rtp_session->last_write_ts) {
+                       if (rtp_session->timer.timer_interface) {
+                               rtp_session->last_write_ts = rtp_session->timer.samplecount;
+                       } else {
+                               rtp_session->last_write_ts = rtp_session->samples_per_interval;
+                       }
+               }
+
                rtp_session->dtmf_data.out_digit_sofar += samples;
                rtp_session->dtmf_data.out_digit_sub_sofar += samples;