Конвертация записей разговоров в mp3 — Elastix 2.5 (FreePBX 2.11)

11df30bf8b944a9c969a817fa1c2a6b3.pngВ данной статье я дам небольшое описание как сохранять записи разговоров в формате mp3, но с расширением .wav, тем самым уменьшив размер файлов и сохранив возможность прослушивать файлы из панели управления (имена файлов не будут меняться). А так же дам пару советов, как уменьшить нагрузку на дисковую подсистему, избавившись от лишних логов (при нагруженной системе уменьшение нагрузки достаточно заметно).В старых версиях файлы записей хранились по умолчанию в одной папке, создавая тем самым проблемы при их большом количестве. В Elastix 2.5 перешли на FreeBPX 2.11, а там, как известно, записи телефонных разговоров раскладываются по папкам на каждый день.Соответственно изменились (добавились) переменные для использования со скриптом конвертации записей после звонка.

Причем, в старых версиях, добавить параметр «Run after record» можно было прямо через панель управления Elastix, в разделе «General Settings». В новой версии, для того чтобы добавить это параметр (кстати, параметр тоже поменял название — «Post Call Recording Script»), нужно воспользоваться панелью управления FreePBX.

Итак, в чем суть: мы будем конвертировать файл после разговора в формат mp3 с помощью lame, потом, с помощью ffmpeg мы добавим заголовок к файлу записи и сменим расширение обратно на .wav. В итоге все останется для самой системы неизменным, однако существенно уменьшится размер хранимых файлов, по моей оценке в 7–10 раз.

В первую очередь необходимо установить в систему пакеты ffрmpeg и lame:

# rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3–1.el5.rf.x86_64.rpm # yum --disablerepo=commercial-addons install ffmpeg lame Параметр --disablerepo=commercial-addons необходим потому что, в репозитории commercial-addons присутствует пакет ffmpeg, который нам не подходит.

Создаем папку для нашего скрипта:

# mkdir -p /etc/asterisk/scripts; chown asterisk. /etc/asterisk/scripts Забираем скрипт с github:

# wget https://raw.githubusercontent.com/andrey0001/fpbx-elastix/master/mixmon-mp3–2.sh -O /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 Сам репозиторий на github.

Выполняем команду 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/rm asterisk ALL = NOPASSWD: /bin/touch Вот теперь, мы выполнили все необходимые действия в консоли, и можем спокойно переходить к панели управления FreePBX: Идем в раздел «Settings → Advanced Settings» и включаем 2 параметра (Display Readonly Settings, Override Readonly Settings)271039183dab48a7af619970601c1439.png

Применяем изменения. У нас теперь появилась возможность редактировать дополнительные параметры.В параметр «Post Call Recording Script» вставляем значение: ca86756c6bbf44dfb00464e67fb27dad.png

/etc/asterisk/scripts/mixmon-mp3–2.sh ^{YEAR} ^{MONTH} ^{DAY} ^{CALLFILENAME} ^{MIXMON_FORMAT} ^{MIXMON_DIR} В параметр «Override Call Recording Location» вставляем значение: 5fe698b08f614d7790ee3882715757a7.png /var/spool/asterisk/monitor/ Применяем все изменения.Всё, теперь все записи телефонных разговоров, после разговора, будут конвертированы в формат mp3, с сохранением расширения .wav.

Для старых версий файл скрипта mixmon-mp3.sh, а парамерт «Run after record»: 51ad736453914a89878f3095d75349ae.png

/etc/asterisk/scripts/mixmon-mp3.sh ^{MIXMON_DIR} ^{CALLFILENAME} ^{MIXMON_FORMAT} И еще, перед тем как Вы включите это всё, несомненно вы захотите конвертировать уже имеющиеся у вас записи телефонных разговоров. Для этого, файл скрипта conv.sh и запускаем команду из консоли:

find /var/spool/asterisk/monitor/ -name '*.wav' -exec ./conv.sh {} \; Процесс не быстрый.Теперь, когда вы будете прослушивать файлы записей, формат будет mp3 — обратите внимание на картинку: 8e476fb55c4f4173bbc74abc7888ace8.png

Что касается логов: По умолчанию, Elastix пишет полные логи, и складывает CDR аж в три места (mysql, sqlite и файл csv):/etc/asterisk/logger.conf и ему сопутствуюшие, оставьте только: console => notice, warning, error/etc/asterisk/cdr.conf и ему сопутствуюшие, оставьте только запись в mysql.

Вот и всё!

Удачи в настройках.

© Habrahabr.ru