Update of /usr/cvsroot/asterisk/res
In directory mongoose.digium.com:/tmp/cvs-serv1823/res

Modified Files:
        res_musiconhold.c 
Log Message:
don't install moh functions if no classes are configured (issue #5025 with mods)


Index: res_musiconhold.c
===================================================================
RCS file: /usr/cvsroot/asterisk/res/res_musiconhold.c,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -d -r1.67 -r1.68
--- res_musiconhold.c   22 Aug 2005 19:29:29 -0000      1.67
+++ res_musiconhold.c   25 Aug 2005 23:29:30 -0000      1.68
@@ -471,7 +471,7 @@
                /* 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_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 @@
        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;
 }

_______________________________________________
Asterisk-Cvs mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to