Cài đặt A2Billing trên CentOS 7

Cài đặt A2Billing trên CentOS 7

Cài đặt A2Billing trên CentOS 7, A2Billing là phần mềm quản lý cước tổng đài miễn phí phổ biến nhất. A2Billing chạy trên nền tảng tổng đài là Asterisk , hỗ trợ xử lý cuộc gọi. Với giao diện đơn giản và hỗ trợ đầy đủ các tính năng như lịch sử cuộc gọi, quản lý định tuyến cuộc gọi vào – ra, quản lý cước cho từng người dùng,… Được viết bằng ngôn ngữ PHP, người dùng có thể dể dàng chỉnh sửa theo nhu cầu. Hoặc tự phát triển thêm tính năng và chia sẽ với cộng đồng mã nguồn mở thông qua Github.

Cài đặt A2Billing trên CentOS 7

Các bước cài đặt như sau:

Yêu cầu cơ bản để cài đặt A2Billing trên CentOS 7là A2Billing phải được cài trên tổng đài Asterisk, có thể chạy Asterisk thuần hoặc giao diện như FreePBX, Issabel,… Bài viết này sẽ hướng dẫn cài A2Billing trên FreePBX đã được cài đặt sẵn. Thông tin server và phần mềm cài đặt:

  • CentOS 7
  • Asterisk 13
  • Apache Web Server

Nếu chưa cài đặt FreePBX có thể tham khảo bài viết sau: tại đây

 

Sau khi đã cài đặt xong FreePBX ta tiếp tục các bước sau:

Cài đặt các gói cần thiết

yum -y update && yum -y groupinstall core && yum -y groupinstall base && yum -y install epel-release

yum -y install php-mcrypt php-xml perl-DBD-Pg git

Tải source code A2Billing từ Github

cd /usr/src

git clone https://github.com/Star2Billing/a2billing.git 

Tải và cài đặt composer 

cd /usr/src/a2billing

curl -sS https://getcomposer.org/installer | php

php composer.phar update

php composer.phar install

Tạo mật khẩu cho user root MySQL

mysqladmin -u root password 'tel4vn'

Khởi tạo database A2Billing

cd /usr/src/a2billing

mysql -u root -p < DataBase/mysql-5.x/a2billing-createdb-user.sql

which, after you enter your root password, will create:

Database name: mya2billing
Database user: root
Database user password: tel4vn

Tạo tables và insert các cấu hình

cd /usr/src/a2billing/DataBase/mysql-5.x

./install-db.sh

Nhập Database Name: mya2billing

Nhập Hostname: localhost

Nhập UserName: root

Nhập Password: tel4vn

Kiểm tra lại table trong database

mysql -u root -p mya2billing

show tables;

Hiển thị như sau:

+-------------------------+

| Tables_in_mya2billing    

| +-----------------------+

| cc_agent                |

| cc_agent_commission     |

| cc_agent_signup         |

. . .                     |

| cc_ui_authen            |

| cc_version              |

| cc_voucher              |

+-------------------------+
97 rows in set (0.00 sec)

 

Thoát mysql bằng lệnh: \q

Copy cấu hình a2biling 

cp /usr/src/a2billing/a2billing.conf /etc/

Kiểm tra kết nối database

vi /etc/a2billing.conf

Kiểm tra các thông số kết nối như sau

[database]

hostname = localhost

port = 3306

user = root

password = tel4vn

dbname = mya2billing

dbtype = mysql

Tạo file cấu hình và cấp quyền để sử dụng

touch /etc/asterisk/additional_a2billing_iax.conf

touch /etc/asterisk/additional_a2billing_sip.conf

echo \#include additional_a2billing_sip.conf >> /etc/asterisk/sip_custom.conf

echo \#include additional_a2billing_iax.conf >> /etc/asterisk/iax_custom.conf

chown -Rf asterisk. /etc/asterisk/additional_a2billing_iax.conf

chown -Rf asterisk. /etc/asterisk/additional_a2billing_sip.conf

chmod -R 640 /etc/asterisk

Chạy script cài đặt sounds

cd /usr/src/a2billing/addons/sounds

./install_a2b_sounds.sh

chown -R asterisk:asterisk /var/lib/asterisk/sounds/

