aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_voicemail.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-05-24 19:24:20 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-05-24 19:24:20 +0000
commit476e3c218e6917fbd504f4f28f3cd0d19697f230 (patch)
treef11c9906b00a97530e01db02cc149976ae50a847 /apps/app_voicemail.c
parent553adb39a96f136db23affa0ed50faf5ff031601 (diff)
Handle different contexts (bug #1702)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3060 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_voicemail.c')
-rwxr-xr-xapps/app_voicemail.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 84d8421b5..37972cb49 100755
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -3423,31 +3423,33 @@ static int append_mailbox(char *context, char *mbox, char *data)
static int vm_box_exists(struct ast_channel *chan, void *data) {
struct localuser *u;
- struct ast_vm_user *vmu;
struct ast_vm_user svm;
char *context, *box;
+ char tmp[256];
if (!data || !strlen(data)) {
ast_log(LOG_ERROR, "MailboxExists requires an argument: (vmbox[@context])\n");
return -1;
+ } else {
+ strncpy(tmp, data, sizeof(tmp) - 1);
}
LOCAL_USER_ADD(u);
- context = ast_strdupa(data);
- if (index(context, '@')) {
- box = strsep(&context, "@");
- } else {
- box = context;
- context = "default";
- }
+ box = tmp;
while(*box) {
- if ((*box != 'u') && (*box != 's') && (*box != 'b'))
+ if ((*box == 's') || (*box == 'b') || (*box == 'u')) {
+ box++;
+ } else
break;
- box++;
}
- vmu = find_user(&svm, context, box);
- if (vmu) {
+ context = strchr(tmp, '@');
+ if (context) {
+ *context = '\0';
+ context++;
+ }
+
+ if ((!find_user(&svm, context, box))) {
if (ast_exists_extension(chan, chan->context, chan->exten, chan->priority + 101, chan->callerid)) {
chan->priority += 100;
} else
@@ -3457,7 +3459,6 @@ static int vm_box_exists(struct ast_channel *chan, void *data) {
return 0;
}
-
#ifndef USEMYSQLVM
/* XXX TL Bug 690 */
static char show_voicemail_users_help[] =