mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
Allow alternative extensions to be specified for a user.
(closes issue #12830) Reported by: jcollie Patches: astertisk-trunk-121496-alternate-extensions.patch uploaded by jcollie (license 412) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@124049 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
2
CHANGES
2
CHANGES
@@ -785,3 +785,5 @@ Miscellaneous
|
|||||||
* If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
|
* If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
|
||||||
the "core show locks" CLI command will give lock information output as well
|
the "core show locks" CLI command will give lock information output as well
|
||||||
as a backtrace of the stack which led to the lock calls.
|
as a backtrace of the stack which led to the lock calls.
|
||||||
|
* users.conf now sports an optional alternativeexts property, which permits
|
||||||
|
allocation of additional extensions which will reach the specified user.
|
||||||
|
@@ -77,3 +77,9 @@ pickupgroup = 1
|
|||||||
;hasmanager = no
|
;hasmanager = no
|
||||||
;callwaiting = no
|
;callwaiting = no
|
||||||
;context = international
|
;context = international
|
||||||
|
;
|
||||||
|
; Some administrators choose alphanumeric extensions, but still want their
|
||||||
|
; users to be reachable by traditional numeric extensions, specified by the
|
||||||
|
; alternateexts entry.
|
||||||
|
;
|
||||||
|
;alternateexts = 7057,3249
|
||||||
|
@@ -1549,10 +1549,11 @@ static void pbx_load_users(void)
|
|||||||
struct ast_config *cfg;
|
struct ast_config *cfg;
|
||||||
char *cat, *chan;
|
char *cat, *chan;
|
||||||
const char *dahdichan;
|
const char *dahdichan;
|
||||||
const char *hasexten;
|
const char *hasexten, *altexts;
|
||||||
char tmp[256];
|
char tmp[256];
|
||||||
char iface[256];
|
char iface[256];
|
||||||
char dahdicopy[256];
|
char dahdicopy[256];
|
||||||
|
char *ext, altcopy[256];
|
||||||
char *c;
|
char *c;
|
||||||
int len;
|
int len;
|
||||||
int hasvoicemail;
|
int hasvoicemail;
|
||||||
@@ -1643,6 +1644,17 @@ static void pbx_load_users(void)
|
|||||||
} else {
|
} else {
|
||||||
ast_add_extension2(con, 0, cat, 1, NULL, NULL, "Dial", strdup("${HINT}"), ast_free_ptr, registrar);
|
ast_add_extension2(con, 0, cat, 1, NULL, NULL, "Dial", strdup("${HINT}"), ast_free_ptr, registrar);
|
||||||
}
|
}
|
||||||
|
altexts = ast_variable_retrieve(cfg, cat, "alternateexts");
|
||||||
|
if (!ast_strlen_zero(altexts)) {
|
||||||
|
snprintf(tmp, sizeof(tmp), "%s,1", cat);
|
||||||
|
ast_copy_string(altcopy, altexts, sizeof(altcopy));
|
||||||
|
c = altcopy;
|
||||||
|
ext = strsep(&c, ",");
|
||||||
|
while (ext) {
|
||||||
|
ast_add_extension2(con, 0, ext, 1, NULL, NULL, "Goto", strdup(tmp), ast_free, registrar);
|
||||||
|
ext = strsep(&c, ",");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ast_config_destroy(cfg);
|
ast_config_destroy(cfg);
|
||||||
|
Reference in New Issue
Block a user