FreePBX yra galinga atvirojo kodo grafinė naudotojo sąsaja, skirta valdyti Asterisk, vieną populiariausių atvirojo kodo telefonijos sistemų. Naudojant FreePBX kartu su Asterisk galima sukurti visavertę VoIP PBX sistemą su skambučių nukreipimu, balso paštu, IVR meniu, konferenciniais skambučiais ir kitomis funkcijomis. Visa sistema valdoma per patogią web sąsają.
Reikalavimai
Prieš pradėdami įsitikinkite, kad turite:
Tuščia Debian 12 VPS serverį. Rekomenduojama bent 2 procesoriaus branduoliai ir 2 GB RAM.
Root arba sudo prieigą.
Domeno vardą, nukreiptą į serverio IP adresą. Tai nėra privaloma, tačiau naudinga norint pasiekti sistemą per naršyklę ir naudoti SSL.
Diegimas
1. Sistemos atnaujinimas
Pirmiausia atnaujinkite paketų sąrašą ir serveryje įdiegtus paketus:
apt update && apt upgrade -y
2. Reikalingų paketų diegimas
Įdiekite Asterisk ir FreePBX veikimui bei kompiliavimui 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. Apache, MariaDB ir PHP 8.2 diegimas
FreePBX 17 palaiko tik PHP 8.2 versiją. Jei serveryje naudojama senesnė arba naujesnė PHP versija, ją pašalinkite ir įdiekite 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. Asterisk diegimas
Atsisiųskite Asterisk programinį kodą ir jį sukompiliuokite. Komanda make gali būti vykdoma kurį laiką, 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
Baigus kompiliavimą terminale turėtų būti rodomas pranešimas apie sėkmingai užbaigtą procesą.
Dabar galite tęsti Asterisk diegimą:
make install
make samples
make config
ldconfig
Nustatykite, kad Asterisk būtų automatiškai paleidžiama kartu su sistema, ir paleiskite paslaugą:
systemctl enable asterisk
systemctl start asterisk
4.1. Asterisk naudotojo sukūrimas ir teisių suteikimas
Sukurkite Asterisk grupę, sistemos naudotoją ir suteikite reikalingas katalogų 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. Apache web serverio konfigūravimas
Atnaujinkite PHP ir Apache nustatymus, reikalingus tinkamam FreePBX veikimui:
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. ODBC konfigūravimas
Sukurkite MariaDB skirtą ODBC tvarkyklės konfigūraciją:
cat <<EOF > /etc/odbcinst.ini
[MySQL]
Description = ODBC for MySQL (MariaDB)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
FileUsage = 1
EOF
Tada sukonfigūruokite ryšį su asteriskcdrdb duomenų baze:
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. FreePBX diegimas
Pereikite į /usr/local/src katalogą, atsisiųskite naujausią FreePBX 17 paketą ir jį išskleiskite:
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
Sėkmingai baigus diegimą terminale turėtų būti rodomas pranešimas "You have successfully installed FreePBX".
6. Prisijungimas prie FreePBX web sąsajos
Atidarykite naršyklę ir eikite šiuo adresu:
http://your-server-ip/admin
Vykdykite ekrane pateikiamus pradinės konfigūracijos veiksmus, sukurkite administratoriaus paskyrą ir užbaikite FreePBX nustatymą.


