Install Asterisk 16 and FreePBX 15 on Raspberry PI 4
데비안 기준이라 수정할게 좀 있음. 확인하면서 적용하기 바람.
Step-by-step guide
All commands are to be run as the root user, either by directly logging in as root or by using sudo su - .
Start from a base Debian 10 installation. All necessary packages will be installed through the following commands.
Prerequisite recommended OS update
Add the backports repo specifically so that the odbc-mariadb package is available. Then update the OS to current.
- 사전에 타이프 할것
- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC
- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
- echo deb http://ftp.us.debian.org/debian/ buster-backports main > /etc/apt/sources.list.d/backports.list
- echo deb-src http://ftp.us.debian.org/debian/ buster-backports main >> /etc/apt/sources.list.d/backports.list
- apt-get update
- apt-get upgrade
Install all the necessary packages (취소선 그어진 것은 raspbian 10에서 설치 안됨. 삭제하고 실행
- apt-get install -y build-essential linux-headers-*
`uname -r`openssh-server apache2 mariadb-server mariadb-client bison flex php php-curl php-cliphp-pdophp-mysql php-pear php-gd php-mbstring php-intl php-bcmath curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp2-dev libspandsp-dev sudo subversion libtool-bin python-dev unixodbc dirmngr sendmail-bin sendmail asterisk debhelper-compat cmake libmariadb-devodbc-mariadbphp-ldap
Install Node.js (setup_11.x --> setup_12.x 로 바꿀것)
- curl -sL https://deb.nodesource.com/
setup_11.xsetup_12.x | sudo -E bash - - apt-get install -y nodejs
Install this required Pear module
- pear install Console_Getopt
Prepare Asterisk
- systemctl stop asterisk
- systemctl disable asterisk
- cd /etc/asterisk
- mkdir DIST
- mv * DIST
- cp DIST/asterisk.conf .
- sed -i 's/(!)//' asterisk.conf
- touch modules.conf
- touch cdr.conf
Configure Apache web server
- sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/7.3/apache2/php.ini
- sed -i 's/\(^memory_limit = \).*/\1256M/' /etc/php/7.3/apache2/php.ini
- sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
- sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
- a2enmod rewrite
- service apache2 restart
- rm /var/www/html/index.html
Configure ODBC
- cat <<EOF > /etc/odbcinst.ini
[MySQL]
Description = ODBC for MySQL (MariaDB)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
FileUsage = 1
EOF - cat <<EOF > /etc/odbc.ini
[MySQL-asteriskcdrdb]
Description = MySQL connection to ‘asteriskcdrdb’ database
Driver = MySQL
Server = localhost
Database = asteriskcdrdb
Port = 3306
Socket = /var/run/mysqld/mysqld.sock
Option = 3
EOF
Download FFMPEG static build for sound file manipulation
- cd /usr/local/src
- wget "https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz"
- tar xf ffmpeg-release-amd64-static.tar.xz
- cd ffmpeg-4*
- mv ffmpeg /usr/local/bin
Install FreePBX
- cd /usr/local/src
- wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz
- tar zxvf freepbx-15.0-latest.tgz
- cd /usr/local/src/freepbx/
- ./start_asterisk start
- ./install -n
Get the rest of the modules
Only a very basic system is installed at this point. You will probably want to install all the modules on Debian 10 . Alternatively, you can skip this and pick-and-choose the individual modules you want later.
- fwconsole ma installall
Uninstall digium_phones
Broken with PHP 7.3 (April 2020).
- fwconsole ma uninstall digium_phones
Apply the current configuration
- fwconsole reload
Set symlinks to the correct sound files
- cd /usr/share/asterisk
- mv sounds sounds-DIST
- ln -s /var/lib/asterisk/sounds sounds
Perform a restart to load all Asterisk modules that had not yet been configured
- fwconsole restart
Set up systemd (startup script)
- cat <<EOF > /etc/systemd/system/freepbx.service
[Unit]
Description=FreePBX VoIP Server
After=mariadb.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start -q
ExecStop=/usr/sbin/fwconsole stop -q
[Install]
WantedBy=multi-user.target
EOF - systemctl daemon-reload
- systemctl enable freepbx