"-Хотим получать письма с голосовой почтой , но чтобы не было вложений . Хотим , чтобы в теле письма была ссылка на сам файл" .
Ну, думаю , хоккей , делов то. А не тут то было.
Имеем изначально:
Код: Выделить всё
charset=UTF-8
emailsubject=Новое голосовое сообщение (${VM_MSGNUM}) для ${VM_MAILBOX}
emailbody=${VM_NAME},\n\nГолосовое сообщение для ${VM_MAILBOX}:\n\n\tОт:\t${VM_CALLERID}\n\tДлительность:\t${VM_DUR} seconds\n\tДата:\t${VM_DATE}\n\n .
Код: Выделить всё
ln -s /var/spool/asterisk/voicemail/default /var/www/html/voicemail
Код: Выделить всё
http://domain.ru/voicemail/${VM_MAILBOX}/INBOX/${FILENAME}
Файлы в директории голосовой почты храняться в формате "msg%04d.%s" , то есть msg0000.wav ,msg0001.wav и так далее. Возможности использовать номер сообщения через ${VM_MSGNUM} нет , так как нумерация файлов идет как n-1 и считается без ведущих нулей.
Открываем apps/app_voicemail.c и понимаем , что имени файла для этих целей не предусмотрено. Модуль знает какой файл он прикрепляет к письму , но возможности использовать это в письме не дает. Исправляем ситуацию .
Добавляем пару строк между строками "void prep_email_sub_vars" и "Retrieve info from VM attribute file" (я проверил , на всех версиях , аж до 14 версии функция и комментарии в ней остались такими же)
Код: Выделить всё
make_file(fromfile, sizeof(fromfile), "", msgnum - 1);
pbx_builtin_setvar_helper(ast, "VM_FILENAME", fromfile);
Код: Выделить всё
sed "/void prep_email_sub_vars/,/Retrieve info from VM attribute file/s/Retrieve.*/&\n\tmake_file(fromfile, sizeof(fromfile), \"\", msgnum - 1);\n\tpbx_builtin_setvar_helper(ast, \"VM_FILENAME\", fromfile);/" -i app_voicemail.c
Далее делаем
Код: Выделить всё
cd ../ ; make ;
asterisk -rx 'module unload app_voicemail.so';
cp apps/app_voicemail.so /usr/src/asterisk/modules/;
asterisk -rx 'module load app_voicemail.so'
Код: Выделить всё
emailbody=${VM_NAME},\n\nГолосовое сообщение для ${VM_MAILBOX}:\n\n\tОт:\t${VM_CALLERID}\n\tДлительность:\t${VM_DUR} seconds\n\tДата:\t${VM_DATE}\n\nСсылка на файл : http://domain.ru/voicemail/${VM_MAILBOX}/INBOX/${VM_FILENAME}.wav \n\n
При получении голосового сообщения получаем что-то вида
Вот. Развлекайтесь.zzuz,
Голосовое сообщение для 710:
От: 713
Длительность: 0:09 seconds
Дата: 13:11:58 31-03-2017
Ссылка на файл: http://domain.ru/voicemail/710/INBOX//msg0009.wav