Cài đặt phần mềm tính cước ASTPP trên Debian 8

Hôm nay TEL4VN chia sẻ cách cài đặt phần mềm tính cước ASTPP trên Debian 8. Chúng ta cùng tìm hiểu về ASTPP và cách cài đặt nhé!

1. Giới thiệu #

Trước khi hướng dẫn các bạn về cài đặt phần mềm tính cước ASTPP, thì chúng ta cùng tìm hiểu thêm về ASTPP:

ASTPP là một giải pháp mã nguồn mở để quản lý cước chạy trên nền tảng Freeswitch. Nó hỗ trợ thanh toán trả trước và trả sau với việc đánh giá và kiểm soát cước. ASTPP cũng cung cấp nhiều tính năng khác như gọi điện thoại bằng thẻ, giao diện quản lý, phân cấp đại lý, v.v.

Có 2 phần mềm tính cước miễn cước chạy trên 2 nền tảng khác nhau đó là A2Billing và ASTPP.Cài đặt phần mềm ASTPP

2. Các thông số cần lưu ý #

Chúng ta có các lưu ý khi cài đặt phần mềm tính cước ASTPP. Cấu hình hệ thống với các thông số như sau:

  • Debian v8 (Jessie) x64 minimal
  • ASTPP v3.6
  • Freeswitch v1.6
  • Apache v2.4
  • PHP v7.1
  • MariaDB v10

3. Các bước cài đặt phần mềm ASTPP #

Sau đây là các bước cài đặt phần mền tính cước ASTPP

Bước 1 : Cài các gói cài đặt cần thiết:

apt update && apt upgrade -y && apt install apt -y install git nano dbus sudo apache2 curl sqlite3 haveged lsb-release ghostscript libtiff5-dev libtiff-tools at dirmngr postfix gawk dnsutils openssl ntp libmyodbc unixodbc unixodbc-bin gettext

Bước 2: Cài đặt PHP

Nhớ cài từng bước một để tránh lỗi

apt -y install 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.1 php7.1-gd php7.1-opcache php7.1-cli php7.1-common php7.1-curl php7.1-sqlite3 php7.1-odbc php7.1-mysql php7.1-xml php7.1-mcrypt php7.1-json php7.1-pdo php-pear

Bước 3: Cài đặt ODBC

cd /usr/src
wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.0.3/mariadb-connector-odbc-3.0.3-ga-debian-x86_64.tar.gz
tar -zxvf mariadb-connector-odbc-3.0.3*.tar.gz
cp mariadb-connector-odbc-3.0.3*/lib/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/

Tạo file driver ODBC /etc/odbcinst.ini

Lưu ý: dạng câu lệnh tiếp theo là mở file /etc/odbcinst.ini sau đó thêm đoạn giữa EOF……..EOF, tìm hiểu thêm để biết rõ hơn nhé.

cat >> /etc/odbcinst.ini << EOF
[MySQL]
Description = ODBC for MariaDB
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1  
EOF

Bước 4: Cài đặt MariaDB

# Khi cài đặt sẽ yêu cầu nhập password cho Mysql

# Không được để trống phần này, nếu không sẽ bị lỗi.

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
apt update && apt -y install mariadb-server

Thêm dòng này: sql_mode=” vào dưới dòng [mysqld] trong file /etc/mysql.my.cnf sau đó restart mysql

systemctl restart mariadb

Bước 5:  Tắt Selinux

Kiểm tra trang thái Selinux

sestatus

Nếu trạng thái disabled thì chuyển sang bước tiếp theo nếu là enable thì mở file /etc/selinux/config, đổi thành SELINUX=disabled

Sau đó reboot server

Bước 6: Disable Firewall

systemctl disable firewalld
systemctl disable iptables
systemctl stop firewalld
systemctl stop iptables

Bước 7: Cấu hình Timezone

timedatectl set-timezone Asia/Ho_Chi_Minh

Bước 8: Cài đặt Freeswitch từ package

curl https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add -
echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ $(lsb_release -sc) main" > \
/etc/apt/sources.list.d/freeswitch.list
apt update && apt -y install freeswitch-all freeswitch-all-dbg freeswitch-sounds* freeswitch-music* gdb

Bước 9: Cài đặt ASTPP từ source

cd /usr/src
git clone -b v3.6 https://github.com/iNextrix/ASTPP.git

# Gõ từng lệnh mysql và nhập mật khẩu lúc đầu đã tạo

# Tạo DB astpp, USER là astppuser, PASSWORD là tel4vn

mysql -p -e "CREATE DATABASE astpp CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql -p -e "CREATE USER 'astppuser'@'localhost' IDENTIFIED BY tel4vn;"
mysql -p -e "GRANT ALL PRIVILEGES ON astpp.* TO 'astppuser'@'localhost' WITH GRANT OPTION;"
mysql -p -e "FLUSH PRIVILEGES;"
mysql -p astpp < ASTPP/database/astpp-3.0.sql
mysql -p astpp < ASTPP/database/astpp-upgrade-3.5.sql
mysql -p astpp < ASTPP/database/astpp-upgrade-3.6.sql

