LINUX.ORG.RU
ФорумAdmin

Voicemail на почту

 ,


2

3

Отправленная из консоли почта доходит:

echo "bla bla" | sendmail petav@hide.ru
В «/var/log/syslog» отображается ход отправки

в /etc/asterisk/voicemail.conf сконфигурирован ящик

107 => 107,107,petav@hide.ru,,
Ящик работает, через телефонный аппарат почту можно прослушать.

Настройки minivm

asterisk*CLI> minivm show settings
* Mini-Voicemail general settings
  -------------------------------

  Mail command (shell):               /usr/sbin/sendmail -t
  Max silence:                        10000
  Silence threshold:                  256
  Max message length (secs):          2000
  Min message length (secs):          0
  Default format:                     wav49
  Extern notify (shell):              
  Logfile:                            <disabled>
  Operator exit:                      No
  Message review:                     No

Почему то, после оставления голосового сообщения Asterisk молчит в логах по поводу вызова sendmail. Что-то недовключил?

★★★★★

Как обычно, нет ни версии asterisk, ни general от voicemail.conf

ничего. Но помочь надо. Да.

Срочно? O_o

zgen ★★★★★
()
Ответ на: комментарий от zgen

нет ни версии asterisk

Asterisk 1.8.13.1~dfsg1-3+deb7u3

ни general от voicemail.conf

[general]
format=wav49|gsm|wav
serveremail=petav@hide.ru
attach=yes
skipms=3000
maxsilence=10
maxlogins=3
emaildateformat=%A, %B %d, %Y at %r
sendvoicemail=yes

[default]
107 => 107,107,petav@hide.ru,,

Но помочь надо.

Да

Срочно?

Нет

petav ★★★★★
() автор топика
Ответ на: комментарий от Turbid

Молчит в логах астериска или в /var/log/syslog?

Всюду молчит

petav ★★★★★
() автор топика
# mailq
MSP Queue status...
/var/spool/mqueue-client is empty
                Total requests: 0
MTA Queue status...
/var/spool/mqueue is empty
                Total requests: 0

petav ★★★★★
() автор топика

Мое решение отправляет записи в mp3, хочет установленного dos2unix и lame.

Это в отдельный скрипт:

# cat /opt/bin/send_voicemail.sh 
#! /bin/sh
# Asterisk voicemail attachment conversion script
# Revision history :
# 22/11/2010 - V1.0 - Creation by N. Bernaerts
# 07/02/2012 - V1.1 - Add handling of mails without attachment (thanks to Paul Thompson)
# 01/05/2012 - V1.2 - Use mktemp, pushd & popd
# 08/05/2012 - V1.3 - Change mp3 compression to CBR to solve some smartphone compatibility (thanks to Luca Mancino)
# 01/08/2012 - V1.4 - Add PATH definition to avoid any problem (thanks to Christopher Wolff)

echo $@ > /tmp/params

# set PATH
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# save the current directory
pushd .

# create a temporary directory and cd to it
TMPDIR=$(mktemp -d)
cd $TMPDIR

# dump the stream to a temporary file
cat >> stream.org

# get the boundary
BOUNDARY=`grep "boundary=" stream.org | cut -d'"' -f 2`

# cut the file into parts
# stream.part - header before the boundary
# stream.part1 - header after the bounday
# stream.part2 - body of the message
# stream.part3 - attachment in base64 (WAV file)
# stream.part4 - footer of the message
awk '/'$BOUNDARY'/{i++}{print > "stream.part"i}' stream.org

# if mail is having no audio attachment (plain text)
PLAINTEXT=`cat stream.part1 | grep 'plain'`
if [ "$PLAINTEXT" != "" ]
then

  # prepare to send the original stream
  cat stream.org > stream.new

