ftdmchan->dtmf_on = val;
GOTO_STATUS(done, FTDM_SUCCESS);
} else {
- snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "invalid value %d range 10-1000", val);
+ ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "invalid value %d range 10-1000", val);
GOTO_STATUS(done, FTDM_FAIL);
}
}
ftdmchan->dtmf_off = val;
GOTO_STATUS(done, FTDM_SUCCESS);
} else {
- snprintf(ftdmchan->last_error, sizeof(ftdmchan->last_error), "invalid value %d range 10-1000", val);
+ ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "invalid value %d range 10-1000", val);
GOTO_STATUS(done, FTDM_FAIL);
}
}
if (chan_config->dtmf_on_start) {
span->channels[chan_index]->dtmfdetect.trigger_on_start = 1;
}
+ if (chan_config->dtmf_time_on) {
+ ftdm_channel_command(span->channels[chan_index], FTDM_COMMAND_SET_DTMF_ON_PERIOD, &chan_config->dtmf_time_on);
+ }
+ if (chan_config->dtmf_time_off) {
+ ftdm_channel_command(span->channels[chan_index], FTDM_COMMAND_SET_DTMF_OFF_PERIOD, &chan_config->dtmf_time_off);
+ }
}
return FTDM_SUCCESS;
chan_config.dtmf_on_start = FTDM_FALSE;
}
}
+ } else if (!strcasecmp(var, "dtmf_time_on")) {
+ if (sscanf(val, "%u", &(chan_config.dtmf_time_on)) != 1) {
+ ftdm_log(FTDM_LOG_ERROR, "invalid dtmf_time_on: '%s'\n", val);
+ }
+ } else if (!strcasecmp(var, "dtmf_time_off")) {
+ if (sscanf(val, "%u", &(chan_config.dtmf_time_off)) != 1) {
+ ftdm_log(FTDM_LOG_ERROR, "invalid dtmf_time_off: '%s'\n", val);
+ }
} else if (!strncasecmp(var, "iostats", sizeof("iostats")-1)) {
if (ftdm_true(val)) {
chan_config.iostats = FTDM_TRUE;