Asterisk - instalace - rozbor instalačního skriptu
Pro zájemce sem připravil rozbor instalačního skriptu, rozbor může napomoci i v případě problému při instalaci, ačkoliv postup byl již několikrát ověřen na několika virtuálních strojích.
Skript tedy pokračuje následujícími příkazy:
nastavení toho, aby skript nevyžadoval interakci uživatele
apt-get -y install debconf-utils
debconf-set-selections <<CONF_EOF
debconf debconf/frontend select noninteractive
CONF_EOF
nainstalujeme mysql-server, který vyžaduje freepbx
apt-get -y install mysql-server
nastavíme root heslo do databáze
mysqladmin -u root password ${MYSQL_ROOT_PW}
nainstalujeme zbývající balíčky potřebný pro korektní instalaci
apt-get -y install linux-headers-`uname -r` --force-yes
apt-get -y install make bison flex g++ gcc apache2 php5 php5-curl
apt-get -y install php5-cli php5-mysql php-pear php-db php5-gd curl
apt-get -y install sox libncurses5-dev libssl-dev libmysqlclient15-dev
apt-get -y install mpg123
#clear
přesuneme se do standardní složky pro ukládání balíčků
cd /usr/src
instalace DAHDI, což je podpora analogové telefonie. Dříve známá pod Zaptel
sudo wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz
tar -xvzf dahdi-linux-current.tar.gz
cd dahdi-linux*
make clean
make
make install
cd ..
sudo wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz
tar -xvzf dahdi-tools-current.tar.gz
cd dahdi-tools*
make clean
./configure
make
make install
make config
cd ..
sudo wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
tar xfz libpri-1.4-current.tar.gz
cd `find . -name "libpri-1.4.*" -print`
#./configure
make install
cd ..
instalace Asterisk 1.6.0 + doplňky
wget http://downloads.digium.com/pub/asterisk/asterisk-1.6.0-current.tar.gz
tar xfz asterisk-1.6.0-current.tar.gz
cd `find . -name "asterisk-1.6.0.*" -print`
./configure
make install
make samples
cd ..
wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.6.0-current.tar.gz
tar xfz asterisk-addons-1.6.0-current.tar.gz
cd `find . -name "asterisk-addons-1.6*" -print`
./configure
make install
cd ..
mkdir asterisk-sounds
cd asterisk-sounds
wget http://downloads.digium.com/pub/telephony/sounds/asterisk-extra-sounds-en-gsm-current.tar.gz
tar -zxf asterisk-extra-sounds-en-gsm-current.tar.gz
cp -rf * /var/lib/asterisk/sounds
cd ..
Nyní probíhá úprava apache serveru, aby spolupracoval s asteriskem a freepbx.
vytvoření apache uživatele a skupiny, přidání do www-data skupiny pro apache server
adduser asterisk --disabled-password --gecos "asterisk PBX"
adduser www-data asterisk
úprava apache konfigurace k běhu jako asterisk uživatel
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf-orig
sed -i "s/\(^User *\)\(.*\)/\1asterisk/" /etc/apache2/apache2.conf
sed -i "s/\(^Group *\)\(.*\)/\1asterisk/" /etc/apache2/apache2.conf
patch safe_asterisk skriptu k používání bash
sed -i "s|#!/bin/sh|#!/bin/bash|" /usr/sbin/safe_asterisk
přidání asterisk do startupu
cat > /etc/init.d/asterisk <<-END_STARTUP
#!/bin/bash
set -e
set -a
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Asterisk"
NAME=amportal
DAEMON=/usr/sbin/\$NAME
test -x \$DAEMON || exit 0
d_start() {
amportal start
}
d_stop() {
amportal stop
}
d_reload() {
amportal restart
}
case "\$1" in
start)
echo -n "Starting \$DESC: \$NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping \$DESC: \$NAME"
d_stop
echo "."
;;
restart|force-reload)
echo -n "Restarting \$DESC: \$NAME"
d_stop
sleep 10
d_start
echo "."
;;
*)
echo "Usage: \$SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
END_STARTUP
chmod 755 /etc/init.d/asterisk
update-rc.d asterisk defaults 90 10
instalace freepbxu
wget http:mirror.freepbx.org/freepbx-${FREEPBX_VERSION}.tar.gz
tar xfz freepbx-${FREEPBX_VERSION}.tar.gz
cd freepbx-${FREEPBX_VERSION}
# nastavení databáze
mysqladmin -u root -p${MYSQL_ROOT_PW} create asterisk
mysqladmin -u root -p${MYSQL_ROOT_PW} create asteriskcdrdb
mysql -u root -p${MYSQL_ROOT_PW} asterisk < SQL/newinstall.sql
mysql -u root -p${MYSQL_ROOT_PW} asteriskcdrdb < SQL/cdr_mysql_table.sql
mysql -u root -p${MYSQL_ROOT_PW} <<-END_PRIVS
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY "${ASTERISK_DB_PW}";
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY "${ASTERISK_DB_PW}";
flush privileges;
END_PRIVS
rekonfigurace php pro freepbx
cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini-orig
sed -i "s/\(upload_max_filesize *= *\)\(.*\)/\120M/" /etc/php5/apache2/php.ini
sed -i "s/\(memory_limit *= *\)\(.*\)/\1100M/" /etc/php5/apache2/php.ini
sed -i "s/\(magic_quotes_gpc *= *\)\(.*\)/\1Off/" /etc/php5/apache2/php.ini
asterisk úprava práv pro asterisk
mkdir /var/run/asterisk
chown asterisk:asterisk /var/run/asterisk
chown asterisk:asterisk -R /etc/asterisk
chown asterisk:asterisk -R /var/lib/asterisk
# chmod a+x /var/lib/asterisk/bin/*
chown asterisk:asterisk -R /var/log/asterisk
chown asterisk:asterisk -R /var/spool/asterisk
chown asterisk:asterisk -R /var/www
sed -i "s/\[directories\](!) .*/[directories]/" /etc/asterisk/asterisk.conf
sed -i "s|astrundir *=> */var/run|astrundir => /var/run/asterisk|" /etc/asterisk/asterisk.conf
instalace freepbx
./install_amp
restart apache web server
/etc/init.d/apache2 restart
loading dahdi ovladačů
/etc/init.d/dahdi start
úprava špatně nastavené cesty k music on hold
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
nastartujeme asterisk amportal
amportal start