Pereiti prie pagrindinio turinio

FreePBX 17 ir Asterisk 21 diegimas Debian 12 sistemoje

Šioje pamokoje sužinosite, kaip įdiegti FreePBX 17 su Asterisk 21 švariame Debian 12 VPS serveryje.

FreePBX yra galinga atvirojo kodo grafinė vartotojo sąsaja, skirta valdyti Asterisk, vieną populiariausių atvirojo kodo telefonijos variklių pasaulyje. Naudojant FreePBX kartu su Asterisk, galima sukurti pilnavertę VoIP PBX sistemą su skambučių maršrutizavimu, balso paštu, IVR meniu, konferenciniais skambučiais ir kitomis funkcijomis. Viskas valdoma per interneto naršyklėje pasiekiamą valdymo skydelį.

0. Būtinos sąlygos

Prieš pradėdami įsitikinkite, kad turite:

  1. Naują Debian 12 VPS serverį. Rekomenduojama bent 2 CPU branduoliai ir 2 GB RAM.

  2. Root arba sudo prieigą.

  3. Domeno vardą, nukreiptą į jūsų serverio IP adresą. Tai nėra būtina, bet naudinga norint patogiai pasiekti sistemą per naršyklę ir naudoti SSL sertifikatą.

  4. Bazines Linux komandinės eilutės žinias.

1. Atnaujinkite sistemą

apt update && apt upgrade -y

2. Įdiekite reikalingus paketus

apt -y install build-essential git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev libjansson-dev libxml2-dev uuid-dev default-libmysqlclient-dev htop sngrep lame ffmpeg mpg123 expect vim

3. Įdiekite Apache, MariaDB ir PHP 8.2

FreePBX 17 palaiko tik PHP 8.2 versiją. Jei serveryje naudojama senesnė arba naujesnė PHP versija, ją reikėtų pašalinti ir įdiegti PHP 8.2.

apt-get install -y apache2 mariadb-server mariadb-client bison flex php8.2 php8.2-curl php8.2-cli php8.2-common php8.2-mysql php8.2-gd php8.2-mbstring  php8.2-intl php8.2-xml php-pear sox sqlite3 pkg-config automake libtool autoconf unixodbc-dev uuid libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev odbc-mariadb libical-dev libneon27-dev libsrtp2-dev  libspandsp-dev libtool-bin python-dev-is-python3 unixodbc software-properties-common nodejs npm ipset iptables fail2ban php-soap

4. Įdiekite Asterisk

Atsisiųskite Asterisk išeities kodą ir atlikite kompiliavimą. Kompiliavimas, vykdomas su make komanda, gali užtrukti, todėl palaukite, kol procesas bus baigtas.

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-21-current.tar.gz
tar xvf asterisk-21-current.tar.gz
cd asterisk-21*/
contrib/scripts/get_mp3_source.sh
contrib/scripts/install_prereq install
./configure --libdir=/usr/lib64 --with-pjproject-bundled --with-jansson-bundled
make menuselect
make

Kai kompiliavimas bus baigtas, terminale turėtumėte matyti atitinkamą pranešimą.

Dabar tęskite diegimą.

make install
make samples
make config
ldconfig

Paleiskite Asterisk ir nustatykite, kad jis automatiškai startuotų įjungus serverį:

systemctl enable asterisk
systemctl start asterisk

4.1. Sukurkite asterisk naudotoją ir suteikite reikiamas teises

groupadd asterisk
useradd -r -d /var/lib/asterisk -g asterisk asterisk
usermod -aG audio,dialout asterisk
chown -R asterisk:asterisk /etc/asterisk
chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk:asterisk /usr/lib64/asterisk

sed -i 's|#AST_USER|AST_USER|' /etc/default/asterisk
sed -i 's|#AST_GROUP|AST_GROUP|' /etc/default/asterisk
sed -i 's|;runuser|runuser|' /etc/asterisk/asterisk.conf
sed -i 's|;rungroup|rungroup|' /etc/asterisk/asterisk.conf
echo "/usr/lib64" >> /etc/ld.so.conf.d/x86_64-linux-gnu.conf
ldconfig

4.2. Sukonfigūruokite Apache interneto serverį

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/8.2/apache2/php.ini
sed -i 's/\(^memory_limit = \).*/\1256M/' /etc/php/8.2/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
systemctl restart apache2
rm /var/www/html/index.html

4.3. Sukonfigūruokite 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

5. Įdiekite FreePBX

cd /usr/local/src
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-17.0-latest-EDGE.tgz
tar zxvf freepbx-17.0-latest-EDGE.tgz
cd /usr/local/src/freepbx/
./start_asterisk start
./install -n

Atlikta. Terminale turėtumėte matyti pranešimą "You have successfully installed FreePBX".

6. Prisijunkite prie FreePBX valdymo sąsajos

Atidarykite naršyklę ir eikite šiuo adresu:

http://your-server-ip/admin

Sekite pradinės konfigūracijos vedlio nurodymus, susikurkite administratoriaus paskyrą ir užbaikite sistemos nustatymą.

Ar gavote atsakymą į savo klausimą?