#!/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="Put_Your_Password" export PGPASSWORD #Find wav files from yesterday and convert them to opus, then delete original files, then update xml cdr and call recording database entriesecho "started conversion" >> /root/convert.log date >> /root/convert.log for DIRECTORY in /usr/local/freeswitch/recordings/*/; do DIRYESTERDAY=/usr/local/freeswitch/recordings/`basename "$DIRECTORY"`/archive/`date -d "yesterday" +%Y/%b/%d` if [ -d "$DIRYESTERDAY" ]; then for WAVFILE in /usr/local/freeswitch/recordings/`basename "$DIRECTORY"`/archive/`date -d 'yesterday' +%Y/%b/%d`/*.wav; do BNAME=`basename $WAVFILE .wav` echo $BNAME /etc/cron.daily/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_recordings SET call_recording_name = '$BNAME.ogg' WHERE call_recording_name = '$BNAME.wav' and call_recording_path = '$DIRYESTERDAY'" psql --host=127.0.0.1 --username=fusionpbx -t -c "UPDATE v_xml_cdr set record_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- lost calls for DIRECTORY in /usr/local/freeswitch/recordings/*/; do DIRYESTERDAY=/usr/local/freeswitch/recordings/`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 /etc/cron.daily/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_recordings SET call_recording_name = '$BNAME.ogg' WHERE call_recording_name = '$BNAME.wav' and call_recording_path = '$DIRYESTERDAY'" psql --host=127.0.0.1 --username=fusionpbx -t -c "UPDATE v_xml_cdr set record_name = '$BNAME.ogg' WHERE record_name = '$BNAME.wav'" done rm $DIRYESTERDAY/*.wav fi chown -R www-data:www-data $DIRYESTERDAY/* done echo "conversions complete" >> /root/convert.log echo $(date -u) "conversions ccomplete" >> /root/convert.log