ODBC kết nối giữa Freeswitch và Mysql

Lệnh “cat … OEF … OEF” dùng để ghi vào file.

cat >> /etc/odbc.ini << EOF
[ASTPP]
Driver = MySQL
SERVER = 127.0.0.1
DATABASE = astpp
USERNAME = astppuser
PASSWORD = tel4vn
PORT = 3306
OPTION = 67108864
Socket = /run/mysqld/mysqld.sock
threading = 0
charset = utf8
EOF

Test odbc driver

odbcinst -s -q

Test odbc connection

isql -v astpp astppuser 123qwe
quit

Copy and configure Freeswitch files

cd /usr/src
cp -R ASTPP/freeswitch/fs /var/www/html/
cp -R ASTPP/freeswitch/scripts/* /usr/share/freeswitch/scripts/
cp -R ASTPP/freeswitch/sounds/*.wav /usr/share/freeswitch/sounds/en/us/callie/
rm -Rf /etc/freeswitch/dialplan/*
touch /etc/freeswitch/dialplan/astpp.xml
rm -Rf /etc/freeswitch/directory/*
touch /etc/freeswitch/directory/astpp.xml
rm -Rf /etc/freeswitch/sip_profiles/*
touch /etc/freeswitch/sip_profiles/astpp.xml

Copy and configure ASTPP files

cd /usr/src
mkdir -p /var/lib/astpp
cp ASTPP/config/astpp-config.conf /var/lib/astpp/astpp-config.conf
cp ASTPP/config/astpp.lua /var/lib/astpp/astpp.lua

Copy/config web GUI files and reload apache

cp -R ASTPP/web_interface/astpp /var/www/html/
cp ASTPP/web_interface/apache/astpp.conf /etc/apache2/conf-available/astpp.conf
cp ASTPP/web_interface/apache/astpp.conf /etc/apache2/conf-available/fs.conf
sed -i "s#log/httpd#log/apache2#g" /etc/apache2/conf-available/astpp.conf
sed -i "s#log/httpd#log/apache2#g" /etc/apache2/conf-available/fs.conf
sed -i "s#8081#8735#g" /etc/apache2/conf-available/fs.conf
sed -i "s#astpp#fs#g" /etc/apache2/conf-available/fs.conf
mv /var/www/html/astpp/htaccess /var/www/html/astpp/.htaccess
a2enconf astpp
a2enconf fs
systemctl reload apache2

Copy ASTPP specific freeswitch config files

/bin/cp -R ASTPP/freeswitch/conf/autoload_configs/* /etc/freeswitch/autoload_configs/

Cấu hình đường dẫn để liên kết ASTPP và Freeswitch, gõ từng lệnh sed

sed -i "s#/usr/local/freeswitch/#/usr/share/freeswitch/#g" /etc/freeswitch/autoload_configs/lua.conf.xml
sed -i "s#/usr/local/freeswitch/#/usr/share/freeswitch/#g" /etc/freeswitch/autoload_configs/json_cdr.conf.xml
sed -i "s#/usr/local/freeswitch/#/usr/share/freeswitch/#g" /usr/share/freeswitch/scripts/astpp-callingcards.lua
sed -i "s#/usr/local/freeswitch/#/usr/share/freeswitch/#g" /usr/share/freeswitch/scripts/astpp/astpp.lua
sed -i "s#/usr/local/freeswitch/#/usr/share/freeswitch/#g" /usr/share/freeswitch/scripts/astpp/scripts/astpp.xml.lua

Thiết lập cấu hình ASTPP nằm trong thư mục /var/lib/astpp

sed -i "s#\(^dbname\).*#dbname = astpp#" /var/lib/astpp/astpp-config.conf
sed -i "s#\(^dbuser\).*#dbuser = astppuser#" /var/lib/astpp/astpp-config.conf
sed -i "s#\(^dbpass\).*#dbpass = tel4vn#" /var/lib/astpp/astpp-config.conf

Check IP của server:

ifconfig | sed -En 's/127.0.0.*//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'

#Đổi 192.168.1.3 thành IP server của bạn

sed -i "s#\(^base_url\).*#base_url = http://192.168.1.3:8089/#" /var/lib/astpp/astpp-config.conf
sed -i "s#\(^DB_USERNAME\).*#DB_USERNAME = \"astppuser\"#" /var/lib/astpp/astpp.lua
sed -i "s#\(^DB_PASSWD\).*#DB_PASSWD = \"tel4vn\"#" /var/lib/astpp/astpp.lua

Cấu hình crontab

crontab -e

Thêm đoạn bên dưới vào và lưu lại

# Generate Invoice   
0 1 * * * cd /var/www/html/astpp/cron/ && php cron.php GenerateInvoice
# Low balance notification
0 1 * * * cd /var/www/html/astpp/cron/ && php cron.php UpdateBalance
# Low balance notification
0 0 * * * cd /var/www/html/astpp/cron/ && php cron.php LowBalance        
# Update currency rate
0 0 * * * cd /var/www/html/astpp/cron/ && php cron.php CurrencyUpdate
# Email Broadcasting
* * * * * cd /var/www/html/astpp/cron/ && php cron.php BroadcastEmail