Thêm dòng sau vào file: /etc/asterisk/manager_custom.conf (or manager.conf)

Mở file: vi /etc/asterisk/manager_custom.conf

[myasterisk]
secret=mycode
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read=system,call,log,verbose,command,agent,user
write=system,call,log,verbose,command,agent,user

Thêm fwconsole vào blacklist

vi  /etc/asterisk/freepbx_chown.conf

[blacklist]
directory=/var/www/html/a2billing/

Thiết lập source web cho A2Billing

mkdir /var/www/html/a2billing

cp -rf /usr/src/a2billing/admin /var/www/html/a2billing

cp -rf /usr/src/a2billing/agent /var/www/html/a2billing

cp -rf /usr/src/a2billing/customer /var/www/html/a2billing

cp -rf /usr/src/a2billing/common /var/www/html/a2billing

cp -rf /usr/src/a2billing/vendor /var/www/html/a2billing

chown -R asterisk. /var/www/html/a2billing

chmod 755 /var/www/html/a2billing/admin/templates_c

chmod 755 /var/www/html/a2billing/customer/templates_c

chmod 755 /var/www/html/a2billing/agent/templates_c

echo 'Deny from all' > /var/www/html/a2billing/common/.htaccess

echo 'Deny from all' > /var/www/html/a2billing/vendor/.htaccess

Kiểm tra giao diện web, mở browser nhập đường dẫn sau

http://{my-ip-address}/a2billing/admin 

user: root
password: changepassword

Thiết lập kết nối AGI với Asterisk

mkdir /var/lib/asterisk/agi-bin
cd /usr/src/a2billing/AGI               
cp a2billing.php /var/lib/asterisk/agi-bin
cp a2billing_monitoring.php /var/lib/asterisk/agi-bin
chown -R asterisk. /var/lib/asterisk/agi-bin
chmod 755 /var/lib/asterisk/agi-bin/a2billing.php
chmod 755 /var/lib/asterisk/agi-bin/a2billing_monitoring.php
ln -s /var/www/html/a2billing/common/lib /var/lib/asterisk/agi-bin/lib
ln -s /var/www/html/a2billing/vendor /var/lib/asterisk/vendor

Add dialplan

vi /etc/asterisk/extensions_custom.conf

[a2billing]
exten => _X.,1,Progress()
exten => _X.,n,AGI(a2billing.php,1)
exten => _X.,n,Hangup

[a2billing-did]
exten => _X.,1,AGI(a2billing.php,1,did)
exten => _X.,n,Hangup()

[a2billing-out]
exten => _X.,1,AGI(a2billing.php,1)
exten => _X.,n,Hangup()

Thêm custom destinations to FreePBX via FreePBX GUI>Admin>Custom Destinations

Target: a2billing-did,${EXTEN},1 
Description: A2Billing – Inbound

Target: a2billing-out,${EXTEN},1 
Description: A2Billing – Outbound

Tạo inbound route cho tất cả các số

Tạo inbound cho tất cả các số DID, khi gọi vào thì sẽ đi qua A2Billing để quản lý, định tuyến cuộc gọi. Nhập “_.” vào ô DID number, và route đến Custom Destinations

Connectivity > Inbound Routes

Description: Some descriptive name

DID number: _.

Set Destination: Custom Destinations > A2Billing – Inbound

Restart FreePBX để apply các cấu hình

fwconsole restart

Tạo liên kết cho các file Cronjobs

mkdir -p /usr/local/a2billing

cp -R /usr/src/a2billing/Cronjobs /usr/local/a2billing/

ln -sf /var/www/html/a2billing/common/lib /usr/local/a2billing/Cronjobs/lib

chown -R asterisk. /usr/local/a2billing

Thêm cron cho user asterisk

crontab -e -u asterisk

Nhập I để edit, nhập đoạn phía dưới vào và lưu lại

