Hướng dẫn cài đặt tổng đài FreePBX trên Debian 11
Bài viết này chia sẻ hướng dẫn chi tiết các bước cài đặt tổng đài FreePBX 16, Asterisk 18 trên hệ điều hành Debian 11.
Trong bài viết này mình chia sẻ với anh em hướng dẫn cài đặt tổng đài FreePBX trên Debian. Phiên bản sử dụng trong bài là tổng đài FreePBX 16, Asterisk 18 và Debian 11.
FreePBX là một hệ thống quản lý giao diện đồ họa mã nguồn mở dành cho máy chủ điện thoại IP PBX. Nó giúp người dùng dễ dàng cấu hình và quản lý các hệ thống điện thoại VoIP dựa trên nền tảng Asterisk. FreePBX cung cấp các tính năng như quản lý cuộc gọi, hộp thư thoại, ghi âm cuộc gọi, và nhiều tính năng khác thường thấy trong các hệ thống tổng đài điện thoại hiện đại.
1. Chuẩn bị
Để thực hiện, anh em chuẩn bị cho mình một con máy ảo hoặc VPS chạy hệ điều hành Debian 11.
Bạn nào mới bắt đầu thì có thể đăng kí một tài khoản trên DigitalOcean. Hiện tại có chương trình khuyến mãi tặng $200 dùng trong 60 ngày cho khách mới lần đầu đăng kí.
Cấu hình tối thiểu máy ảo hoặc VPS như sau:
- OS: Debian 11 (v11 (Bullseye), x64 minimal install)
- RAM: 1-2GB
- HDD: 10-20GB
2. Các bước cài đặt
Sau khi SSH truy cập vào server, anh em làm theo các bước bên dưới.
2.1 Chỉnh ngày giờ và cập nhật hệ thống
Đầu tiên cần chỉnh ngày giờ và cập nhật hệ thống cho đúng với timezone hiện tại.
ln -sf /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime
apt update && apt -y upgrade && apt install lsb-release
2.2 Cài đặt các gói service cần thiết
Các gói ban đầu khá quan trọng cho việc cài đặt tổng đài, nên anh em cần cài đúng và đủ để tránh lỗi trong quá trình cài FreePBX ở bước cuối cùng.
Cài đặt PHP
Đây là gói PHP sử dụng. Phiên bản sử dụng là PHP 7.4.
apt -y install curl apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt update && apt -y install php7.4 php7.4-curl php7.4-cli php7.4-mysql php7.4-mbstring php7.4-gd php7.4-xml
Cài đặt các gói phụ thuộc hệ thống
Đây là các gói cần thiết và phụ thuộc ban đầu nên cần được cài sau khi cài PHP.
apt -y install locales sngrep build-essential aptitude openssh-server apache2 mariadb-server mariadb-client bison doxygen flex php-pear curl sox libncurses5-dev libssl-dev libmariadb-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool-bin autoconf git subversion uuid uuid-dev libiksemel-dev tftpd postfix mailutils nano ntp libspandsp-dev libcurl4-openssl-dev libical-dev libneon27-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libsrtp*-dev unixodbc unixodbc-dev python-dev xinetd e2fsprogs dbus sudo xmlstarlet lame ffmpeg dirmngr linux-headers* gnupg2
Cài đặt Node.js
FreePBX sử dụng server backend là Node.js. (Phiên bản Node.js 12.x)
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
apt -y install nodejs
Cài đặt ODBC
Gói driver để hỗ trợ kết nối giữa Asterisk và database MySQL.
cd /usr/src
wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-2.0.19/mariadb-connector-odbc-2.0.19-ga-debian-x86_64.tar.gz
tar -zxvf mariadb-connector-odbc-2.0.19*.tar.gz
cp lib/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/
cat >> /etc/odbcinst.ini << EOF
[MySQL]
Description = ODBC for MariaDB
Driver = libmaodbc.so
FileUsage = 1
EOF
cat >> /etc/odbc.ini << EOF
[MySQL-asteriskcdrdb]
Description = MariaDB connection to 'asteriskcdrdb' database
driver = MySQL
server = localhost
database = asteriskcdrdb
Port = 3306
Socket = /var/run/mysqld/mysqld.sock
option = 3
EOF
Cài đặt MongoDB (Tùy chọn cho XMPP)
Gói mở rộng nếu anh em sử dụng module XMPP trên tổng đài FreePBX.
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
apt update && apt install -y mongodb-org
systemctl enable mongod
2.3 Cài đặt Asterisk
Gói không thể thiếu khi cài đặt tổng đài FreePBX.
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
tar zxvf asterisk-18-current.tar.gz
cd /usr/src/asterisk-18*/
make distclean
cd /usr/src/asterisk-18*/
./contrib/scripts/install_prereq install
./configure --with-jansson-bundled
make menuselect.makeopts
menuselect/menuselect --enable app_macro menuselect.makeopts
adduser asterisk --disabled-password --gecos "Asterisk User"
make && make install && chown -R asterisk. /var/lib/asterisk
2.4 Cài đặt FreePBX
Cuối cùng là cài đặt FreePBX. Anh em cần đảm bảo các gói phía trên không lỗi và tiến hành cài FreePBX.
cd /usr/src
git clone -b release/16.0 --single-branch https://github.com/freepbx/framework.git freepbx
touch /etc/asterisk/modules.conf
cd /usr/src/freepbx
./start_asterisk start
./install -n
fwconsole ma downloadinstall framework core voicemail sipsettings infoservices featurecodeadmin logfiles callrecording cdr dashboard music soundlang recordings conferences pm2
fwconsole chown
fwconsole reload
cat >> /etc/systemd/system/freepbx.service << EOF
[Unit]
Description=Freepbx
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 enable freepbx
2.5 Cấu hình và phân quyền truy cập cho Apache
Sau khi cài đặt xong FreePBX cần phân quyền để truy cập cho Web server.
cat >> /etc/apache2/conf-available/allowoverride.conf << EOF
<Directory /var/www/html>
AllowOverride All
</Directory>
EOF
a2enconf allowoverride
sed -i 's/\(APACHE_RUN_USER=\)\(.*\)/\1asterisk/g' /etc/apache2/envvars
sed -i 's/\(APACHE_RUN_GROUP=\)\(.*\)/\1asterisk/g' /etc/apache2/envvars
chown asterisk. /run/lock/apache2
mv /var/www/html/index.html /var/www/html/index.html.disable
a2enmod rewrite
systemctl restart apache2
systemctl enable apache2
2.6 Cài đặt logs
Để tránh bị full disk thì chúng ta nên tạo và xoá logs định kì cho hệ thống.
cat >> /etc/logrotate.d/asterisk << EOF
/var/spool/mail/asterisk
/var/log/asterisk/full
/var/log/asterisk/dtmf
/var/log/asterisk/fail2ban
/var/log/asterisk/freepbx.log
/var/log/asterisk/freepbx_security.log
/var/log/asterisk/freepbx_debug {
size 50M
missingok
rotate 4
#compress
notifempty
sharedscripts
create 0640 asterisk asterisk
postrotate
/usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null || true
endscript
su root root
}
EOF
2.7 Cài đặt bổ sung khác
Một số cấu hình bổ sung khác cho server như giới hạn memory và file upload.
sed -i 's/memory_limit = .*/memory_limit = 256M/g' /etc/php/7.4/apache2/php.ini
sed -i 's/upload_max_filesize = .*/upload_max_filesize = 20M/g' /etc/php/7.4/apache2/php.ini
systemctl restart apache2
systemctl disable apparmor
systemctl stop apparmor
Sau khi cài đặt xong. Anh em cần khởi động lại server.
Sau đó mở trình duyệt và truy cập: http://yourserverIP
Tiến hành thiết lập một tài khoản đăng nhập và khám phá tổng đài thôi!
3. Tổng kết
Trên đây là toàn bộ quá trình cài đặt tổng đài FreePBX trên Debian. Phiên bản tổng đài FreePBX 16, Asterisk 18 và Debian 11. Chúc các bạn thành công!
Bình luận
Bài viết liên quan
Quản lý Docker toàn diện chỉ với Arcane UI
Khám phá Arcane UI, một công cụ giao diện trực quan và hiện đại giúp bạn quản lý Docker và Docker Compose một cách dễ dàng.
Hướng Dẫn Cài Đặt SonarQube Trên Ubuntu 22.04 Từ A-Z
Bài viết hướng dẫn chi tiết từng bước cách cài đặt SonarQube trên Ubuntu 22.04, bao gồm cài đặt PostgreSQL 15, Java 17 và cấu hình hệ thống tối ưu nhất.
Hướng dẫn cài đặt Postfix làm SMTP Server trên Ubuntu 22.04
Bài viết hướng dẫn chi tiết cách cài đặt và cấu hình Postfix làm SMTP Server trên Ubuntu 22.04, bao gồm các cấu hình cơ bản, bảo mật SASL và chống Spam.