From 7ccd146656ff1fe827f7f7cc79e37095aa6c0ee4 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Sun, 16 Mar 2008 17:53:46 +0000 Subject: [PATCH] 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: https://origsvn.digium.com/svn/asterisk/trunk@108927 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_voicemail.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index ce5c697de4..cd1c9e8c61 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);