Настройка голосовой почты (Voicemail) в Asterisk с отправкой аудио на Email
- Голосовые сообщения сохраняются локально, но письма с вложенным аудио не доходят до почтовых ящиков абонентов.
- Почтовые серверы блокируют сообщения с ошибками
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 = yesecho "[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 postfix2. Конфигурация модуля /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=no3. Обработка голосовой почты в диалплане 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 Частые вопросы (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}).