Don't create the context for users in users.conf until we know at least one user exists.

(closes issue #10971)
Reported by: dimas
Patches: 
      pbxconfig.patch uploaded by dimas (license 88)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@85540 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Russell Bryant 18 years ago
parent 81a5da0ada
commit 91bfacc3ed

@ -2366,14 +2366,11 @@ static void pbx_load_users(void)
int len; int len;
int hasvoicemail; int hasvoicemail;
int start, finish, x; int start, finish, x;
struct ast_context *con; struct ast_context *con = NULL;
cfg = ast_config_load("users.conf"); cfg = ast_config_load("users.conf");
if (!cfg) if (!cfg)
return; return;
con = ast_context_find_or_create(&local_contexts, userscontext, registrar);
if (!con)
return;
for (cat = ast_category_browse(cfg, NULL); cat ; cat = ast_category_browse(cfg, cat)) { for (cat = ast_category_browse(cfg, NULL); cat ; cat = ast_category_browse(cfg, cat)) {
if (!strcasecmp(cat, "general")) if (!strcasecmp(cat, "general"))
@ -2425,6 +2422,16 @@ static void pbx_load_users(void)
} }
} }
if (!ast_strlen_zero(iface)) { if (!ast_strlen_zero(iface)) {
/* Only create a context here when it is really needed. Otherwise default empty context
created by pbx_config may conflict with the one explicitly created by pbx_ael */
if (!con)
con = ast_context_find_or_create(&local_contexts, userscontext, registrar);
if (!con) {
ast_log(LOG_ERROR, "Can't find/create user context '%s'\n", userscontext);
return;
}
/* Add hint */ /* Add hint */
ast_add_extension2(con, 0, cat, -1, NULL, NULL, iface, NULL, NULL, registrar); ast_add_extension2(con, 0, cat, -1, NULL, NULL, iface, NULL, NULL, registrar);
/* If voicemail, use "stdexten" else use plain old dial */ /* If voicemail, use "stdexten" else use plain old dial */

Loading…
Cancel
Save