Being a self proclaimed saver and always looking for a challenge, I decided to search the internet for tutorials. I found a great tutorial outlining the process found here: http://pcaddicts.ca/rc/2011/06/26/asterisknow-freepbx-mp3-voicemail/.
As i started through the process i quickly realized that this tutorial was written for an x86 setup and not an x64 setup. Below is the steps i used on my x64 CentOS 5.8 final AsteriskNOW 2.0.2 64-bit setup.
1) Login into your box
2) Goto your home directory
cd /home/
3) Download the lastest version of lame from here http://pkgs.repoforge.org/lame/
wget http://pkgs.repoforge.org/lame/lame-3.97-1.el5.rf.x86_64.rpm
4) install rpm
rpm -Uvh lame-3.97-1.el5.rf.x86_64.rpm
5) Create the following script as /usr/sbin/sendmp3voicemail.pl
nano /usr/sbin/sendmp3voicemail.pl
#!/usr/bin/perl
open(VOICEMAIL,"|/usr/sbin/sendmail -t"); open(LAMEDEC,"|/usr/bin/dos2unix|/usr/bin/base64 -di|/usr/bin/lame --quiet --preset voice - /var/spool/asterisk/tmp/vmout.$$.mp3"); open(VM,">/var/spool/asterisk/tmp/vmout.debug.txt"); my $inaudio = 0; loop: while(<>){ if(/^\.$/){ last loop; } if(/^Content-Type: audio\/x-wav/i){ $inaudio = 1; } if($inaudio){ while(s/^(Content-.*)wav(.*)$/$1mp3$2/gi){} if(/^\n$/){ iloop: while(<>){ print LAMEDEC $_; if(/^\n$/){ last iloop; } } close(LAMEDEC); print VOICEMAIL "\n"; print VM "\n"; open(B64,"/usr/bin/base64 /var/spool/asterisk/tmp/vmout.$$.mp3|"); while(){ print VOICEMAIL $_; print VM $_; } close(B64); print VOICEMAIL "\n"; print VM "\n"; $inaudio = 0; } } print VOICEMAIL $_; print VM $_; } print VOICEMAIL "\."; print VM "\."; close(VOICEMAIL); close(VM); #CLEAN UP THE TEMP FILES CREATED #This has to be done in a separate cron type job #because unlinking at the end of this script is too fast, #the message has not even gotten piped to send mail yet
6) Make the script executable
chmod 775 /usr/sbin/sendmp3voicemail.pl
7)Change default voicemail format to uncompressed WAV (which will be converted to MP3) and set mailcmd script.
FreePBX -> Voicemail Admin -> Settings
Changes:
format= wav
mailcmd= /usr/sbin/sendmp3voicemail.pl
8) Restart Asterisk and test
service asterisk restart
No comments:
Post a Comment