deactivate_generator_nolock(chan);
if (should_trigger_dtmf_emulating(chan)) {
/* if in the middle of dtmf emulation keep 50 tick per sec timer on rolling */
- ast_timer_set_rate(ast_channel_timer(chan), 50);
+ struct ast_timer *timer = ast_channel_timer(chan);
+ if (timer) {
+ ast_timer_set_rate(timer, 50);
+ } else {
+ ast_log(LOG_WARNING, "No timing module loaded, DTMF length may be inaccurate\n");
+ }
}
ast_channel_unlock(chan);
}
{
int res;
unsigned int real_rate = rate, max_rate;
+ struct ast_timer *timer = ast_channel_timer(c);
ast_channel_lock(c);
data = NULL;
}
- if (rate && rate > (max_rate = ast_timer_get_max_rate(ast_channel_timer(c)))) {
+ if (rate && rate > (max_rate = ast_timer_get_max_rate(timer))) {
real_rate = max_rate;
}
ast_debug(3, "Scheduling timer at (%u requested / %u actual) timer ticks per second\n", rate, real_rate);
- res = ast_timer_set_rate(ast_channel_timer(c), real_rate);
+ res = ast_timer_set_rate(timer, real_rate);
if (ast_channel_timingdata(c) && ast_test_flag(ast_channel_flags(c), AST_FLAG_TIMINGDATA_IS_AO2_OBJ)) {
ao2_ref(ast_channel_timingdata(c), -1);
* timer events to generate null frames.
*/
if (!ast_channel_generator(chan)) {
- ast_timer_set_rate(ast_channel_timer(chan), 50);
+ struct ast_timer *timer = ast_channel_timer(chan);
+ if (timer) {
+ ast_timer_set_rate(timer, 50);
+ } else {
+ ast_log(LOG_WARNING, "No timing module loaded, DTMF length may be inaccurate\n");
+ }
}
}
if (ast_channel_audiohooks(chan)) {
* timer events to generate null frames.
*/
if (!ast_channel_generator(chan)) {
- ast_timer_set_rate(ast_channel_timer(chan), 50);
+ struct ast_timer *timer = ast_channel_timer(chan);
+ if (timer) {
+ ast_timer_set_rate(timer, 50);
+ } else {
+ ast_log(LOG_WARNING, "No timing module loaded, DTMF length may be inaccurate\n");
+ }
}
} else {
ast_log(LOG_DTMF, "DTMF end passthrough '%c' on %s\n", f->subclass.integer, ast_channel_name(chan));
* timer events to generate null frames.
*/
if (!ast_channel_generator(chan)) {
- ast_timer_set_rate(ast_channel_timer(chan), 50);
+ struct ast_timer *timer = ast_channel_timer(chan);
+ if (timer) {
+ ast_timer_set_rate(timer, 50);
+ } else {
+ ast_log(LOG_WARNING, "No timing module loaded, DTMF length may be inaccurate\n");
+ }
}
}
if (ast_channel_audiohooks(chan)) {
* timer events to generate null frames.
*/
if (!ast_channel_generator(chan)) {
- ast_timer_set_rate(ast_channel_timer(chan), 50);
+ struct ast_timer *timer = ast_channel_timer(chan);
+ if (timer) {
+ ast_timer_set_rate(timer, 50);
+ } else {
+ ast_log(LOG_WARNING, "No timing module loaded, DTMF length may be inaccurate\n");
+ }
}
}
}