diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index c5afb32514..0e00375599 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -2020,6 +2020,10 @@ static void free_user(struct ast_vm_user *vmu) return; } + if (!ast_strlen_zero(vmu->mailbox)) { + ast_delete_mwi_state_full(vmu->mailbox, vmu->context, NULL); + } + ast_free(vmu->email); vmu->email = NULL; ast_free(vmu->emailbody); diff --git a/main/app.c b/main/app.c index 21353354cc..953b77df08 100644 --- a/main/app.c +++ b/main/app.c @@ -3344,6 +3344,9 @@ int ast_delete_mwi_state_full(const char *mailbox, const char *context, struct a if (clear_msg) { stasis_publish(mailbox_specific_topic, clear_msg); } + + stasis_topic_pool_delete_topic(mwi_topic_pool, stasis_topic_name(mailbox_specific_topic)); + ao2_cleanup(clear_msg); return 0; }