--- asterisk/apps/app_voicemail.c 2004-12-11 21:52:24.000000000 -0700 +++ asterisk-20041213/apps/app_voicemail.c 2004-12-16 17:41:50.000000000 -0700 @@ -2845,6 +2845,7 @@ static int notify_new_message(struct ast_channel *chan, struct ast_vm_user *vmu, int msgnum, long duration, char *fmt, char *cidnum, char *cidname) { char todir[256], fn[256], ext_context[256], *stringp; + int newmsgs = 0, oldmsgs = 0; make_dir(todir, sizeof(todir), vmu->context, vmu->mailbox, "INBOX"); make_file(fn, sizeof(fn), todir, msgnum); @@ -2881,7 +2882,10 @@ } /* Leave voicemail for someone */ - manager_event(EVENT_FLAG_CALL, "MessageWaiting", "Mailbox: %s@%s\r\nWaiting: %d\r\n", vmu->mailbox, vmu->context, ast_app_has_voicemail(ext_context, NULL)); + if (ast_app_has_voicemail(ext_context, NULL)) { + ast_app_messagecount(ext_context, &newmsgs, &oldmsgs); + } + manager_event(EVENT_FLAG_CALL, "MessageWaiting", "Mailbox: %s@%s\r\nWaiting: %d\r\nNew: %d\r\nOld: %d\r\n", vmu->mailbox, vmu->context, ast_app_has_voicemail(ext_context, NULL), newmsgs, oldmsgs); run_externnotify(chan->context, ext_context); return 0; }