tech_pvt = (private_object_t *) switch_core_session_get_private(session);
switch_assert(tech_pvt != NULL);
- if (!(tech_pvt->profile->pflags & PFLAG_RUNNING)) {
+ if (0 && !(tech_pvt->profile->pflags & PFLAG_RUNNING)) {
switch_channel_hangup(tech_pvt->channel, SWITCH_CAUSE_NORMAL_CLEARING);
return SWITCH_STATUS_FALSE;
}
uint32_t ts;
uint32_t last_write_ts;
uint32_t last_write_samplecount;
+ uint32_t next_write_samplecount;
uint32_t flags;
switch_memory_pool_t *pool;
switch_sockaddr_t *from_addr;
if (rtp_session->timer.interval) {
switch_core_timer_check(&rtp_session->timer);
rtp_session->last_write_samplecount = rtp_session->timer.samplecount;
+ rtp_session->next_write_samplecount = rtp_session->timer.samplecount + samples * 5;
}
rtp_session->dtmf_data.out_digit_dur = 0;
}
if (!rtp_session->dtmf_data.out_digit_dur && rtp_session->dtmf_data.dtmf_queue && switch_queue_size(rtp_session->dtmf_data.dtmf_queue)) {
void *pop;
+ if (rtp_session->timer.interval) {
+ switch_core_timer_check(&rtp_session->timer);
+ if (rtp_session->timer.samplecount < rtp_session->next_write_samplecount) {
+ return;
+ }
+ }
+
if (switch_queue_trypop(rtp_session->dtmf_data.dtmf_queue, &pop) == SWITCH_STATUS_SUCCESS) {
switch_dtmf_t *rdigit = pop;
int64_t offset;