Summary:ASTERISK-02042: externnotify script is always called even with no voicemail messages
Reporter:frank (frank)Labels:
Date Opened:2004-07-17 10:35:41Date Closed:2004-09-25 02:15:26
Versions:Frequency of
Description:The voicemail box has 0 messages in it.  The Subscriber calls in to check messages.  They are told no messages.  The subscriber hangs up.  Then externnotify is called with the $3 argument = 0.

First, no new messages was left.  
Second, there were no messages at all in the mailbox.

I confirmed that there were no files at all in the INBOX directory.

This was reproduced with CVS from 7/12/04
Comments:By: frank (frank) 2004-07-17 10:44:20

This also happens if the there are messages in the INBOX (just no new messages) and the subscriber checks their mailbox but makes not changes. externnotify is called.

it appears that externnotify is being called whenever the mailbox is being accessed by app_voicemail regardless of whether there are new or existing messages in the INBOX.

By: Mark Spencer (markster) 2004-07-17 12:11:01

I'm not understanding yet how this is a bug...

By: frank (frank) 2004-07-17 13:14:54

my understanding was that the externnotify command was only to be called when a new voicemail is left in the mail box.  

if this is correct, then this is not the behavior i am observing.

the externnotify command is being called even if there are no messages being left.  it is even being called if there are no messages at all in the mailbox.  it is even called after the subscriber calls in to pickup and listen to their voicemail messages.

it appears that the externnotify command is being called anytime the mailbox is accessed.

do i not understand under what conditions the externnotify command is to be called?

By: Mark Spencer (markster) 2004-07-17 15:59:37

No, that's not strictly true.  It will be important to know when there are no more messages waiting if, for example, externnotify is used to drive a message waiting indicator.

By: Mark Spencer (markster) 2004-07-17 16:00:09

It's even *more or less* documented in the config file.

By: frank (frank) 2004-07-17 16:34:32

ok.  from the config file is says
called when a voicemail is left, delivered, or your voicemailbox
; changes, uncomment this:

but it is called even if the voicemailbox is *unchanged*.

example: user currently has no messages.  they they call in to check on messages.  they find out they have none.  they do nothing.  they hang up.  externnotify is called.  but there has been no change to the voicemail box... unless checking voicemail is somehow changing the voicemail box that is not obvious.

BTW, how would you know if the number of messages went up or down?

edited on: 07-17-04 16:19

By: Mark Spencer (markster) 2004-07-17 16:50:37

Okay fixed the documentation.  Thanks!

By: frank (frank) 2004-07-26 06:40:58

I see the documentation now reflects what the code is actually doing.

But is that what was really intended for this config option?  

Since the externnotify command is called with no options (like boxchecked, msgadded, msgdeleted, or numberNewMsgs) that the externnotify is reduced in its usefulness (almost to uselessness?).

Docs and behavior are now aligned. But was this just the quick way?

By: Mark Spencer (markster) 2004-07-26 16:29:40

This really is the most flexible way of its operation, as you can construct any other state from this execution.