res_musiconhold: Load all realtime entries, not just the first
ASTERISK-29099 Change-Id: I45636679c0fb5a5f59114c8741626631a604e8a6
This commit is contained in:
parent
cd793c7c81
commit
374d18cb97
|
@ -1609,19 +1609,22 @@ static struct ast_variable *load_realtime_musiconhold(const char *name)
|
|||
if (var) {
|
||||
const char *mode = ast_variable_find_in_list(var, "mode");
|
||||
if (ast_strings_equal(mode, "playlist")) {
|
||||
struct ast_variable *entries = ast_load_realtime("musiconhold_entry", "name", name, SENTINEL);
|
||||
struct ast_variable *cur = entries;
|
||||
struct ast_config *entries = ast_load_realtime_multientry("musiconhold_entry", "position >=", "0", "name", name, SENTINEL);
|
||||
char *category = NULL;
|
||||
size_t entry_count = 0;
|
||||
for (; cur; cur = cur->next) {
|
||||
if (!strcmp(cur->name, "entry")) {
|
||||
struct ast_variable *dup = ast_variable_new(cur->name, cur->value, "");
|
||||
|
||||
while ((category = ast_category_browse(entries, category))) {
|
||||
const char *entry = ast_variable_retrieve(entries, category, "entry");
|
||||
|
||||
if (entry) {
|
||||
struct ast_variable *dup = ast_variable_new("entry", entry, "");
|
||||
if (dup) {
|
||||
entry_count++;
|
||||
ast_variable_list_append(&var, dup);
|
||||
}
|
||||
}
|
||||
}
|
||||
ast_variables_destroy(entries);
|
||||
ast_config_destroy(entries);
|
||||
|
||||
if (entry_count == 0) {
|
||||
/* Behave as though this class doesn't exist */
|
||||
|
|
Loading…
Reference in New Issue