struct mohclass *mohclass = NULL;
struct moh_files_state *state = ast_channel_music_state(chan);
struct ast_variable *var = NULL;
- int res;
+ int res = 0;
int realtime_possible = ast_check_realtime("musiconhold");
/* The following is the order of preference for which class to use:
ast_set_flag(ast_channel_flags(chan), AST_FLAG_MOH);
- if (mohclass->total_files) {
- res = ast_activate_generator(chan, &moh_file_stream, mohclass);
- } else {
- res = ast_activate_generator(chan, &mohgen, mohclass);
+ if (!state || strcmp(mohclass->name, state->class->name)) {
+ if (mohclass->total_files) {
+ res = ast_activate_generator(chan, &moh_file_stream, mohclass);
+ } else {
+ res = ast_activate_generator(chan, &mohgen, mohclass);
+ }
}
mohclass = mohclass_unref(mohclass, "unreffing local reference to mohclass in local_ast_moh_start");