Bước 10: Cấu hình Apache

Thêm dòng AllowOverride All vào file .htaccess bằng cách gõ lệnh sau:

cat >> /etc/apache2/conf-available/allowoverride.conf << EOF 
<Directory /var/www/html>
    AllowOverride All
    </Directory>
EOF

Chỉnh sửa file “/etc/apache2/conf-available/astpp.conf

nano /etc/apache2/conf-available/astpp.conf

Đổi các port 8081 thành 8089

a2enconf allowoverride

Thay đổi user/group apache mặc định, tắt index.html, bật mô-đun rewrite

sed -i 's/\(APACHE_RUN_USER=\)\(.*\)/\1freeswitch/g' /etc/apache2/envvars
sed -i 's/\(APACHE_RUN_GROUP=\)\(.*\)/\1freeswitch/g' /etc/apache2/envvars
chown freeswitch. /run/lock/apache2
mv /var/www/html/index.html /var/www/html/index.html.disable
a2enmod rewrite
systemctl restart apache2

Bước 11: Cấp quyền cho các thư mục

# Ownership

chown -R freeswitch. /etc/freeswitch /var/lib/freeswitch \
/var/log/freeswitch /usr/share/freeswitch /var/www/html

# Directory permissions to 770 (u=rwx,g=rwx,o=”)

find /etc/freeswitch -type d -exec chmod 770 {} \;
find /var/lib/freeswitch -type d -exec chmod 770 {} \;
find /var/log/freeswitch -type d -exec chmod 770 {} \;
find /usr/share/freeswitch -type d -exec chmod 770 {} \;
find /var/www/html -type d -exec chmod 770 {} \;

# File permissions to 664 (u=rw,g=rw,o=r)

find /etc/freeswitch -type f -exec chmod 664 {} \;
find /var/lib/freeswitch -type f -exec chmod 664 {} \;
find /var/log/freeswitch -type f -exec chmod 664 {} \;
find /usr/share/freeswitch -type f -exec chmod 664 {} \;
find /var/www/html -type f -exec chmod 664 {} \;

Bước 12: Cấu hình Systemd

nano /etc/systemd/system/freeswitch.service

Thêm đoạn phía dưới vào:

[Unit]
Description=FreeSWITCH
Wants=network-online.target
After=syslog.target network.target network-online.target
After=mariadb.service apache2.service

[Service]
Type=forking
User=freeswitch
WorkingDirectory=/run/freeswitch
PIDFile=/run/freeswitch/freeswitch.pid
EnvironmentFile=-/etc/default/freeswitch
ExecStart=/usr/bin/freeswitch -ncwait -nonat $FREESWITCH_PARAMS
ExecReload=/usr/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

Tạo tập tin để thêm các tham số bổ sung.

cat >> /etc/default/freeswitch << EOF
## Type:                string
## Default:             ""
## Config:              ""
## ServiceRestart:      freeswitch
#
# if not empty: parameters for freeswitch
#
FREESWITCH_PARAMS=""
EOF

Bước 13: Cấu hình php.ini

sed -i "s#short_open_tag = Off#short_open_tag = On#g" /etc/php/7.1/apache2/php.ini
sed -i "s#;cgi.fix_pathinfo=1#cgi.fix_pathinfo=1#g" /etc/php/7.1/apache2/php.ini
sed -i "s/max_execution_time = 30/max_execution_time = 3000/" /etc/php/7.1/apache2/php.ini
sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 20M/" /etc/php/7.1/apache2/php.ini
sed -i "s/post_max_size = 8M/post_max_size = 20M/" /etc/php/7.1/apache2/php.ini
sed -i "s/memory_limit = 128M/memory_limit = 512M/" /etc/php/7.1/apache2/php.ini

Bước 14: Cấu hình firewall

apt -y install firewalld
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --permanent --zone=public --add-service={http,https}
firewall-cmd --permanent --zone=public --add-port={5060,5061,8081}/tcp
firewall-cmd --permanent --zone=public --add-port={5060,5061}/udp
firewall-cmd --permanent --zone=public --add-port=16384-32768/udp
firewall-cmd --reload
firewall-cmd --list-all

Reload và bật các dịch vụ chạy khi khởi động

systemctl daemon-reload
systemctl enable freeswitch
systemctl restart freeswitch
Test Freeswitch console: fs_cli

Nếu lệnh fs_cli không chạy được thì:

nano +4 /etc/freeswitch/autoload_configs/event_socket.conf.xml

Chỉnh sửa dòng như sau và restart freeswitch:

<param name=”listen-ip” value=”127.0.0.1″/>

systemctl restart freeswitch

Mở trình duyệt http://your_IP:8089

username: admin

password: admin

Cài đặt phần mềm ASTPP

Chúc các bạn thành công !!!

Video hướng dẫn cài đặt ASTPP trên Debian 8: Tại đây

Tham khảo khóa học VoIP: Tại đây

Powered by BetterDocs

Để lại bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *