@jhayes wrote:
First off I would like to state that I know freepbx does not support the mp3 conversion of recorded calls.
With that being said I am hoping someone can help me with my dilemma. I have a bash script running as a cronjob that converts recorded wav files to mp3 files and updates the cdr database. The problem I am having is: If there is an in-progress call when the cronjob executes the portion of the call that has yet to be recorded is "lost". The cdr record is also not changed to the new file. I am hoping that someone knows how to modify the existing bash I am using to only run against calls that are no long in progress or to only run it as a post call script on the call.
Below is the code:
#!/bin/bash # A Script to Convert FreePBX call recordings from WAV to MP3 # Also updates the CDR database, for correct downloads through the web UI # Version 1 - 2015/11/15 # # Copyright Jaytag Computer Limited 2015 - www.jaytag.co.uk # # You may use or modify this script as you wish as long as this copyright # message remains. Redistribution prohibited. # Set the Asterisk Recording Directory recorddir="/var/spool/asterisk/monitor" # Start the Loop, store the path of each WAV call recording as variable $wavfile for wavfile in `find $recorddir -name \*.wav`; do # Make Variables from the WAV file names, stripping the file path with sed wavfilenopath="$(echo $wavfile | sed 's/.*\///')" mp3file="$(echo $wavfile | sed s/".wav"/".mp3"/)" mp3filenopath="$(echo $mp3file | sed 's/.*\///')" # Convert the WAV files to MP3, exit with an error message if the conversion fails nice lame -b 16 -m m -q 9-resample "$wavfile" "$mp3file" && rm -frv $wavfile || { echo "$wavfile encoding failed" ; exit 1; } # Update the CDR Database mysql -u root -s -N -D asteriskcdrdb<<<"UPDATE cdr SET recordingfile='$mp3filenopath' WHERE recordingfile = '$wavfilenopath'" # On-Screen display of variables for debugging/logging # echo "" # echo "File -------------------------------------------------------" # echo "Wav File : " $wavfile # echo "Wav No Path : " $wavfilenopath # echo "MP3 File : " $mp3file # echo "MP3 No Path : " $mp3filenopath # echo "End File ---------------------------------------------------" # echo "" # End the Loop done
Posts: 1
Participants: 1