Add a voicemail deletion queue (#7221)

* Add a deleted messages option to voicemail.
Messages are only deleted after a certain amount of time instead of immediately.
The queue can be turned off or on with the default setting "use_deletion_queue" in the "voicemail" category.
Changed deleted phrase and added a deleted messages count phrase
Added a program to delete messages that are due for deletion. Also small changes to phrases.

* Added a remove_deleted_messages function that runs on voicemail main menu log in. With this method, the deletion queue is handled per mailbox vs system-wide as in the cron-triggered script. It also allows us to adjust the retention hours on a per-domain basis.
This commit is contained in:
simplecoder732
2025-01-28 16:57:50 -07:00
committed by GitHub
parent b2349060b5
commit 77f9161408
10 changed files with 356 additions and 10 deletions
@@ -104,6 +104,25 @@
</input>
</macro>
<macro name="voicemail_deleted_message_count">
<input pattern="^(1):(.*)$" break_on_match="true">
<match>
<action function="play-file" data="voicemail/vm-you_have.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-$2.wav"/>
<action function="play-file" data="voicemail/vm-message.wav"/>
</match>
</input>
<input pattern="^(\d+):(.*)$">
<match>
<action function="play-file" data="voicemail/vm-you_have.wav"/>
<action function="say" data="$1" method="pronounced" type="items"/>
<action function="play-file" data="voicemail/vm-$2.wav"/>
<action function="play-file" data="voicemail/vm-messages.wav"/>
</match>
</input>
</macro>
<macro name="voicemail_menu">
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
<match>
@@ -65,6 +65,31 @@
<action function="say" data="$7" method="pronounced" type="name_spelled"/>
</match>
</input>
<input pattern="^deleted:([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
<match>
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
<action function="play-file" data="voicemail/vm-press.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="play-file" data="voicemail/vm-undelete_message.wav"/>
<action function="play-file" data="voicemail/vm-press.wav"/>
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
<action function="play-file" data="voicemail/vm-message_envelope.wav"/>
<action function="play-file" data="voicemail/vm-press.wav"/>
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
<action function="play-file" data="voicemail/vm-return_call.wav"/>
<action function="play-file" data="voicemail/vm-press.wav"/>
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
<action function="play-file" data="voicemail/vm-press.wav"/>
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
<action function="play-file" data="voicemail/vm-press.wav"/>
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
<action function="play-file" data="voicemail/vm-press.wav"/>
<action function="say" data="$7" method="pronounced" type="name_spelled"/>
</match>
</input>
</macro>
<!-- copied from vm/voicemail_ivr.xml, as not functioning there -->
@@ -96,6 +121,17 @@
<action function="execute" data="sleep(100)"/>
</match>
</input>
<input pattern="^deleted:([0-9#*])$">
<match>
<!-- Deleted messages -->
<action function="say" data="4" method="pronounced" type="name_spelled"/>
<action function="play-file" data="voicemail/vm-deleted.wav"/>
<action function="play-file" data="voicemail/vm-messages_alt.wav"/>
<action function="play-file" data="voicemail/vm-press.wav"/>
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
<action function="execute" data="sleep(100)"/>
</match>
</input>
<input pattern="^advanced:([0-9#*])$">
<match>
<!-- For advanced options -->