mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 20:20:07 +00:00
Modules: Fix issues with CLI completion.
* Stop using ast_module_helper to check if a module is loaded, use ast_module_check instead (app_confbridge and app_meetme). * Stop ast_module_helper from listing reload classes when needsreload was not requested. ASTERISK-27378 Change-Id: Iaed8c1e4fcbeb242921dbac7929a0fe75ff4b239
This commit is contained in:
@@ -2377,22 +2377,13 @@ static int confbridge_exec(struct ast_channel *chan, const char *data)
|
||||
user.tech_args.drop_silence = 1;
|
||||
}
|
||||
|
||||
if (ast_test_flag(&user.u_profile, USER_OPT_JITTERBUFFER)) {
|
||||
char *func_jb;
|
||||
if ((func_jb = ast_module_helper("", "func_jitterbuffer", 0, 0, 0, 0))) {
|
||||
ast_free(func_jb);
|
||||
if (ast_test_flag(&user.u_profile, USER_OPT_JITTERBUFFER) && ast_module_check("func_jitterbuffer.so")) {
|
||||
ast_func_write(chan, "JITTERBUFFER(adaptive)", "default");
|
||||
}
|
||||
}
|
||||
|
||||
if (ast_test_flag(&user.u_profile, USER_OPT_DENOISE)) {
|
||||
char *mod_speex;
|
||||
/* Reduce background noise from each participant */
|
||||
if ((mod_speex = ast_module_helper("", "codec_speex", 0, 0, 0, 0))) {
|
||||
ast_free(mod_speex);
|
||||
if (ast_test_flag(&user.u_profile, USER_OPT_DENOISE) && ast_module_check("codec_speex.so")) {
|
||||
ast_func_write(chan, "DENOISE(rx)", "on");
|
||||
}
|
||||
}
|
||||
|
||||
/* if this user has a intro, play it before entering */
|
||||
if (!ast_strlen_zero(user.name_rec_location)) {
|
||||
|
@@ -3201,7 +3201,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, struc
|
||||
struct timeval now;
|
||||
struct ast_dsp *dsp = NULL;
|
||||
struct ast_app *agi_app;
|
||||
char *agifile, *mod_speex;
|
||||
char *agifile;
|
||||
const char *agifiledefault = "conf-background.agi", *tmpvar;
|
||||
char meetmesecs[30] = "";
|
||||
char exitcontext[AST_MAX_CONTEXT] = "";
|
||||
@@ -3591,9 +3591,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, struc
|
||||
}
|
||||
|
||||
/* Reduce background noise from each participant */
|
||||
if (!ast_test_flag64(confflags, CONFFLAG_DONT_DENOISE) &&
|
||||
(mod_speex = ast_module_helper("", "func_speex", 0, 0, 0, 0))) {
|
||||
ast_free(mod_speex);
|
||||
if (!ast_test_flag64(confflags, CONFFLAG_DONT_DENOISE) && ast_module_check("func_speex.so")) {
|
||||
ast_func_write(chan, "DENOISE(rx)", "on");
|
||||
}
|
||||
|
||||
|
@@ -716,8 +716,9 @@ char *ast_module_helper(const char *line, const char *word, int pos, int state,
|
||||
int i, which=0, l = strlen(word);
|
||||
char *ret = NULL;
|
||||
|
||||
if (pos != rpos)
|
||||
if (pos != rpos) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
AST_DLLIST_LOCK(&module_list);
|
||||
AST_DLLIST_TRAVERSE(&module_list, cur, entry) {
|
||||
@@ -730,12 +731,13 @@ char *ast_module_helper(const char *line, const char *word, int pos, int state,
|
||||
}
|
||||
AST_DLLIST_UNLOCK(&module_list);
|
||||
|
||||
if (!ret) {
|
||||
if (!ret && needsreload) {
|
||||
for (i=0; !ret && reload_classes[i].name; i++) {
|
||||
if (!strncasecmp(word, reload_classes[i].name, l) && ++which > state)
|
||||
if (!strncasecmp(word, reload_classes[i].name, l) && ++which > state) {
|
||||
ret = ast_strdup(reload_classes[i].name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user