Last active
May 2, 2019 15:11
-
-
Save bspavel/cf61d7c6551378b2963f12de60764594 to your computer and use it in GitHub Desktop.
the installer of asterisk and ffmpeg on the raspberry pi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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