27/02/2024

Cài Đặt Và Cấu Hình Tổng Đài Ảo ASTERISK Và FREEPBX Trên Ubuntu 20

Asterisk là giải pháp điện thoại nguồn mở dành cho cá nhân, doanh nghiệp. Nó chạy qua Internet thay vì đường dây điện thoại đồng và được sử dụng cho thư thoại, ghi âm cuộc gọi, phản hồi bằng giọng nói tương tác và gọi hội nghị.
FreePBX là một ứng dụng dựa trên web, mã nguồn mở, miễn phí, quản lý Asterisk thông qua trình duyệt. Nó cung cấp tất cả các thành phần cần thiết để xây dựng một hệ thống điện thoại. Với FreePBX, bạn có thể tạo tiện ích mở rộng, IVR, đặt quyền người dùng, tường lửa, sao lưu và khôi phục, v.v.
Hướng dẫn này sẽ chỉ cho các bạn cách cài đặt Asterisk và FreePBX trên Ubuntu. Quy trình này tương thích với Ubuntu 20.04 và Ubuntu 22.04.

Step 1 – Install Required Dependencies

apt-get update –y

apt-get install unzip git sox gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev
libxml2-dev libedit-dev uuid-dev subversion -y

Step 2 – Install Asterisk

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz

tar -xvzf asterisk-20-current.tar.gz
cd asterisk-20*
contrib/scripts/get_mp3_source.sh
 contrib/scripts/install_prereq install
./configure
make menuselect


Tiếp tục cài đặt với command sau
make -j2
make install
make samples
make config
ldconfig
  Step 3 – Configure Asterisk
groupadd asterisk
useradd -r -d /var/lib/asterisk -g asterisk asterisk
Phân Quyền với command sau 
chown -R asterisk.asterisk /etc/asterisk
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk.asterisk /usr/lib/asterisk
Cấu hình lại file config của asterisk 
nano /etc/default/asterisk 
AST_USER="asterisk" 
AST_GROUP="asterisk"
nano /etc/asterisk/asterisk.conf
runuser = asterisk ; The user to run as
rungroup = asterisk ; The group to run as.
Khởi động lại service asterisk 
systemctl restart asterisk
systemctl enable asterisk 
Nếu gặp lỗi như dưới đây sau khi khởi động lại 
radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such        file or directory
Thì Fix bằng command dưới đây
sed -i 's";\[radius\]"\[radius\]"g' /etc/asterisk/cdr.conf
sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cdr.conf
sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cel.conf
systemctl start asterisk
asterisk -rvv
Status hiển thị như dưới đây là ok
Asterisk 20.4.0, Copyright (C) 1999 - 2022, Sangoma Technologies Corporation and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under 
certain conditions. Type 'core show license' for details.
=========================================================================
Running as user 'asterisk'
Running under group 'asterisk'
Connected to Asterisk 20.4.0 currently running on ubuntu2004 (pid = 89531)
Exit

Step 4 – Install FreePBX

apt install software-properties-commonadd-apt-repository ppa:ondrej/php -y 

apt install apache2 mariadb-server libapache2-mod-php7.4 php7.4 php-pear php7.4-cgi php7.4-common
php7.4-curl php7.4-mbstring php7.4-gd php7.4-mysql php7.4-bcmath php7.4-zip php7.4-xml php7.4-imap php7.4-json php7.4-snmp

download gói cài đặt freepbx
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-16.0-latest.tgz
tar -xvzf freepbx-16.0-latest.tgz
cd freepbx
apt-get install nodejs npm -y
service mysql start
./install -n
Setting specific permissions...
 30690 [============================]
 Finished setting permissions
 Generating default configurations...
 Finished generating default configurations
You have successfully installed FreePBX
fwconsole ma install pm2
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/7.4/apache2/php.ini
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/7.4/cli/php.ini
a2enmod rewrite
systemctl restart apache2

Truy cập vào web bằng URL http://your-server-ip/admin.

Tới đây  đã cài đặt xong tổng đài freepbx
Chúc các bạn thành công !