#!/bin/bash
echo "#######################################################################################"
echo "# Yoann QUERET - yoann@queret.net                                                     #"
echo "# http://www.queret.net/blog/index.php/2008/01/10/108-asterisk-freepbx-on-debian-etch #"
echo "#                                                                                     #"
echo "# Si vous modifiez ce script, merci d'en faire profiter la communauté                 #"
echo "#######################################################################################"
echo ""
echo "##################################################################"
echo "#             Installation automatiser de FreePBX                #"
echo "#                                                                #"
echo "#     FreePBX 2.4.0 (avec apache2, php5, mysql5)                 #"
echo "#                                                                #"
echo "#               Appuyer sur <Enter> pour continuer               #"
echo "##################################################################"
echo " Appuyer sur <Entrer> pour continuer"
read

echo "+----------------------------------------------------------------+"
echo "| Construction de l'environment                                  |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
apt-get install -y apache2 php5 php5-cli mysql-server-5.0 php-pear php5-mysql php-db libapache2-mod-php5 php5-gd php5-curl

echo "+----------------------------------------------------------------+"
echo "| Telechargement des sources dans /tmp/freepbx/                  |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
mkdir /tmp/freepbx/
wget http://mesh.dl.sourceforge.net/sourceforge/amportal/freepbx-2.4.0.tar.gz -O /tmp/freepbx/freepbx-2.4.0.tar.gz

echo "+----------------------------------------------------------------+"
echo "| Decompresion des sources de freepbx dans /usr/src/             |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
cd /usr/src
tar zxvf /tmp/freepbx/freepbx-2.4.0.tar.gz

echo "+----------------------------------------------------------------+"
echo "| Changement de la taille maximum des upload PHP                 |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini-orig
sed -e "s/\(upload_max_filesize *= *\)\(.*\)/\120M/" /etc/php5/apache2/php.ini > /etc/php5/apache2/php.ini.tmp
mv /etc/php5/apache2/php.ini.tmp /etc/php5/apache2/php.ini

echo "+----------------------------------------------------------------+"
echo "| Musique d'attente (Lien symbolique)                            |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3

echo "+----------------------------------------------------------------+"
echo "| Utilisateur & Permissions du user asterisk                     |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
adduser asterisk --disabled-password --gecos "asterisk PBX" --home /var/lib/asterisk
adduser www-data asterisk

echo "+----------------------------------------------------------------+"
echo "| Changement de l'utilisateur www-data en asterisk pour apache   |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf-orig

sed -e "s/\(^User *\)\(.*\)/\1asterisk/" /etc/apache2/apache2.conf > /etc/apache2/apache2.conf.tmp
mv /etc/apache2/apache2.conf.tmp /etc/apache2/apache2.conf

sed -e "s/\(^Group *\)\(.*\)/\1asterisk/" /etc/apache2/apache2.conf > /etc/apache2/apache2.conf.tmp
mv /etc/apache2/apache2.conf.tmp /etc/apache2/apache2.conf

echo "+----------------------------------------------------------------+"
echo "| MySQL                                                          |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
echo "create database asteriskcdrdb;" | mysql -u root
echo "create database asterisk;" | mysql -u root
echo "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';" | mysql -u root
echo "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';" | mysql -u root

mysql -u asteriskuser -pamp109 asteriskcdrdb < /usr/src/freepbx-2.4.0/SQL/cdr_mysql_table.sql
mysql -u asteriskuser -pamp109 asterisk < /usr/src/freepbx-2.4.0/SQL/newinstall.sql

echo "+----------------------------------------------------------------+"
echo "| Configuration de Asterisk pour utilisation avec FreePBX        |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
cp /etc/asterisk/asterisk.conf /etc/asterisk/asterisk.conf.orig
sed -e "s/\(astrundir *=> *\)\(.*\)/\1\/var\/run\/asterisk/" /etc/asterisk/asterisk.conf > /etc/asterisk/asterisk.conf.tmp
mv /etc/asterisk/asterisk.conf.tmp /etc/asterisk/asterisk.conf

mkdir /var/run/asterisk
chown -R asterisk:asterisk /var/run/asterisk

echo "+----------------------------------------------------------------+"
echo "| Demarrage de Asterisk Post Installation                        |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
/usr/sbin/asterisk

echo "+----------------------------------------------------------------+"
echo "| Modification des fichiers de configuration de FreePBX          |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
#$webroot        = "/var/www/html";
cp /usr/src/freepbx-2.4.0/install_amp /usr/src/freepbx-2.4.0/install_amp-orig

sed -e "s/\(^\$webroot*\)\(.*\)/\1 = \"\/var\/www\";/" /usr/src/freepbx-2.4.0/install_amp > /usr/src/freepbx-2.4.0/install_amp.tmp

mv /usr/src/freepbx-2.4.0/install_amp.tmp /usr/src/freepbx-2.4.0/install_amp
chmod 755 /usr/src/freepbx-2.4.0/install_amp

echo "+----------------------------------------------------------------+"
echo "| Installation de FreePBX                                        |"
echo "+----------------------------------------------------------------+"
echo "| Differente question vont vous être posée.                      |"
echo "| Appuyer simplement sur <Entrée> à chaque question.             |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
cd /usr/src/freepbx-2.4.0/
./install_amp

echo "+----------------------------------------------------------------+"
echo "| Arret de Asterisk Post Installation                            |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
asteriskPID=$(cat /var/run/asterisk/asterisk.pid)
kill -9 $(cat /var/run/asterisk/asterisk.pid)


echo "+----------------------------------------------------------------+"
echo "| Remove Apache2 Redirect                                        |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
sed -e "s/\(RedirectMatch*\)\(.*\)//" /etc/apache2/sites-enabled/000-default > /etc/apache2/sites-enabled/000-default.tmp
mv /etc/apache2/sites-enabled/000-default.tmp /etc/apache2/sites-enabled/000-default

echo "+----------------------------------------------------------------+"
echo "| Redemarrage de apache                                          |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
/etc/init.d/apache2 restart

echo "+----------------------------------------------------------------+"
echo "| Changement des droits                                          |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read

chown -R asterisk:asterisk /etc/asterisk
chmod 777 /etc/asterisk/

chown -R asterisk:asterisk /var/lib/asterisk/
chmod 775 /var/lib/asterisk/

chown -R asterisk:asterisk /var/www/


echo "+----------------------------------------------------------------+"
echo "| Copie des images manquantes                                    |"
echo "+----------------------------------------------------------------+"
echo " Appuyer sur <Entrer> pour continuer"
read
cp /var/www/admin/modules/dashboard/images/notify_* /var/www/admin/images/


