diff --git a/formats/format_g723.c b/formats/format_g723.c index c54a640b3c24fb375792f25d1d98f30106c738d9..195815a46cc406b72cecabf8687631907e13cc28 100755 --- a/formats/format_g723.c +++ b/formats/format_g723.c @@ -325,7 +325,7 @@ int unload_module() tmp = glist; while(tmp) { if (tmp->owner) - ast_softhangup(tmp->owner); + ast_softhangup(tmp->owner, AST_SOFTHANGUP_APPUNLOAD); tmpl = tmp; tmp = tmp->next; free(tmpl); diff --git a/formats/format_gsm.c b/formats/format_gsm.c index 1ac9869341c7d0f66fb65dcd0a477bf25a791c67..1ac981f7f47973212ca749adae373b803194d984 100755 --- a/formats/format_gsm.c +++ b/formats/format_gsm.c @@ -271,7 +271,7 @@ int unload_module() tmp = glist; while(tmp) { if (tmp->owner) - ast_softhangup(tmp->owner); + ast_softhangup(tmp->owner, AST_SOFTHANGUP_APPUNLOAD); tmpl = tmp; tmp = tmp->next; free(tmpl); diff --git a/formats/format_mp3.c b/formats/format_mp3.c index e1ee086519f3a8bff4886fbe175988ab3f1ec9bc..5c730f098cd74fc11d80ed23cbc41939e3420eda 100755 --- a/formats/format_mp3.c +++ b/formats/format_mp3.c @@ -269,7 +269,7 @@ int unload_module() tmp = glist; while(tmp) { if (tmp->owner) - ast_softhangup(tmp->owner); + ast_softhangup(tmp->owner, AST_SOFTHANGUP_APPUNLOAD); tmpl = tmp; tmp = tmp->next; free(tmpl); diff --git a/formats/format_pcm.c b/formats/format_pcm.c index befa05698a85ee2af619842a07da16b18e77c235..8576f69957e1cd8f1cc900cd481c76350f61f068 100755 --- a/formats/format_pcm.c +++ b/formats/format_pcm.c @@ -266,7 +266,7 @@ int unload_module() tmp = glist; while(tmp) { if (tmp->owner) - ast_softhangup(tmp->owner); + ast_softhangup(tmp->owner, AST_SOFTHANGUP_APPUNLOAD); tmpl = tmp; tmp = tmp->next; free(tmpl); diff --git a/formats/format_vox.c b/formats/format_vox.c index 67934219a308bcac559ae53bf2713e0cf71e7a0f..94957e7d721fe3193ed16ff59af89cdcf2789494 100755 --- a/formats/format_vox.c +++ b/formats/format_vox.c @@ -390,7 +390,7 @@ int unload_module() tmp = glist; while(tmp) { if (tmp->owner) - ast_softhangup(tmp->owner); + ast_softhangup(tmp->owner, AST_SOFTHANGUP_APPUNLOAD); tmpl = tmp; tmp = tmp->next; free(tmpl); diff --git a/formats/format_wav_gsm.c b/formats/format_wav_gsm.c index b1a8020d93b0ec603eb7995d79df1ce4f6d30e65..d7f718f6d735ceaa45621e48992bb834fb0c99e6 100755 --- a/formats/format_wav_gsm.c +++ b/formats/format_wav_gsm.c @@ -563,7 +563,7 @@ int unload_module() tmp = glist; while(tmp) { if (tmp->owner) - ast_softhangup(tmp->owner); + ast_softhangup(tmp->owner, AST_SOFTHANGUP_APPUNLOAD); tmpl = tmp; tmp = tmp->next; free(tmpl); diff --git a/include/asterisk/module.h b/include/asterisk/module.h index b270c111cd439c4392e23ac28eab26acfe0eb79f..93d059d95ba80dabeae66a665c108c8da8c41441 100755 --- a/include/asterisk/module.h +++ b/include/asterisk/module.h @@ -194,7 +194,7 @@ void ast_module_reload(void); pthread_mutex_lock(&localuser_lock); \ u = localusers; \ while(u) { \ - ast_softhangup(u->chan); \ + ast_softhangup(u->chan, AST_SOFTHANGUP_APPUNLOAD); \ ul = u; \ u = u->next; \ free(ul); \ diff --git a/loader.c b/loader.c index 03b6b018b08708ff4ec8720fab34e20dded51ce9..6835fd8d0ad09ceb61f71390f63f6e149db15b58 100755 --- a/loader.c +++ b/loader.c @@ -22,6 +22,7 @@ #include <asterisk/logger.h> #include <asterisk/channel.h> #include <asterisk/term.h> +#include <asterisk/manager.h> #include <dlfcn.h> #include <asterisk/md5.h> #define __USE_GNU @@ -137,8 +138,8 @@ void ast_module_reload(void) { struct module *m; - /* We'll do the logger the favor of calling its reload here first */ - + /* We'll do the logger and manager the favor of calling its reload here first */ + reload_manager(); ast_pthread_mutex_lock(&modlock); m = module_list; diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c index c696bd55a5b9fdde7e84b878762182be9415705e..2630ba7c2205b61b6ed73dd30885a92aaf6da443 100755 --- a/res/res_musiconhold.c +++ b/res/res_musiconhold.c @@ -100,8 +100,9 @@ static pthread_mutex_t moh_lock = AST_MUTEX_INITIALIZER; static void child_handler(int sig) { int status; - if (wait4(-1,&status, WNOHANG, NULL)<1) - ast_log(LOG_NOTICE, "Huh? Child handler, but nobody there?\n"); + if (wait4(-1,&status, WNOHANG, NULL)<1) + if (option_debug) + ast_log(LOG_DEBUG, "Huh? Child handler, but nobody there?\n"); } static int spawn_mp3(struct mohclass *class) @@ -126,7 +127,9 @@ static int spawn_mp3(struct mohclass *class) argv[3] = "--mono"; argv[4] = "-r"; argv[5] = "8000"; - argc = 6; + argv[6] = "-b"; + argv[7] = "2048"; + argc = 8; if (class->quiet) { argv[argc++] = "-f"; argv[argc++] = "8192";