# update the currency table
0 6 * * * php /usr/local/a2billing/Cronjobs/currencies_update_yahoo.php
# manage the monthly services subscription
0 6 1 * * php /usr/local/a2billing/Cronjobs/a2billing_subscription_fee.php
# Check the account of each user and send an email if the balance is below mimimum.
0 * * * * php /usr/local/a2billing/Cronjobs/a2billing_notify_account.php
# Browse all the DID's that are reserved and check if the customer need to pay.
# Bill them or warn them via email that they need to pay in order to keep their DIDs.
0 2 * * * php /usr/local/a2billing/Cronjobs/a2billing_bill_diduse.php
# This script will take care of the recurring service.
0 12 * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_process.php
# Generate invoices and for each user
0 6 * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_billing.php
# Process the autodialer.
*/5 * * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_autodialer.php
# Manage alarms
0 * * * * php /usr/local/a2billing/Cronjobs/a2billing_alarm.php
# Manage archive
0 12 * * * php /usr/local/a2billing/Cronjobs/a2billing_archive_data_cront.php
#Autorefill
0 10 21 * * php /usr/local/a2billing/Cronjobs/a2billing_autorefill.php
15 * * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_cache.php

Tạo file chưa log a2billing

mkdir -p /var/log/a2billing
touch /var/log/a2billing/cront_a2b_alarm.log
touch /var/log/a2billing/cront_a2b_autorefill.log
touch /var/log/a2billing/cront_a2b_batch_process.log
touch /var/log/a2billing/cront_a2b_archive_data.log   
touch /var/log/a2billing/cront_a2b_bill_diduse.log   
touch /var/log/a2billing/cront_a2b_subscription_fee.log   
touch /var/log/a2billing/cront_a2b_currency_update.log   
touch /var/log/a2billing/cront_a2b_invoice.log   
touch /var/log/a2billing/cront_a2b_check_account.log   
touch /var/log/a2billing/a2billing_paypal.log
touch /var/log/a2billing/a2billing_epayment.log
touch /var/log/a2billing/a2billing_api_ecommerce_request.log
touch /var/log/a2billing/a2billing_api_callback_request.log
touch /var/log/a2billing/a2billing_api_card.log
touch /var/log/a2billing/a2billing_agi.log
chown -R asterisk. /var/log/a2billing

Thêm file index.html để bảo mật
touch /var/www/html/a2billing/index.html

Thiết lập kết nối Asterisk Realtime

Kiểm tra module res_config_mysql, nếu chưa có thì xem lại bước “make menuselect” khi cài đặt asterisk

ls /usr/lib64/asterisk/modules/res_config_mysql.so

Show that: /usr/lib64/asterisk/modules/res_config_mysql.so

Chỉnh sửa file extconfig.conf

vi /etc/asterisk/extconfig.conf

Thêm các dòng sau, nếu chưa có

[settings]
iaxusers => mysql,general,cc_iax_buddies
iaxpeers => mysql,general,cc_iax_buddies
sipusers => mysql,general,cc_sip_buddies
sippeers => mysql,general,cc_sip_buddies

Mở file: /etc/asterisk/res_config_mysql.conf và chỉnh sủa như sau

[general]
dbhost = 127.0.0.1
dbname = mya2billing
dbuser = root
dbpass = tel4vn
dbport = 3306

Restart freepbx/asterisk

fwconsole restart 

Kiểm tra kết nối realtime trong command của asterisk.

asterisk -r

From Asterisk CLI> core show config mappings

Should produce:

Config Engine: mysql

===> iaxpeers (db=general, table=cc_iax_buddies)

===> iaxusers (db=general, table=cc_iax_buddies)

===> sippeers (db=general, table=cc_sip_buddies)

===> sipusers (db=general, table=cc_sip_buddies)

Hiển thị như trên là đã kết nối thành công 

Mở trình duyệt web nhập địa chỉ đăng nhập trang admin: 

Cài đặt A2Billing trên CentOS 7

http://{my-ip-address}/a2billing/admin

username: root
password: changepassword

Như vậy là đã cài đặt thành công phần mềm tính cước A2Billing trên CentOS 7

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

Video hướng dẫn:

 

Thông tin khóa VoIP: tại đây


Mọi thắc mắc vui lòng liên hệ:
🌐 Website: https://tel4vn.edu.vn/
🔗 Fanpage: https://www.facebook.com/tel4vn
🏠 Địa chỉ: 82/2/9 Đinh Bộ Lĩnh, P.26, Q.Bình Thạnh, TP.HCM
☎️ SĐT: 028 3622 0868
📩 Email: tuyensinh@tel4vn.com

Để 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 *