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.
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
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