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

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

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

Настройка голосовой почты (Voicemail) в Asterisk с отправкой аудио на Email

Обновлено: 24.08.2026  ·  Официальная база знаний
  • Голосовые сообщения сохраняются локально, но письма с вложенным аудио не доходят до почтовых ящиков абонентов.
  • Почтовые серверы блокируют сообщения с ошибками 550 SPF / DMARC Check Failed.
  • Записи аудио в письме приходят в неподдерживаемом телефонном формате .gsm, который не открывается на смартфонах.

1. Настройка почтового релея Postfix на сервере

Установите и настройте Postfix для пересылки через корпоративный SMTP-сервер:

apt-get install -y postfix mailutils libsasl2-modules || dnf install -y postfix mailx cyrus-sasl-plain

В файле /etc/postfix/main.cf укажите параметры внешнего релея:

relayhost = [smtp.mail.ru]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sender_dependent_authentication = yes
echo "[smtp.mail.ru]:587 pbx-alert@itstm.ru:MailPassword2025" > /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
systemctl restart postfix

2. Конфигурация модуля /etc/asterisk/voicemail.conf

[general]
format = wav49|wav
serveremail = pbx-noreply@itstm.ru
fromstring = IP-PBX Asterisk Voicemail
emaildateformat = %d/%m/%Y в %H:%M:%S
mailcmd = /usr/sbin/sendmail -t
attach = yes
maxmessage = 300
minmessage = 3
maxsilence = 5
silencethreshold = 128
skipms = 3000
maxlogins = 3

[default]
; Формат: ящик => пароль,ФИО,email,pager_email,опции
101 => 1234,Иван Иванов,i.ivanov@itstm.ru,,attach=yes|delete=yes
102 => 5678,Служба поддержки,support@itstm.ru,,attach=yes|delete=no

3. Обработка голосовой почты в диалплане extensions.conf

[from-internal]
exten => _1XX,1,NoOp(Calling user ${EXTEN})
 same => n,Dial(PJSIP/${EXTEN},20)
 same => n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
 same => n(unavail),VoiceMail(${EXTEN}@default,u)
 same => n,Hangup()
 same => n(busy),VoiceMail(${EXTEN}@default,b)
 same => n,Hangup()

; Сервисный номер для проверки голосовой почты сотрудником
exten => *97,1,NoOp(Accessing Voicemail Box)
 same => n,VoiceMailMain(${CALLERID(num)}@default)
 same => n,Hangup()

4. Проверка и аудит отправки писем

# Тестирование почтового тракта из терминала
echo "Test Voicemail Body" | mail -s "PBX Test" i.ivanov@itstm.ru

# Мониторинг журнала доставки писем
tail -f /var/log/mail.log || journalctl -u postfix -f
Практический опыт инженера: Если почта не доходит до внешних корпоративных серверов (Exchange, Google Workspace), проверьте наличие валидных записей SPF, DKIM и PTR для внешнего IP-адреса, с которого выходит трафик Asterisk.

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

В чем разница между режимами VoiceMail(ext,u) и VoiceMail(ext,b)?

Опция 'u' (unavailable) воспроизводит приветствие 'Абонент временно недоступен' (если не подняли трубку по таймауту). Опция 'b' (busy) воспроизводит приветствие 'Абонент занят' (при отклонении вызова или занятой линии).

Что делает параметр delete=yes в voicemail.conf?

Он автоматически удаляет аудиофайл голосового сообщения из локального хранилища PBX сразу после его успешной отправки в виде вложения на Email абонента.

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

Используйте format = wav49|wav. Формат PCM 8kHz WAV поддерживается штатными медиаплеерами всех мобильных ОС (iOS, Android, Windows).

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

В секцию [general] файла voicemail.conf добавьте директивы emailsubject и emailbody с поддержкой системных переменных (например, ${VM_CALLERID}, ${VM_DUR}, ${VM_DATE}).