# else, if mail is having audio attachment
else

  # cut the attachment into parts
  # stream.part3.head - header of attachment
  # stream.part3.wav.base64 - wav file of attachment (encoded base64)
  sed '7,$d' stream.part3 > stream.part3.wav.head
  sed '1,6d' stream.part3 > stream.part3.wav.base64

  # convert the base64 file to a wav file
  dos2unix -o stream.part3.wav.base64
  base64 -di stream.part3.wav.base64 > stream.part3.wav

  # convert wav file to mp3 file
  # -b 24 is using CBR, giving better compatibility on smartphones (you can use -b 32 to increase quality)
  # -V 2 is using VBR, a good compromise between quality and size for voice audio files
  lame -m m -b 24 stream.part3.wav stream.part3.mp3

  # convert back mp3 to base64 file
  base64 stream.part3.mp3 > stream.part3.mp3.base64

  # generate the new mp3 attachment header
  # change Type: audio/x-wav to Type: audio/mpeg
  # change name="msg----.wav" to name="msg----.mp3"
  sed 's/x-wav/mpeg/g' stream.part3.wav.head | sed 's/.wav/.mp3/g' > stream.part3.mp3.head

  # generate first part of mail body, converting it to LF only
  mv stream.part stream.new
  cat stream.part1 >> stream.new
  cat stream.part2 >> stream.new
  cat stream.part3.mp3.head >> stream.new
  dos2unix -o stream.new

  # append base64 mp3 to mail body, keeping CRLF
  unix2dos -o stream.part3.mp3.base64
  cat stream.part3.mp3.base64 >> stream.new

  # append end of mail body, converting it to LF only
  echo "" >> stream.tmp
  echo "" >> stream.tmp
  cat stream.part4 >> stream.tmp
  dos2unix -o stream.tmp
  cat stream.tmp >> stream.new

fi

# send the mail thru sendmail
cat stream.new | sendmail -t

# go back to original directory
popd

# remove all temporary files and temporary directory
rm -Rf $TMPDIR

Это в voicemail.conf:

[general]
format=wav
serveremail=asterisk@asterisk.local
attach=yes
skipms=3000
maxsilence=10
silencethreshold=128
maxlogins=3
emaildateformat=%A, %B %d, %Y at %r
pagerdateformat=%A, %B %d, %Y at %r
mailcmd=/opt/bin/send_voicemail.sh

[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM

[default]
555 => ,support,mail@address,,delete=no

Ну и нормально настроенный автоответчик, естественно. Скрипт запилен под постфикс, но может работать и с другими реализациями sendmail.

pztrn ★★★★
()
Ответ на: комментарий от pztrn

Мое решение отправляет записи в mp3,

mp3 пока лишнее. На реализацию присмотрюсь для кругозора, Спасибо.

А вот этим воспользуюсь

mailcmd=/opt/bin/send_voicemail.sh

Что бы понять вызывается ли обработчик mailcmd (что нибудь в лог запишу). Мне кажется что обработчик не вызывается, иначе что-то sendmail сказал бы.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Создал скрипт /home/petav/test.sh

#!/bin/bash

touch /tmp/123456789

Сделал его исполняемым

chmod +x /home/petav/test.sh

Модифицировал /etc/asterisk/voicemail.conf

-- mailcmd=/usr/sbin/sendmail -t
++ mailcmd=/home/petav/test.sh

Перезапустил сервис

service asterisk restart

В логах молчок и файл /tmp/123456789 не создался

# ls /tmp |grep 123456
#

При этом «minivm show settings» утверждает, почему-то что mailcmd не изменился.

asterisk*CLI> minivm show settings
* Mini-Voicemail general settings
  -------------------------------

  Mail command (shell):               /usr/sbin/sendmail -t
  Max silence:                        10000
  Silence threshold:                  256
  Max message length (secs):          2000
  Min message length (secs):          0
  Default format:                     wav49
  Extern notify (shell):              
  Logfile:                            <disabled>
  Operator exit:                      No
  Message review:                     No

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

minivm к делу не относится. Конфигурационный текст почти соотвествует voicemail.conf. Но почта работает именно по конфигурации в voicemail.conf.

petav ★★★★★
() автор топика

У меня догадок ноль, как это локализовать.

petav ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.