FreePBX конвертируем записи звонков в mp3

В FreePBX можно включить запись всех звонков или записывать отдельные звонки по комбинации клавиш (обычно во время разговора *1). Но записи сохраняются в формате wav, что занимает больше места чем например популярный mp3.

Есть инструкции на эту тему, например тут. Но как правило они все для случая когда FreePBX и база данных находятся на одном сервере, у меня же FreePBX на одной машине в Docker контейнере, база данных на другой. По этому немного модернизируем скрипт.

Включаем так же как во всех инструкциях, заходим в меню Общие настройкиДополнительные настройки и включаем пункты Отображать установки только для чтения и Подавлять установки только для чтения:

Нажимаем Сохранить.

Теперь в общих настройках будет доступен пункт Скрипт обработки записи после вызова, в это поле мы пишем путь к скрипту и передаваемые параметры.

Вообще скрипт можно положить в любое место, главное сделать для него правильный путь. Если у Вас FreePBX запущен в Docker контейнере то скорее всего на хосте где запущен Docker есть папка data и там есть папки контейнера FreePBX. у меня это папка /var/lib/asterisk и параметр в поле Скрипт обработки записи после вызова будет:

/var/lib/asterisk/to_mp3.sh ^{YEAR} ^{MONTH} ^{DAY} ^{CALLFILENAME}

создаем в папке файл скрипта:

nano to_mp3.sh

и вставляем следующие данные:

#!/bin/bash
CALLFILENAME=$4
FILE=/var/spool/asterisk/monitor/$1/$2/$3/$4
if [ -f "$FILE.wav" ]; then
/usr/bin/lame -h -b 192 $FILE.wav $FILE.mp3 && /bin/rm -rf $FILE.wav
mysql -h freepbx-db -u asterisk -pasteriskpass -e "UPDATE cdr SET recordingfile='$CALLFILENAME.mp3' WHERE recordingfile='$CALLFILENAME.wav';" asterisk
fi

где в строке mysql -h freepbx-db -u asterisk -pasteriskpass -e «UPDATE cdr SET recordingfile=’$CALLFILENAME.mp3′ WHERE recordingfile=’$CALLFILENAME.wav’;» asterisk

-h freepbx-dbfreepbx-db это имя хоста с базой данных, если у вас база и FreePBX на одной машине то можно заменить на -h localhost или удалить этот параметр

-u asterisk — имя пользователя базы данных

-pasteriskpass — пароль asteriskpass пользователя базы данных, между флагом -p и паролем пробел на нужен

в конце строки asterisk это имя базы данных.

вставьте свои данные и сохраните скрипт, делаем права на выполнение

chmod +x to_mp3.sh

на этом всё, теперь после завершения звонка записи будут конвертироваться в mp3 и будет вносится в базу данных изменение.

FreePBX конвертируем записи звонков в mp3

Навигация по записям