Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
APP_VOICEMAIL_DISK_ERROR IP-Телефония и СКУД

Asterisk: app_voicemail.c Mailbox directory could not be created

Обновлено: 24.08.2026  ·  Официальная база знаний
  • Ошибка: ERROR: app_voicemail.c: Mailbox directory could not be created (Disk write error).
  • Абоненты не могут оставить голосовое сообщение — вызов сбрасывается после сигнала записи.
  • В логах фиксируются сбои создания директорий /var/spool/asterisk/voicemail/default/<mailbox>.
  • Голосовые сообщения не сохраняются и не отправляются на e-mail.

1. Проверка прав доступа к каталогу голосовой почты

Убедитесь, что каталог принадлежит пользователю, от имени которого запущен сервис asterisk:

ls -la /var/spool/asterisk/voicemail
chown -R asterisk:asterisk /var/spool/asterisk/voicemail
chmod -R 770 /var/spool/asterisk/voicemail

2. Проверка свободного места на накопителе и исчерпания Inodes

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

# Проверка дискового пространства
df -h /var/spool/asterisk

# Проверка таблицы Inodes (переполнение миллионами мелких wav-файлов)
df -i /var/spool/asterisk

3. Настройка контекстов безопасности SELinux (для RHEL/CentOS/Rocky)

Если включен SELinux, восстановите корректный контекст для каталогов спула Asterisk:

restorecon -Rv /var/spool/asterisk
semanage fcontext -a -t asterisk_spool_t "/var/spool/asterisk(/.*)?"
restorecon -Rv /var/spool/asterisk

4. Проверка структуры почтовых ящиков в /etc/asterisk/voicemail.conf

[general]
format = wav49|wav
maxmsg = 100
maxmessage = 300
minmessage = 3
attach = yes

[default]
101 => 1234,User 101,user101@domain.local
102 => 5678,User 102,user102@domain.local

5. Перезагрузка приложения Voicemail

asterisk -rx "voicemail reload"
Практический опыт инженера: Если голосовая почта смонтирована по NFS или SMB, убедитесь в наличии опции монтирования noac/lookupcache=none и отсутствии сбоев locks (lockd), иначе ядро Asterisk не сможет атомарно создавать подпапки ящиков.

Частые вопросы (FAQ)

Почему возникает ошибка Mailbox directory could not be created при 50 ГБ свободного диска?

Наиболее вероятная причина — исчерпание Inodes (индексных дескрипторов) файловой системы из-за огромного количества мелких файлов записей разговоров или логов. Проверьте вывод команды df -i.

Под каким пользователем должен работать каталог /var/spool/asterisk?

Каталог должен принадлежать системному пользователю asterisk:asterisk (или пользователю, указанному в параметре runuser в /etc/asterisk/asterisk.conf).

Как автоматически удалять старые голосовые сообщения при заполнении ящика?

Используйте параметр maxmsg в voicemail.conf для жесткого лимитирования максимального числа сообщений в ящике.

Как отправлять голосовые сообщения на Email и удалять их с сервера?

В секции [general] файла voicemail.conf настройте attach=yes и delete=yes. Сообщение уйдет вложением по e-mail и сразу сотрется с диска.