aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-03-16 17:53:46 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-03-16 17:53:46 +0000
commitc320428733d180ca86c18832be6610290583ad31 (patch)
treef32a89403e60c1b266e64f2b61fc098107626c5c /apps
parent7eb606c75201f00c7715c2fb361b64dc70e5b78e (diff)
Fix polling for mailbox changes in mailboxes that are not in the default vm context.
(closes issue #12223) Reported by: DEA Patches: vm-polled-imap.txt uploaded by DEA (license 3) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@108927 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r--apps/app_voicemail.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index ce5c697de..cd1c9e8c6 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -8017,6 +8017,7 @@ static void mwi_unsub_event_cb(const struct ast_event *event, void *userdata)
static void mwi_sub_event_cb(const struct ast_event *event, void *userdata)
{
const char *mailbox;
+ const char *context;
uint32_t uniqueid;
unsigned int len;
struct mwi_sub *mwi_sub;
@@ -8028,12 +8029,16 @@ static void mwi_sub_event_cb(const struct ast_event *event, void *userdata)
return;
mailbox = ast_event_get_ie_str(event, AST_EVENT_IE_MAILBOX);
+ context = ast_event_get_ie_str(event, AST_EVENT_IE_CONTEXT);
uniqueid = ast_event_get_ie_uint(event, AST_EVENT_IE_UNIQUEID);
len = sizeof(*mwi_sub);
if (!ast_strlen_zero(mailbox))
len += strlen(mailbox);
+ if (!ast_strlen_zero(context))
+ len += strlen(context) + 1; /* Allow for seperator */
+
if (!(mwi_sub = ast_calloc(1, len)))
return;
@@ -8041,6 +8046,11 @@ static void mwi_sub_event_cb(const struct ast_event *event, void *userdata)
if (!ast_strlen_zero(mailbox))
strcpy(mwi_sub->mailbox, mailbox);
+ if (!ast_strlen_zero(context)) {
+ strcat(mwi_sub->mailbox, "@");
+ strcat(mwi_sub->mailbox, context);
+ }
+
AST_RWLIST_WRLOCK(&mwi_subs);
AST_RWLIST_INSERT_TAIL(&mwi_subs, mwi_sub, entry);
AST_RWLIST_UNLOCK(&mwi_subs);