Skip to content

Instantly share code, notes, and snippets.

@bspavel
Last active May 2, 2019 15:11
Show Gist options
  • Save bspavel/cf61d7c6551378b2963f12de60764594 to your computer and use it in GitHub Desktop.
Save bspavel/cf61d7c6551378b2963f12de60764594 to your computer and use it in GitHub Desktop.
the installer of asterisk and ffmpeg on the raspberry pi
#!/bin/bash
#https://codernote.ru/linux-mint/mysql-odbc-v-linux-mint/
#http://morituri.co.nf/raspberry-pi/how-to-compile-ffmpeg-on-a-raspberry-pi-with-x264-mp3-and-aac-encoding/
#https://wiki.asterisk.org/wiki/display/AST/Using+Menuselect+to+Select+Asterisk+Options
#https://stackoverflow.com/questions/45824220/how-to-run-menuselect-menuselect-command-via-bash-script
#http://forums.asterisk.org/viewtopic.php?f=1&t=77292
#https://app.assembla.com/wiki/show/portaudio/Platforms_RaspberryPi
if [ "$(whoami)" != "root" ]; then
echo "Run script as ROOT please. (sudo !!!)"
exit
fi
sudo apt-get update
sudo apt-get -y upgrade
sudo rpi-update
sudo apt-get install -y git vim mc yasm cmake zip unzip gcc make g++ libqt4-dev kdelibs5-dev libsdl1.2-dev \
libsdl-image1.2-dev libtheora-dev libschroedinger-dev libfaad-dev libgsm1-dev libopencore-amrnb-dev \
libopencore-amrwb-dev libsamplerate0-dev libjack-dev libsox-dev ladspa-sdk swh-plugins libmad0-dev libpango1.0-dev \
libgsm1 libgsm1-dev libvorbis-dev libvorbis0a libvorbisenc2 chkconfig libpthread-stubs0-dev \
mysql-client default-libmysqlclient-dev build-essential vim mlocate hgsvn libssl-dev \
libtiff5-dev libsqlite3-dev subversion libnewt-dev libuuid1 \
liburiparser1 libncurses5-dev libjansson-dev libogg-dev libspandsp-dev libjansson4 uuid-dev \
mime-construct libsrtp0-dev mysql-server sqlite3 libsqlite3-dev unixodbc-dev libedit-dev \
curl libcurl4-openssl-dev
ldconfig
echo "deb http://www.deb-multimedia.org/ wheezy main non-free">>/etc/apt/sources.list
sudo apt-get install debian-keyring
sudo apt-get update
gpg --keyserver pgp.mit.edu --recv-keys 1F41B907
gpg --armor --export 1F41B907 | apt-key add -
sudo apt-get update
sudo apt-get install -y libfaac-dev
#aptitude install unixodbc-dev libmyodbc
ldconfig
#ffmpeg
sudo apt-get update
sudo apt-key update
sudo apt-get dist-upgrade
#sudo dpkg --configure -a
#sudo apt-get install -f
sudo apt-get install -y --allow-unauthenticated libxml2 libxslt1-dev libxml2-dev \
pkg-config autoconf automake libtool yasm \
libx264-dev libx265-dev libmp3lame-dev
mkdir -p /usr/src/ffmpegsrc/
cd /usr/src/ffmpegsrc/
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
git clone https://github.com/mstorsjo/fdk-aac.git ffmpeg/fdk-aac
cd /usr/src/ffmpegsrc/ffmpeg/fdk-aac
./autogen.sh
./configure --enable-shared --enable-static
sudo make -j4
sudo make install
sudo ldconfig
cd /usr/src/ffmpegsrc/ffmpeg
./configure --enable-libx265 --enable-libx264 --enable-gpl --enable-libmp3lame --enable-libfdk-aac --enable-nonfree
sudo make -j4
sudo make install
ffmpeg -version
#--------------------------------
mkdir -p /usr/src/asterisksrc/
#speex
cd /usr/src/asterisksrc/
sudo wget https://ftp.osuosl.org/pub/xiph/releases/speex/speex-1.2.0.tar.gz
sudo tar xvf speex-1.2.0.tar.gz
sudo rm -f speex-1.2.0.tar.gz
cd speex-1.2.0
sudo ./configure
sudo make
sudo make install
#--------------------------------
#####################################
#dahdi
#cd /usr/src/asterisksrc/
#wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
#tar -zxf dahdi-linux-*.tar.gz
#cd /usr/src/asterisksrc/dahdi-linux-*/
#make all
#make install
#make config
#Libpri
#cd /usr/src/asterisksrc/
#wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
#tar -zxf libpri-*.tar.gz
#cd /usr/src/asterisksrc/libpri-*/
#make
#make install
#####################################
#asterisk
cd /usr/src/asterisksrc/
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
tar -zxf asterisk-*.tar.gz
cd /usr/src/asterisksrc/asterisk-*/
apt-get install -y libjansson-dev
ldconfig
./configure \
--with-jansson-bundled \
--with-portaudio=/usr/local/lib \
--with-ssl \
--with-crypto --with-srtp \
--with-jansson-bundled --with-curl \
--with-speex=/usr/src/asterisksrc/speex-1.2.0
make menuselect
make
sudo ./contrib/scripts/get_mp3_source.sh
make install
make samples && make progdocs && make config
chkconfig asterisk on
adduser ast
sudo ldconfig
iptables -L
iptables -F
chown -R ast:ast /etc/asterisk/
chown -R ast:ast /usr/lib/asterisk/
chown -R ast:ast /var/lib/asterisk/
chown -R ast:ast /var/spool/asterisk/
chown -R ast:ast /var/log/asterisk/
chown -R ast:ast /var/run/asterisk/
#mcedit /etc/asterisk/asterisk.conf
asterisk –cvvvvvT
#logrotate of asterisk
echo "/var/log/asterisk/messages /var/log/asterisk/*log {
missingok
notifempty
rotate 12
weekly
create 0640 root root
postrotate
/usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null
endscript
}">>/etc/logrotate.d/asterisk
#logger of asterisk
sed -i 's/^;dateformat=%F %T
/dateformat=%F %T %Z/' /etc/asterisk/logger.conf
#verbosity of asterisk
sed -i 's/^;verbose = 3
/verbose = 3
/' /etc/asterisk/asterisk.conf
#cdr
echo "[global]
hostname=localhost
dbname=asterisk
table=cdr
password=letmein
user=cdruser">/etc/asterisk/cdr_mysql.conf
sudo mysql
create database asterisk;
use asterisk;
CREATE TABLE cdr (
sequence int(10) unsigned NOT NULL AUTO_INCREMENT,
start datetime NOT NULL default '0000-00-00 00:00:00',
calldate datetime NOT NULL default '0000-00-00 00:00:00',
clid varchar(80) NOT NULL default '',
src varchar(80) NOT NULL default '',
dst varchar(80) NOT NULL default '',
dcontext varchar(80) NOT NULL default '',
channel varchar(80) NOT NULL default '',
dstchannel varchar(80) NOT NULL default '',
lastapp varchar(80) NOT NULL default '',
lastdata varchar(80) NOT NULL default '',
duration int(11) NOT NULL default '0',
billsec int(11) NOT NULL default '0',
disposition varchar(45) NOT NULL default '',
amaflags int(11) NOT NULL default '0',
accountcode varchar(20) NOT NULL default '',
uniqueid varchar(32) NOT NULL default '',
userfield varchar(255) NOT NULL default '',
PRIMARY KEY (sequence)
);
GRANT ALL ON *.* to cdruser@localhost identified by 'letmein';
flush privileges;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment