You are on page 1of 7

Cài đặt A2billing 1.7.

1 cho Trixbox/Asterisk

A2Billing, kết hợp với Asterisk, tạo nên hệ thống VoIP có tính cước tuyệt vời, mà lại hoàn toàn miễn phí.

Bài viết hướng dẫn cách cài đặt A2Billing mới nhất (1.7.1 - thời điểm bài viết) trên Trixbox. Nếu bạn dùng các
distro khác hoặc cài asterisk bằng tay trên Linux thì cũng có thể tham khảo và thực hiện theo, nhưng sẽ có một
vài điểmn khác biệt nhỏ.

Bản A2Billing 1.7.1 có nhiều cải tiến, và một trong số đó là script đơn giản hóa quá trình cài đặt (tạo database,
cài đặt file âm thanh cho a2b)

Chú ý: hướng dẫn tuy dài, nhưng mỗi bước đều rất đơn giản và dễ thực hiện. Đừng vội mất kiên nhẫn nhé.

CẤU HÌNH HỆ THỐNG:


- Trixbox 2.8.0.4 (Asterisk 1.6) (chạy trên máy ảo Hyper-V)
- A2billing 1.7.1 source
- Database: MySQL
- Linux: CentOS 5

HƯỚNG DẪN CÀI ĐẶT

1. Cài các gói phụ thuộc:

yum -y install perl-DBD-Pg subversion

2. Tải A2Billing

mkdir /usr/local/src/a2billing
cd /usr/local/src/a2billing
wget http ://www.asterisk2billing.org/downloads/A2Billing_1.7.1.tar.gz

3. Giải nén:

tar xvzf A2Billing_1.7.1.tar.gz

4.Sao chép a2billing.conf trong /usr/local/src/a2billing/a2billing.conf vào thư mục /etc/a2billing.conf

cp a2billing.conf /etc/.

5. Tạo database & user cho a2billing

a. Cài đặt phpMyAdmin trong Trixbox Maint -> Packages


b. Trixbox Maint -> System -> phpMyAdmin
Vào tab Privileges, tiến hành tạo user và database như sau:
username: a2b
password: a2bpass
database: a2b
Hình: Tạo user và database cho A2Billing

Lưu ý: sau khi hoàn thành bước này, database a2b sẽ được tạo, nhưng trống trơn.

6. Chỉnh sửa file /etc/a2billing.conf: phù hợp với bước trên như sau:

[database]
hostname = localhost
; port for postgres is 5432 by default
port =
user = a2b
password = a2bpass
dbname = a2b
; dbtype setting can either be mysql or postgres
dbtype = mysql

7. Tạo nội dung cho database a2b

cd /usr/local/src/a2billing/DataBase/mysql-5.x
./install-db.sh

Trả lời các câu hỏi phù hợp với cấu hình trong /etc/a2billing.conf

Install A2Billing DataBase


-----------------------------
Enter Database Name :
a2b
Enter Hostname :
localhost
Enter UserName :
a2b
Enter Password :
a2bpass

Kiểm tra lại bằng phpMyAdmin, bạn sẽ thấy database a2b bây giờ đã có 97 tables hay tương tự.

8. Cài đặt AGI và file âm thanh. Việc cài đặt file âm thanh chỉ đơn giản là chạy file shell như sau:

cp /usr/local/src/a2billing/AGI/a2billing.php /var/lib/asterisk/agi-bin/a2billing.php

/usr/local/src/a2billing/addons/sounds/install_a2b_sounds.sh

Thiết lập ownership cho các file:

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

9. Asterisk Manager
Thêm các dòng sau vào file /etc/asterisk/manager_custom.conf (hay manager.conf nếu không dùng
FreePBX)

[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

10. Tạo giao diện web

Thường thư mục web gốc của apache2 là /var/www/html. Tạo thư mục sau: /var/www/html/a2b

mkdir /var/www/html/a2b

Sau đó, sao chép các thư mục sau vào thư mục a2b mới tạo

a. Common

cp -R /usr/local/src/a2billing/common/ /var/www/html/a2b/.

b. Admin pages
cp -R /usr/local/src/a2billing/admin/ /var/www/html/a2b/.

c. Agent

cp -R /usr/local/src/a2billing/agent/ /var/www/html/a2b/.

d. Customer

cp -R /usr/local/src/a2billing/customer/ /var/www/html/a2b/.

11. Gán quyền - permissions - cho Apache.

Nếu dùng Asterisk Distros, thì group và ownership là asterisk và asterisk. Còn không thì bạn sẽ gán
permission cho phù hợp.

chown -R asterisk:asterisk /var/www/html/a2b/

12. Tạo tác vụ Cron

Thêm các dòng sau vào /var/spool/cron/asterisk

# Automatically added for A2Billing


0 * * * * php /usr/local/src/a2billing/Cronjobs/a2billing_alarm.php
0 12 * * * php /usr/local/src/a2billing/Cronjobs/a2billing_archive_data_cront.php
0 10 21 * * php /usr/local/src/a2billing/Cronjobs/a2billing_autorefill.php
#Batch process at 00:20 each day
20 0 * * * php /usr/local/src/a2billing/Cronjobs/a2billing_batch_process.php
#Bill DID usage at 00:00 each day
0 0 * * * php /usr/local/src/a2billing/Cronjobs/a2billing_bill_diduse.php
#Generate Invoices at 6am everyday
0 6 * * * php /usr/local/src/a2billing/Cronjobs/a2billing_batch_billing.php
#Check if balance below preset value, and email user if so.
1 * * * * php /usr/local/src/a2billing/Cronjobs/a2billing_notify_account.php
#Charge subscriptions at 06:05 on the 1st of each month
0 6 1 * * php /usr/local/src/a2billing/Cronjobs/a2billing_subscription_fee.php
#Update currencies at 01:00 each day
0 1 * * * php /usr/local/src/a2billing/Cronjobs/currencies_update_yahoo.php
” >> /var/spool/cron/asterisk

13. Tạo các thư mục và file cần thiết

mkdir -p /var/lib/a2billing/script
mkdir -p /var/run/a2billing

touch /var/log/asterisk/a2billing-daemon-callback.log
touch /var/log/a2billing-daemon-callback.log
touch /var/log/cront_a2b_alarm.log
touch /var/log/cront_a2b_autorefill.log
touch /var/log/cront_a2b_batch_process.log
touch /var/log/cront_a2b_bill_diduse.log
touch /var/log/cront_a2b_subscription_fee.log
touch /var/log/cront_a2b_currency_update.log
touch /var/log/cront_a2b_invoice.log
touch /var/log/a2billing_paypal.log
touch /var/log/a2billing_epayment.log
touch /var/log/api_ecommerce_request.log
touch /var/log/api_callback_request.log
touch /var/log/a2billing_agi.log

14. Tùy chọn - cài Callback

Sau đây là đoạn script cài đặt call-back cho a2billing. Thay thế LOAD_LOC cho phù hợp với thư mục
chứa source a2billing.

Chú ý: bạn có thể bỏ qua bước này nếu không cần hoặc bổ sung Callback sau.

Callback Daemon installation Script

LOAD_LOC=/usr/local/src/a2billing

yum -y install python-setuptools.noarch


yum -y install MySQL-python
easy_install sqlalchemy

cd $LOAD_LOC/Callback/callback-daemon-py
cp $LOAD_LOC/CallBack/callback-daemon-py/build/lib/callback_daemon/a2b-callback-daemon.rc
/etc/init.d/a2b-callback-daemon
chmod +x /etc/init.d/a2b-callback-daemon

cd $LOAD_LOC/CallBack/callback-daemon-py/
python setup.py build
python setup.py bdist_egg
easy_install dist/callback_daemon-1.0.prod_r1528-py2.4.egg
chkconfig –add a2b-callback-daemon
service a2b-callback-daemon start
chkconfig a2b-callback-daemon on

15. Dialplan

Thêm dialplan sau vào extensions_custom.conf (hoặc extensions.conf nếu không dùng FreePBX)

[a2billing]
; CallingCard application
exten => _X.,1,Answer
exten => _X.,2,Wait(2)
exten => _X.,3,DeadAGI(a2billing.php)
exten => _X.,4,Wait(2)
exten => _X.,5,Hangup

[did]
; CallingCard application
exten => _X.,1,DeadAGI(a2billing.php|1|did)

Xong. Bạn có thể khởi động lại Server nếu muốn.

HƯỚNG DẪN SỬ DỤNG (CƠ BẢN)

Bạn có thể truy cập a2billing qua giao diện web theo các URL sau:

Code:

Admin: http://trixbox-server/a2b/admin
Agent: http://trixbox-server/a2b/agent
Customer: http://trixbox-server/a2b/customer

Đầu tiên đăng nhập vào trang Admin với tài khoản mặc định sau:

user: root
password: changepassword

Hình: Đăng nhập vào A2B Admin

Sau đó, bắt đầu cấu hình tổng quát hệ thống A2Billing theo mô hình sau:
Cấu hình trunk -> Cấu hình callplan -> Cấu hình rate plan -> Thêm rate table vào callplan -> Tạo rates -> Tạo
customer -> Thử nghiệm

Hình: Trang Admin của A2Billing

A2Billing là phần mềm rất mạnh và rất hay, nhưng để hiểu và vận hành được nó thì đòi hỏi nhiều thời gian tìm
tòi và khám phá. Hy vọng qua bài hướng dẫn này, bạn có thể tự dựng a2b nhanh chóng để có thể bắt đầu quá
trình ..vọc.

You might also like