#!/bin/bash # # This script to install the Dahdi drivers, Asterisk and FreePBX # on a new install of ubuntu 9.04 (Jaunty Jackalope). # # Must be run with superuser privileges. # # Includes known required fixes and patches from the 9.04 install. # There is no error checking here, but it is known to work on a base # install as of 18 Ago 09, with Ubuntu 9.04 and downloaded versions of: # asterisk-1.6.0.13 (or other 1.6 current) # asterisk-addons-1.6.0.3 (or other 1.6 current) # freepbx-2.5.1 # libpri-1.4.10.1 # dahdi-linux-2.2.0.2 (or current) # dahdi-tools-2.2.0 (or current) # # script version version 1.2 released at 18 Ago 09 # Comments and suggestions very welcome. # # Updates, and tips can be found at: # http://wiki.ubuntu.com/AsteriskOnUbuntu/ # # Good Luck! # # Asterisk On Ubuntu Team # Peter N. Steinmetz (ndoc2@steinmetz.org) # Duda Nogueira (dudanogueira@ubuntu.com) # # Changelog: # 1.2 - Added mpg123 and php5-curl as dependency # Added link to fix music on hold (moh) # Replaced zaptel by dahdi # 1.1 - First release # definitions of items to possibly change export MYSQL_ROOT_PW=sql123 export FREEPBX_VERSION=2.5.1 export ASTERISK_DB_PW=amp109 export IP_ADDRESS=192.168.1.100 # ensure package directory up to date and system upgraded apt-get -y update apt-get -y upgrade # retrieve utilities and set debconf to noninteractive front-end apt-get -y install debconf-utils debconf-set-selections < /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 # download and unpack freepbx wget http://superb-east.dl.sourceforge.net/sourceforge/amportal/freepbx-${FREEPBX_VERSION}.tar.gz tar xfz freepbx-${FREEPBX_VERSION}.tar.gz # configure freepbx cd freepbx-${FREEPBX_VERSION} # setup databases for freepbx use 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 # reconfigure php for 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 # fix up directory use and permissions for 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 # start asterisk ./start_asterisk start # configure amportal cp amportal.conf /etc/amportal.conf sed -i "s/# \(AMPDBUSER=asteriskuser\) */\1/" /etc/amportal.conf sed -i "s/# \(AMPDBPASS=\).*/\1${ASTERISK_DB_PW}/" /etc/amportal.conf sed -i "s|\(AMPWEBROOT=\)/var/www/html|\1/var/www|" /etc/amportal.conf sed -i "s|\(FOPWEBROOT=\)/var/www/html/panel|\1/var/www/panel|" /etc/amportal.conf sed -i "/#AMPWEBADDRESS=192.168.1.101/d" /etc/amportal.conf sed -i "s/AMPWEBADDRESS=/AMPWEBADDRESS=${IP_ADDRESS}/" /etc/amportal.conf #clear # install amp ./install_amp # start apache web server /etc/init.d/apache2 restart # load up dahdi drivers /etc/init.d/dahdi start # freepbx/asterisk points to other direction # when searching for music on hold, let's fix it! ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3 # start amportal amportal start clear # voila! echo "#####################################################" echo " " echo " Now, point your browser to:" echo " `${IP_ADDRESS}`/admin" echo " Also, check: http://wiki.ubuntu.com/AsteriskOnUbuntu" echo " to learn how to fine tune you PBX!" echo " " echo "bye! Ubuntu Asterisk Team!"