Chương 5 : CÀI ĐẶT ASTERISK VÀ A2BILLING
4. Cài đặt A2Billing
https://nodeload.github.com/Star2Billing/a2billing/tarball/v1-current
Sau khi download về ta thay đổi tên thành a2billing.tar.gz và copy vào thư mục /usr/src của Server.
Trước khi tiến hành download và cài đặt, ta phải đảm bảo hệ thống Asterisk đã hoạt động tốt. Ví dụ như các cuộc gọi nội bộ, cuộc gọi ra ngoài PSTN, cuộc gọi thông qua nhà cung cấp dịch vụ VoIP,… đã được thiết lập đúng hay chưa. Điều này là hết sức quan trọng, vì bất cứ lỗi nào xảy ra và khi đã cài đặt thêm gói A2Billing thì sẽ trở nên khó hơn cho ta trong việc tìm lỗi cũng như sửa chữa. Và đặc biệt chúng ta sẽ sử dụng lại một số thiết lập trong FreePBX mà ta đã thực hiện ở chương
trước.
Cũng như việc cài đặt FreePBX, ta cần đảm bảo Apache2, PHP, MySQL đều hoạt động tốt trước khi tiến hành cài đặt A2billing. Các bước tiến hành cài đặt A2billing với lệnh như sau:
Chuẩn bị Database cho a2billing
cd /usr/src/a2billing/DataBase/mysql-5.x/
mysql -u root -proot <a2billing-createdb-user.sql
Tiến hành cài đặt cơ sơ dữ liệu cho A2billing bằng cách chạy file script install-db.sh
./install-db.sh
Trong quá trình cài đặt ta cần khai báo các thông tin sau: Enter Database Name: mya2billing
Enter Hostname: localhost
Enter UserName: a2billinguser
Enter Password: a2billing
Sau khi cài đặt xong ta cần truy nhập vào cơ sở dữ liệu vừa tạo để kiểm tra lại
mysql mya2billing -u a2billinguser -pa2billing
Tiếp theo ta tiến hành cài đặt giao diện web A2billing và phân quyền thực thi cho các thư
mục
chmod 777 /var/www/customer/templates_c cp -rf /usr/src/a2billing/agent /var/www/ chmod 777 /var/www/agent/templates_c cp -rf /usr/src/a2billing/admin /var/www/a2billing chmod 777 /var/www/a2billing/templates_c cp -Rf /usr/src/a2billing/common /var/www/
Cài đặt và thực thi các file AGI cho sự hoạt động của A2billing
cp /usr/src/a2billing/AGI/a2billing.php /var/lib/asterisk/agi-bin/
cp /usr/src/a2billing/AGI/a2billing_monitoring.php /var/lib/asterisk/agi-bin/ cp -rf /usr/src/a2billing/common/lib /var/lib/asterisk/agi-bin/
chmod +x /var/lib/asterisk/agi-bin/a2billing.php
chmod +x /var/lib/asterisk/agi-bin/a2billing_monitoring.php chown -R asterisk:asterisk /var/lib/asterisk/agi-bin
Thay đổi các file cấu hình của A2billing bằng các lệnh sau:
llllcp /usr/src/a2billing/a2billing.conf /etc/asterisk chown asterisk:asterisk /etc/asterisk/a2billing.conf ln -sf /etc/asterisk/a2billing.conf /etc/a2billing.conf
sed -i “s/\(port *= *\)\(.*\)/\13306/” /etc/asterisk/a2billing.conf
sed -i “s/\(user *= *\)\(.*\)/\1a2billinguser/” /etc/asterisk/a2billing.conf sed -i “s/\(password *= *\)\(.*\)/\1a2billing/” /etc/asterisk/a2billing.conf sed -i “s/\(dbname *= *\)\(.*\)/\1mya2billing/” /etc/asterisk/a2billing.conf
Tạo vài đường dẫn chứa tập tin MOH mp3 cho A2billing
mkdir -p /var/lib/asterisk/mohmp3/acc_1 mkdir -p /var/lib/asterisk/mohmp3/acc_2 mkdir -p /var/lib/asterisk/mohmp3/acc_3
mkdir -p /var/lib/asterisk/mohmp3/acc_4 mkdir -p /var/lib/asterisk/mohmp3/acc_5 mkdir -p /var/lib/asterisk/mohmp3/acc_6 mkdir -p /var/lib/asterisk/mohmp3/acc_7 mkdir -p /var/lib/asterisk/mohmp3/acc_8 mkdir -p /var/lib/asterisk/mohmp3/acc_9 mkdir -p /var/lib/asterisk/mohmp3/acc_10 chmod 777 /var/lib/asterisk/mohmp3/acc_*
chown -R asterisk:asterisk /var/lib/asterisk/mohmp3/
Cài đặt các tập tin âm thanh hỗ trợ cho A2billing
cd /usr/src/a2billing/addons/sounds chmod +x install_a2b_sounds.sh ./install_a2b_sounds.sh
mkdir -p /var/lib/asterisk/sounds/a2billing chmod +x /var/lib/asterisk/sounds/*
Tạo các tập tin mở rộng liên kết giữa A2billing và Asterisk
cd /etc/asterisk/
touch additional_a2billing_iax.conf touch additional_a2billing_sip.conf touch extensions_a2billing.conf
echo “#include additional_a2billing_sip.conf” >> /etc/asterisk/sip_custom.conf echo “#include additional_a2billing_iax.conf” >> /etc/asterisk/iax_custom.conf echo -e >> /etc/asterisk/extensions_custom.conf
Phân quyền truy cập, thực thi cho các tập tin, thư mục liên quan cho sự truy nhập vào A2billing của user
chmod 777 /etc/asterisk/additional_a2billing_iax.conf chmod 777 /etc/asterisk/additional_a2billing_sip.conf
chown -R asterisk:asterisk /etc/asterisk/additional_a2billing_iax.conf chown -R asterisk:asterisk /etc/asterisk/additional_a2billing_sip.conf chown -R asterisk:asterisk /var/lib/asterisk/agi-bin
chown -R asterisk:asterisk /etc/asterisk/ chown -R asterisk:asterisk /var/www/common chown -R asterisk:asterisk /var/www/a2billing chown -R asterisk:asterisk /var/www/customer chown -R asterisk:asterisk /var/www/agent chown -R asterisk:asterisk /var/lib/asterisk/
Thay đổi và thêm vào tập tin manager.conf các thông tin cần thiết bằng các lệnh sau:
sed -i “s/\(enabled *= *\)\(.*\)/\1yes/” /etc/asterisk/manager.conf echo “ [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 “ >> /etc/asterisk/manager.conf
Nếu muốn cho phép khởi động A2billing từ FreePBX, ta cần tạo một Custom Trunk mới bằng lệnh sau:
echo ‘
[macro-dialout-trunk-predial-hook]
exten => s,1,GotoIf($[”${OUT_${DIAL_TRUNK}:4:4}” = “A2B/”]?custom-freepbx- a2billing,${OUTNUM},1:2) exten => s,2,MacroExit [custom-freepbx-a2billing] exten=> _X.,1,DeadAGI(a2billing.php|${OUT_${DIAL_TRUNK}:8}) exten => _X.,n,Hangup() ‘ >> /etc/asterisk/extensions_custom.conf
Bổ sung thêm một số Context cần thiết để cho A2billing có thể hoạt động được cùng với
Asterisk echo “ [a2billing] exten => _X.,1,Answer exten => _X.,n,Wait(1) exten => _X.,n,AGI(a2billing.php|1) exten => _X.,n,Hangup [a2billing-callback] exten => _X.,1,deadAGI(a2billing.php|1|callback) exten => _X.,n,Hangup [a2billing-cid-callback]
exten => _X.,1,deadAGI(a2billing.php|1|cid-callback|34);last #parameter is the callback area code
exten => _X.,n,Hangup [a2billing-all-callback]
exten => _X.,1,deadAGI(a2billing.php|1|all-callback|34);last #parameter is the callback area code exten => _X.,n,Hangup [a2billing-did] exten => _X.,1,deadAGI(a2billing.php|1|did) exten => _X.,2,Hangup [a2billing-voucher] exten => _X.,1,deadAGI(a2billing.php|1|voucher) exten => _X.,n,Hangup [custom-a2billing-did] exten => _X.,1,deadAGI(a2billing.php|1|did) exten => _X.,2,Hangup [custom-a2billing] exten => _X.,1,deadAGI(a2billing.php|1) exten => _X.,n,Hangup “ >> /etc/asterisk/extensions_a2billing.conf
Tạo các tập tin Log cần thiết trong thư mục /var/log/a2billing
mkdir -p /var/log/a2billing touch /var/log/asterisk/a2billing-daemon-callback.log touch /var/log/a2billing/a2billing-daemon-callback.log 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_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/api_ecommerce_request.log touch /var/log/a2billing/api_callback_request.log touch /var/log/a2billing/a2billing_agi.log
chown asterisk:asterisk /var/log/asterisk/a2billing-daemon-callback.log chown -R asterisk:asterisk /var/log/a2billing
Như thế là cơng việc cài đặtA2billing đã hồn thành. Sau khi cài đặt xong ta vào trình duyệt
web Firefox, đăng nhập vào địa chỉ http://192.168.1.10/a2billing sẽ xuất hiện giao diện Login như
Hình 5.9. Giao diện đang nhập tài khoản A2billing
Lúc này ta sẽ đăng nhập vào giao diện A2billing với Username và Password mặc đinh như sau:
• Username: root
• Password: changepassword Và giao diện cấu hình A2Billing như sau: