Запись телефонных разговоров в 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 Ответить