|
|
|
|
@ -963,12 +963,17 @@ static const struct ast_datastore_info confbridge_datastore = {
|
|
|
|
|
.type = "confbridge",
|
|
|
|
|
.destroy = func_confbridge_destroy_cb
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
int func_confbridge_helper(struct ast_channel *chan, const char *cmd, char *data, const char *value)
|
|
|
|
|
{
|
|
|
|
|
struct ast_datastore *datastore;
|
|
|
|
|
struct func_confbridge_data *b_data;
|
|
|
|
|
char *parse;
|
|
|
|
|
struct ast_variable tmpvar = { 0, };
|
|
|
|
|
struct ast_variable template = {
|
|
|
|
|
.name = "template",
|
|
|
|
|
.file = "CONFBRIDGE"
|
|
|
|
|
};
|
|
|
|
|
AST_DECLARE_APP_ARGS(args,
|
|
|
|
|
AST_APP_ARG(type);
|
|
|
|
|
AST_APP_ARG(option);
|
|
|
|
|
@ -1041,7 +1046,14 @@ int func_confbridge_helper(struct ast_channel *chan, const char *cmd, char *data
|
|
|
|
|
ast_datastore_free(datastore);
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
} else if (!aco_process_var(&bridge_type, "dialplan", &tmpvar, &b_data->b_profile)) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (b_data && !b_data->b_usable && strcasecmp(args.option, "template")) {
|
|
|
|
|
template.value = DEFAULT_BRIDGE_PROFILE;
|
|
|
|
|
aco_process_var(&bridge_type, "dialplan", &template, &b_data->b_profile);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!aco_process_var(&bridge_type, "dialplan", &tmpvar, &b_data->b_profile)) {
|
|
|
|
|
b_data->b_usable = 1;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
@ -1051,7 +1063,14 @@ int func_confbridge_helper(struct ast_channel *chan, const char *cmd, char *data
|
|
|
|
|
user_profile_destructor(&b_data->u_profile);
|
|
|
|
|
memset(&b_data->u_profile, 0, sizeof(b_data->u_profile));
|
|
|
|
|
return 0;
|
|
|
|
|
} else if (!aco_process_var(&user_type, "dialplan", &tmpvar, &b_data->u_profile)) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (b_data && !b_data->u_usable && strcasecmp(args.option, "template")) {
|
|
|
|
|
template.value = DEFAULT_USER_PROFILE;
|
|
|
|
|
aco_process_var(&user_type, "dialplan", &template, &b_data->u_profile);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!aco_process_var(&user_type, "dialplan", &tmpvar, &b_data->u_profile)) {
|
|
|
|
|
b_data->u_usable = 1;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
@ -1067,7 +1086,14 @@ int func_confbridge_helper(struct ast_channel *chan, const char *cmd, char *data
|
|
|
|
|
ast_datastore_free(datastore);
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
} else if (!aco_process_var(&menu_type, "dialplan", &tmpvar, b_data->menu)) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (b_data && !b_data->m_usable && strcasecmp(args.option, "template")) {
|
|
|
|
|
template.value = DEFAULT_MENU_PROFILE;
|
|
|
|
|
aco_process_var(&menu_type, "dialplan", &template, &b_data->menu);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!aco_process_var(&menu_type, "dialplan", &tmpvar, b_data->menu)) {
|
|
|
|
|
b_data->m_usable = 1;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|