Does ami action MWIUpdate and VoicemailRefresh even work?

i tried to use both and there seems to be no change in anywhere whatsoever. please can anyone help?

More details would be helpful. For instance:

What’s the version of Asterisk?
Post an example of how you used the action(s)
Post your voicemail.conf settings
What result were you expecting?
Is a NOTIFY not sent at all, or is a NOTIFY sent with the wrong information, or something else?

i am using asterisk 16.5.0

here is my voicemail.conf

[general]

#include "vm_timezone_list.conf"

format=wav49

serveremail=no-reply@example.com

attach=yes

attachfmt=wav49

maxmsg=50

maxsecs=120

minsecs=2

maxgreet=120

silencethreshold=30

maxlogins=3

pbxskip=yes

usedirectory=yes

sendvoicemail=yes

searchcontexts=yes

review=yes

operator=no

tz=asia_dhaka

fromstring=Example

emailsubject=New Message from ${VM_CIDNAME} - ${VM_CIDNUM} for ${VM_MAILBOX}

emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CIDNAME} - ${VM_CIDNUM}, on ${VM_DATE},\n so you might want to check it when you get a chance. Thanks!\n\n\t\t\t\t\n

emaildateformat=%A, %d %B %Y at %H:%M:%S

; Voicemail can be stored in a database using the ODBC driver.

; The value of odbcstorage is the database connection configured

; in res_odbc.conf.

odbcstorage=asterisk

; The default table for ODBC voicemail storage is voicemessages.

odbctable=voicemessages

i use asterisk-java library to send AMI actions. Where i set the mailbox and context in the voicemailrefreshaction. e.g i have messages with msgnum 0, 1, 2, 3, 4 and i deleted msgnum 2 and executed voicemail refresh.

i was expecting the msgnum will change and get back to 0, 1, 2, 3. instead it is 0, 1, 3, 4. so the next incoming message has msgnum 5. which results to an ever increasing msgnum.

I don’t believe Asterisk has ever re-numbered messages in a mailbox after deletion.

What set your expectations like that?

If i delete a voicemail from the “voicemailmain” application it changes the msgnum to 0,1,2,3.
also if only enter the application “voicemailmain” it changes the msgnum to 0,1,2,3.
i think this set my expectations like that.

problem is i am trying to create a mailbox where it will be deleted from browser and nobody is supposed to enter application “voicemailmain”. in my case it is an ever increasing number. which means it requires manual intervention.

there is no ami/ari action available where a voicemail message can be deleted/markedread/unread.

dont you agree that there should be a way to create such a mailbox where no manual phone call is required?

there is another way where my application have to change the msgnum to 0,1,2,3. but that is potentially dangerous because there is no locking mechanism to stop asterisk from changing voicemail box contents.

is there any way i can solve the issue in a good organized way?

Considering your requirements and specifically the 100% browser interface approach, I think the MiniVM application might be better than the VoiceMail application, as it eschews the ordinal message concept and is generally more deconstructed into basic building blocks that you can glue back together.

For example, there should be no issue deleting an out-of-order message in MiniVM even while another message is being actively received, due to the random nature of temporary file name creation; and there is a handy MiniVMDelete application.

Unfortunately, there is very little AMI/ARI access included with MiniVM but you could spool calls via AMI into small contexts that call sub-applications such as MiniVMDelete.