Поднимаем чистую FreePBX 14. Я разворачивал на купленной вируталке с образа SNG7-FPBX-64bit-1712-2.iso
Кстати, если ставить на автомате то пароль для рута будет SangomaDefaultPassword о чем сообщается в самом начале и естественно я этого не заметил =))
Ну и самый больной вопрос это конвертация записей разговоров из wav в mp3.
Заметку пишу для себя пока еще помню чего как делал.
Скрипт собирался из разных источников, спасибо всем за их труды:
https://github.com/andrey0001/fpbx-elastix
http://awsswa.livejournal.com/34272.html
https://habrahabr.ru/post/258583/
https://habrahabr.ru/post/258445/
Действия такие:
visudo
добавляем
asterisk ALL = NOPASSWD: /bin/nice
asterisk ALL = NOPASSWD: /usr/bin/ionice
asterisk ALL = NOPASSWD: /bin/chmod
asterisk ALL = NOPASSWD: /bin/chown
asterisk ALL = NOPASSWD: /bin/mv
asterisk ALL = NOPASSWD: /bin/rm
asterisk ALL = NOPASSWD: /bin/touch
в /etc/asterisk/scripts закидываем mixmon-mp3-2.sh меняем права для него.
chown asterisk. /etc/asterisk/scripts/mixmon-mp3-2.sh
chmod a+x /etc/asterisk/scripts/mixmon-mp3-2.sh
Ну и само содержание скрипта:
# !/bin/bash
cdrdb=»asteriskcdrdb»
cdrtable=»cdr»
astdbuser=»freepbxuser»
astdbuserpass=»dfc38f19933393cd56fbdbad11438878″
YEAR=$1
MONTH=$2
DAY=$3
CALLFILENAME=$4
MIXMON_FORMAT=$5
MIXMON_DIR=$6
if [ -z «${MIXMON_DIR}» ]; then
SPOOLDIR=»/var/spool/asterisk/monitor/»
else
SPOOLDIR=${MIXMON_DIR}
fi
FFILENAME=${SPOOLDIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MIXMON_FORMAT}
/usr/bin/test ! -e ${FFILENAME} && exit 21
WAVFILE=${FFILENAME}
MP3FILE=`echo ${WAVFILE} | /bin/sed ‘s/.wav/.mp3/g’`
SUDO=»/usr/bin/sudo»
LOWNICE=»/bin/nice -n 19 /usr/bin/ionice -c3″
${SUDO} ${LOWNICE} /usr/bin/lame —quiet —preset phone -h -v ${WAVFILE} ${MP3FILE}
${SUDO} /bin/chown —reference=${WAVFILE} ${MP3FILE}
/bin/chmod —reference=${WAVFILE} ${MP3FILE}
/usr/bin/mysql —user=»$astdbuser» —password=»$astdbuserpass» —database=»$cdrdb» —execute=’UPDATE ‘$cdrtable’ SET recordingfile=»‘$CALLFILENAME’.mp3″ WHERE recordingfile=»‘$CALLFILENAME’.wav»;’;
/usr/bin/rm -f ${WAVFILE}
Далее открываем FreePBX, в разделе Settings — Advanced Settings включаем Display Readonly Settings и Override Readonly Settings, после чего становится доступна настройка Post Call Recording Script в разделе Developer and Customization. Туда прописываем строку вызова скрипта с параметром:
/etc/asterisk/scripts/mixmon-mp3-2.sh ^{YEAR} ^{MONTH} ^{DAY} ^{CALLFILENAME} ^{MIXMON_FORMAT} ^{MIXMON_DIR}
После всех манипуляций в CDR Report можно слушать записи разговоров ну и файлики уже все сжатые в mp3
Профит!
Дополнения и замечания приветствуются, ибо я еще только учус.
Здравствуйте. Есть free pbx 14 sangoma, все сделал по вашей статье, пароль естественно свой вставил, не работает. Не пойму в чем причина. Помогите разобраться.
Я так понимаю для работы скрипта надо еще пакеты установить ffрmpeg и lame, верно ?
в visudo добавлял /bin/sed
много кривого синтаксиса.
исправленный вариант
#!/bin/bash
cdrdb=asteriskcdrdb
cdrtable=cdr
astdbuser=freepbxuser
astdbuserpass=yourpassword //пароль находится в res_odbc_additional.conf
YEAR=$1
MONTH=$2
DAY=$3
CALLFILENAME=$4
MIXMON_FORMAT=$5
MIXMON_DIR=$6
if [ -z ${MIXMON_DIR} ]; then
SPOOLDIR=/var/spool/asterisk/monitor/
else
SPOOLDIR=${MIXMON_DIR}
fi
FFILENAME=${SPOOLDIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MIXMON_FORMAT}
/usr/bin/test ! -e ${FFILENAME} && exit 21
WAVFILE=${FFILENAME}
MP3FILE=`echo ${WAVFILE} | /bin/sed ‘s/.wav/.mp3/g’`
SUDO=/usr/bin/sudo
LOWNICE=»/bin/nice -n 19 /usr/bin/ionice -c3″
${SUDO} ${LOWNICE} /usr/bin/lame —quiet —preset phone -h -v ${WAVFILE} ${MP3FILE}
${SUDO} /bin/chown —reference=${WAVFILE} ${MP3FILE}
/bin/chmod —reference=${WAVFILE} ${MP3FILE}
/usr/bin/mysql —user=$astdbuser —password=$astdbuserpass —database=$cdrdb —execute=’UPDATE ‘$cdrtable’ SET recordingfile=»‘$CALLFILENAME’.mp3″ WHERE recordingfile=»‘$CALLFILENAME’.wav»;’;
/usr/bin/rm -f ${WAVFILE}
Оказывается сайт портит синтаксис. кавычки » нужно заменить на двойной апостроф.
А ты можешь прикрепить текстовый файл с правильным кодом? или отправить его мне на почту support@eralim.com
в visudo добавил /bin/sed
много кривого синтаксиса.
исправил так
#!/bin/bash
cdrdb=asteriskcdrdb
cdrtable=cdr
astdbuser=freepbxuser
astdbuserpass=bfbf9fe8decbfedf53105ef462b1ee5e
YEAR=$1
MONTH=$2
DAY=$3
CALLFILENAME=$4
MIXMON_FORMAT=$5
MIXMON_DIR=$6
if [ -z ${MIXMON_DIR} ]; then
SPOOLDIR=/var/spool/asterisk/monitor/
else
SPOOLDIR=${MIXMON_DIR}
fi
FFILENAME=${SPOOLDIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MIXMON_FORMAT}
/usr/bin/test ! -e ${FFILENAME} && exit 21
WAVFILE=${FFILENAME}
MP3FILE=`echo ${WAVFILE} | /bin/sed ‘s/.wav/.mp3/g’`
SUDO=/usr/bin/sudo
LOWNICE=»/bin/nice -n 19 /usr/bin/ionice -c3″
${SUDO} ${LOWNICE} /usr/bin/lame —quiet —preset phone -h -v ${WAVFILE} ${MP3FILE}
${SUDO} /bin/chown —reference=${WAVFILE} ${MP3FILE}
/bin/chmod —reference=${WAVFILE} ${MP3FILE}
/usr/bin/mysql —user=$astdbuser —password=$astdbuserpass —database=$cdrdb —execute=’UPDATE ‘$cdrtable’ SET recordingfile=»‘$CALLFILENAME’.mp3″ WHERE recordingfile=»‘$CALLFILENAME’.wav»;’;
/usr/bin/rm -f ${WAVFILE}