#!/bin/sh
#
# Needs ffmpeg to work. Verify recordings directory and set database PW
#
PGPASSWORD="$(grep db_password /etc/fusionpbx/config.php | cut -d "'" -f2)"
export PGPASSWORD
#
echo $(date -u) "conversions started" >> /root/convert.log
#Find wav files from yesterday and convert them to opus, then delete original fi les, then update xml cdr and call recording database entries
for DIRECTORY in /mnt/retain/*/; do
DIRYESTERDAY=/mnt/retain/`basename "$DIRECTORY"`/archive/`date -d "yesterday" +%Y/%b/%d`
if [ -d "$DIRYESTERDAY" ]; then
for WAVFILE in /mnt/retain/`basename "$DIRECTORY"`/archive/`date -d 'yeste rday' +%Y/%b/%d`/*.wav; do
BNAME=`basename $WAVFILE .wav`
echo $BNAME
ffmpeg -i $WAVFILE -c:a libopus -b:a 8k $DIRYESTERDAY/$BNAME.ogg >> /dev /null
psql --host=127.0.0.1 --username=fusionpbx -t -c "UPDATE v_call_recordin gs SET call_recording_name = '$BNAME.ogg' WHERE call_recording_name = '$BNAME.wa v' and call_recording_path = '$DIRYESTERDAY'"
psql --host=127.0.0.1 --username=fusionpbx -t -c "UPDATE v_xml_cdr set r ecord_name = '$BNAME.ogg' WHERE record_name = '$BNAME.wav'"
done
rm $DIRYESTERDAY/*.wav
fi
chown -R www-data:www-data $DIRYESTERDAY/*
done
# run again for plain -archive- directory calls
for DIRECTORY in /mnt/retain/*/; do
DIRYESTERDAY=/mnt/retain/`basename "$DIRECTORY"`/`date -d "yesterday" +%Y/%b/% d`
if [ -d "$DIRYESTERDAY" ]; then
for WAVFILE in /mnt/retain/`basename "$DIRECTORY"`/`date -d 'yesterday' +% Y/%b/%d`/*.wav; do
BNAME=`basename $WAVFILE .wav`
echo $BNAME
ffmpeg -i $WAVFILE -c:a libopus -b:a 8k $DIRYESTERDAY/$BNAME.ogg >> /dev /null
psql --host=127.0.0.1 --username=fusionpbx -t -c "UPDATE v_call_recordin gs SET call_recording_name = '$BNAME.ogg' WHERE call_recording_name = '$BNAME.wa v' and call_recording_path = '$DIRYESTERDAY'"
psql --host=127.0.0.1 --username=fusionpbx -t -c "UPDATE v_xml_cdr set r ecord_name = '$BNAME.ogg' WHERE record_name = '$BNAME.wav'"
done
rm $DIRYESTERDAY/*.wav
fi
chown -R www-data:www-data $DIRYESTERDAY/*
done
echo $(date -u) "conversions complete" >> /root/convert.log
find /mnt/retain/* -name '*.tar.bz2' -mtime +3 -exec rm {} \;