Skip to content

Instantly share code, notes, and snippets.

@sagmor
Forked from andrius/download-and-install.sh
Last active May 13, 2023 00:25
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sagmor/6437634 to your computer and use it in GitHub Desktop.
Save sagmor/6437634 to your computer and use it in GitHub Desktop.
Script to install Asterisk with Fax support and Adhearsion on Debian/Ubuntu
#!/bin/bash
# function to generate random password, on input requires an argument - lenght of password
genpasswd() {
local l=$1
[ "$l" == "" ] && l=20
tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs
}
# MySQL default root password
MYSQL_ROOT_PASSWORD=`genpasswd 16` # can be replaced by static text password
# Remove MySQL with following commands (copy-paste to shell)
# M=`dpkg -l|grep mysql|awk '{print $2}'|xargs`;apt-get -y purge ${M};rm -rf /etc/mysql;rm -rf /var/lib/mysql
MYSQL_SERVER_VERSION=`apt-cache showpkg mysql-server|grep "Versions:" -A 1|tail --lines 1|awk '{print $1}'`
# tell installer about pre-set MySQL server password
echo "mysql-server-${MYSQL_SERVER_VERSION} mysql-server/root_password password ${MYSQL_ROOT_PASSWORD}" \
| debconf-set-selections
echo "mysql-server-${MYSQL_SERVER_VERSION} mysql-server/root_password_again password ${MYSQL_ROOT_PASSWORD}" \
| debconf-set-selections
# install necessary packages
apt-get update
apt-get upgrade
apt-get -y install build-essential linux-headers-`uname -r` libxml2-dev libncurses-dev libnewt-dev \
openssl libreadline6 libreadline-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev \
libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison libtiff-dev \
libjpeg-progs libjpeg-dev libpng-dev mysql-server libmysqlclient-dev sqlite3 libsqlite3-dev \
wget rsync subversion libpcre3 libpcre3-dev
# create /usr/src if not exists
mkdir -p /usr/src
cd /usr/src
# download SpanDSP (need to support faxing)
wget --continue http://soft-switch.org/downloads/spandsp/spandsp-0.0.6pre21.tgz
# download imagemagick (need to convert faxes)
IMAGEMAGICK_VERSION="6.8.6-9"
wget --continue http://www.imagemagick.org/download/ImageMagick-${IMAGEMAGICK_VERSION}.tar.gz
# download asterisk PBX
ASTERISK_VERSION="11.5.1"
wget --continue http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-${ASTERISK_VERSION}.tar.gz
# unpack downloaded packages
tar -zxf spandsp-0.0.6pre21.tgz
tar -zxf ImageMagick-${IMAGEMAGICK_VERSION}.tar.gz
tar -zxf asterisk-${ASTERISK_VERSION}.tar.gz
# dowlnoad asterisk add-ons
cd asterisk-${ASTERISK_VERSION}
./contrib/scripts/get_ilbc_source.sh
./contrib/scripts/get_mp3_source.sh
# install imagemagick
cd ../ImageMagick-${IMAGEMAGICK_VERSION}
./configure && make all && make install
# install spandsp
cd ../spandsp-0.0.6
./configure && make all && make install
# install asterisk PBX
cd ../asterisk-${ASTERISK_VERSION}
./configure && make all && make install && make samples && make config && make install-logrotate
# install asterisk utilities
cp ./contrib/scripts/astcli /usr/local/bin/
# Automate asterisk service to run on startup.
update-rc.d asterisk defaults
# install rbenv and ruby
mkdir /usr/local
cd /usr/local
git clone git://github.com/sstephenson/rbenv.git
echo 'export PATH="/usr/local/rbenv/bin:$PATH"' >> /etc/bash.bashrc
echo 'eval "$(rbenv init -)"' >> /etc/bash.bashrc
export PATH="/usr/local/rbenv/bin:$PATH"
eval "$(rbenv init -)"
mkdir -p /usr/local/rbenv/plugins
cd /usr/local/rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git
RUBY_VERSION="1.9.3-p448"
rbenv install ${RUBY_VERSION}
rbenv rehash
rbenv global ${RUBY_VERSION}
gem install --no-rdoc --no-ri bundler sqlite3 mysql \
adhearsion adhearsion-activerecord adhearsion-asterisk adhearsion-drb adhearsion-rails adhearsion-xmpp
echo -e "\n\n\n\n"
echo "**************************************************************************************"
echo " INSTALLATION DONE"
echo " YOUR ROOT MYSQL PASSWORD IS ${MYSQL_ROOT_PASSWORD}"
echo " SAVE IT IN SAFE PLACE :)"
echo "**************************************************************************************"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment