LinuxСофт и ОС

Как удалить голосовую почту в Asterisk: backup, очистка и MWI

Ниже — практическая очистка mailbox Asterisk без удаления всего voicemail spool. В примере используется mailbox 6001@default.

1. Проверяем voicemail и mailbox

asterisk -rx "module show like app_voicemail"
asterisk -rx "voicemail show users"
asterisk -rx "voicemail show user 6001@default"
grep -Ev "^($|;|#)" /etc/asterisk/voicemail.conf

2. Находим каталог сообщений

MAILBOX=/var/spool/asterisk/voicemail/default/6001
test -d "$MAILBOX" && echo "Mailbox found"
find "$MAILBOX" -maxdepth 2 -type f -name "msg*" -ls

3. Считаем сообщения

find "$MAILBOX/INBOX" -maxdepth 1 -type f -name "msg*.txt" | wc -l
find "$MAILBOX/Old" -maxdepth 1 -type f -name "msg*.txt" | wc -l
find "$MAILBOX/Urgent" -maxdepth 1 -type f -name "msg*.txt" 2>/dev/null | wc -l

4. Создаём backup mailbox

mkdir -p /root/asterisk-voicemail-backup
tar -C /var/spool/asterisk/voicemail/default -czf /root/asterisk-voicemail-backup/6001-before-cleanup.tar.gz 6001
tar -tzf /root/asterisk-voicemail-backup/6001-before-cleanup.tar.gz | head

5. Просматриваем одно сообщение

cat "$MAILBOX/Old/msg0001.txt"
ls -lh "$MAILBOX/Old/msg0001".*

6. Удаляем одно сообщение

rm -i "$MAILBOX/Old/msg0001".*

Удаляйте все файлы одного сообщения с одинаковым номером: TXT и аудиофайлы.

7. Dry-run старых сообщений

find "$MAILBOX/Old" -maxdepth 1 -type f -name "msg*" -mtime +30 -print

После проверки можно удалить найденные файлы:

find "$MAILBOX/Old" -maxdepth 1 -type f -name "msg*" -mtime +30 -delete

8. Проверяем владельца и права

namei -l "$MAILBOX"
find "$MAILBOX" -maxdepth 2 -printf "%u:%g %m %p\n" | head -50
chown -R asterisk:asterisk "$MAILBOX"

9. Проверяем MWI

asterisk -rx "voicemail show user 6001@default"
asterisk -rx "pjsip show endpoint 6001"
asterisk -rx "pjsip show subscriptions inbound"

Если индикатор нового сообщения продолжает гореть, убедитесь, что в INBOX нет непрочитанных сообщений и endpoint связан с mailbox 6001@default. Затем перерегистрируйте телефон.

10. Проверяем dialplan

grep -R "VoiceMail" /etc/asterisk
asterisk -rx "dialplan show" | grep -i voicemail

11. Rollback

rm -rf /var/spool/asterisk/voicemail/default/6001
tar -C /var/spool/asterisk/voicemail/default -xzf /root/asterisk-voicemail-backup/6001-before-cleanup.tar.gz
chown -R asterisk:asterisk /var/spool/asterisk/voicemail/default/6001

Критерий успеха: удалены только выбранные сообщения, backup читается, Asterisk видит mailbox, права принадлежат пользователю Asterisk, а MWI соответствует содержимому INBOX.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *