FreePBX 14 + mp3

3 января 2018 | IT & TECH | Просмотров: 40356
Метки: , ,

Поднимаем чистую 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

Профит!

Дополнения и замечания приветствуются, ибо я еще только учус.

FreePBX 14 + mp3: 6 комментариев

  1. Дмитрий

    Здравствуйте. Есть free pbx 14 sangoma, все сделал по вашей статье, пароль естественно свой вставил, не работает. Не пойму в чем причина. Помогите разобраться.

  2. Ростислав

    Я так понимаю для работы скрипта надо еще пакеты установить ffрmpeg и lame, верно ?

  3. Владимир

    в 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}

    1. Владимир

      Оказывается сайт портит синтаксис. кавычки » нужно заменить на двойной апостроф.

  4. Владимир

    в 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}

Обсуждение закрыто.