Запись телефонных разговоров в IP-PBX Elastix/FreePBX

Oct 27, 2015 21:26


Запись телефонных разговоров в IP-PBX Elastix/FreePBX организуется весьма просто. Отправляемся в раздел "PBX -> PBX Configuration -> General Settings -> Call Recording" интерфейса Web и указываем настройки:





В поле "Run after record:" следует указать следующее: "/etc/asterisk/scripts/mixmon-mp3.sh ^{MIXMON_DIR} ^{CALLFILENAME} ^{MIXMON_FORMAT}". Это скрипт автоматически запускается сразу после окончания записи. Он выполняет сжатие аудиофайлов в формат MP3, что обеспечит существенную экономию дискового пространства. Вот его содержимое:

#!/bin/sh

if [ -z "${MIXMONFILE}" ]; then

MIXMONFILE=${1}/${2}.${3}

fi

if [ -z "${1}" ]; then

TEMPDIR="/var/spool/asterisk/monitor/"

else

TEMPDIR=${1}

fi

TEMPFILE=`/bin/mktemp -u -p ${TEMPDIR} mixmon-mp3.XXXXXXXXXX`

TEMPFILEMP3=${TEMPFILE}".mp3"

TEMPFILEWAV=${TEMPFILE}".wav"

SUDO="/usr/bin/sudo"

LOWNICE="/bin/nice -n 19 /usr/bin/ionice -c3"

${SUDO} ${LOWNICE} /usr/bin/lame --quiet --preset phone -h -v ${MIXMONFILE} ${TEMPFILEMP3}

${SUDO} ${LOWNICE} /usr/bin/ffmpeg -v quiet -y -i ${TEMPFILEMP3} -f wav -acodec copy ${TEMPFILEWAV}

${SUDO} /bin/chmod --reference=${MIXMONFILE} ${TEMPFILEWAV}

${SUDO} /bin/chown --reference=${MIXMONFILE} ${TEMPFILEWAV}

${SUDO} /bin/touch --reference=${MIXMONFILE} ${TEMPFILEWAV}

${SUDO} /bin/mv -f ${TEMPFILEWAV} ${MIXMONFILE}

${SUDO} /bin/rm -f ${TEMPFILEMP3} ${TEMPFILE}

Вызов утилиты LAME выполняет кодирование из несжатого WAV в MP3, а FFmpeg - добавляет к файлу MP3 заголовок RIFF. Тем самым преобразуя его в сжатый WAV.

Поскольку IP-PBX Asterisk работает от лица одноименного непривилегированного пользователя, разрешим ему доступ к некоторым командам с правами администратора root через утилиту sudo. Для этого добавим в файл "/etc/sudoers" следующие строки:

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

Все предыдущие шаги носили подготовительный характер. Непосредственно сама запись включается для каждого внутреннего номера индивидуально в соответствующем разделе: "PBX -> PBX Configuration -> Extensions -> Extension: XXX -> Recording Options".


Если в вашей конфигурации используются очереди (queues) или конференции, то необходимо в соответствующих разделах также включить запись. Следует обратить внимание на то, что для звонков, обрабатываемых через механизм очередей (queues), вышеприведенный скрипт, сжимающий записи в формат MP3, не запускается автоматически. Для того, что бы это скомпенсировать создадим еще один скрипт нижеследующего содержания и поместим его в файле "/etc/cron.daily/queues-mixmon-mp3.sh":

#!/bin/sh

for MIXMONFILE in /var/spool/asterisk/monitor/q*.wav; do

/usr/bin/ffprobe -i ${MIXMONFILE} 2>&1 | /bin/grep -qs "0x0055)," || source /etc/asterisk/scripts/mixmon-mp3.sh

done

exit 0

Таким образом, раз в сутки все еще несжатые файлы с записями очередей будут конвертироваться в MP3. Как обстоят дела с записями конференций, т.е. нужно ли их тоже дополнительно обрабатывать, я, честно говоря, не знаю, поскольку в моей конфигурации соответствующий функционал IP-PBX Elastix не используется. Однако, вы сможете легко доработать запускаемый раз в сутки скрипт, зная место размещения и принцип именования файлов с записями конференций.

Получить доступ к файлам записей можно в разделе "PBX -> Monitoring" интерфейса Web:


Организовать ротацию старых записей можно с помощью утилиты tmpwatch. Например, выполняя раз в сутки следующую команду из планировщика заданий cron: "/usr/sbin/tmpwatch -c -f -q 8760 /var/spool/asterisk/monitor/". Таким образом, все файлы, созданные более года тому назад, будут автоматически удаляться.

Взято отсюда: http://uzlec.ru/zapis-telefonnyx-razgovorov-v-ip-pbx-elastixfreepbx.html
--------------------------------------
Полезные комменты:

В Elastix v2.5 обновили FreePBX до v2.11 и теперь необходимо настраивать в нем все, что связано с записью телефонных разговоров. Детальную инструкцию по адаптации решения в изложенной выше заметке, к сожалению, предоставить не могу. Но начать следует с того, что включить опции "Display Readonly Settings" и "Override Readonly Settings" в разделе "Settings -> Advanced Settings". После этого там же станет доступна "Post Call Recording Script", в которой указывается автоматически запускаемый скрипт сразу после окончания записи. "Extension Recoding Override" более недоступна. Вот несколько полезных ссылок по этой теме:

http://community.freepbx.org/t/solved-how-to-email-call-recordings-post-call-recording-script/26747/6

http://wiki.freepbx.org/x/aIEzAQ

http://wiki.freepbx.org/x/igOuAQ

Ответить

elastix, asterisk, запись разговоров

Previous post Next post
Up