aboutsummaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-08-25 23:29:30 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-08-25 23:29:30 +0000
commit2d99395680a4121e2c3929f5634233dfbddfaef2 (patch)
treeb19c0ec848c02bc5a8c83932983607614e82fa02 /res
parentd02a0e57996edeecc7f2e7782884e1adea9dbcb8 (diff)
don't install moh functions if no classes are configured (issue #5025 with mods)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6412 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rwxr-xr-xres/res_musiconhold.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c
index c2db43d74..9dcb429a0 100755
--- a/res/res_musiconhold.c
+++ b/res/res_musiconhold.c
@@ -471,7 +471,7 @@ static void *monmp3thread(void *data)
/* Spawn mp3 player if it's not there */
if (class->srcfd < 0) {
if ((class->srcfd = spawn_mp3(class)) < 0) {
- ast_log(LOG_WARNING, "unable to spawn mp3player\n");
+ ast_log(LOG_WARNING, "Unable to spawn mp3player\n");
/* Try again later */
sleep(500);
}
@@ -1135,24 +1135,25 @@ static struct ast_cli_entry cli_moh_classes_show = { { "moh", "classes", "show"
static struct ast_cli_entry cli_moh_files_show = { { "moh", "files", "show"}, cli_files_show, "List MOH file-based classes", "Lists all loaded file-based MOH classes and their files", NULL};
-static void init_classes(void)
+static int init_classes(void)
{
struct mohclass *moh;
- load_moh_classes();
+ if (!load_moh_classes()) /* Load classes from config */
+ return 0; /* Return if nothing is found */
moh = mohclasses;
while (moh) {
if (moh->total_files)
moh_scan_files(moh);
moh = moh->next;
}
+ return 1;
}
int load_module(void)
{
int res;
- ast_install_music_functions(local_ast_moh_start, local_ast_moh_stop, local_ast_moh_cleanup);
res = ast_register_application(app0, moh0_exec, synopsis0, descrip0);
ast_register_atexit(ast_moh_destroy);
ast_cli_register(&cli_moh);
@@ -1167,14 +1168,19 @@ int load_module(void)
if (!res)
res = ast_register_application(app4, moh4_exec, synopsis4, descrip4);
- init_classes();
+ if (!init_classes()) { /* No music classes configured, so skip it */
+ ast_log(LOG_WARNING, "No music on hold classes configured, disabling music on hold.");
+ } else {
+ ast_install_music_functions(local_ast_moh_start, local_ast_moh_stop, local_ast_moh_cleanup);
+ }
return 0;
}
int reload(void)
{
- init_classes();
+ if (init_classes())
+ ast_install_music_functions(local_ast_moh_start, local_ast_moh_stop, local_ast_moh_cleanup);
return 0;
}