紀錄一些在 A2Billing 管理上的技巧
Q:進階計費模式
Ans: A2B 內建一個進階版的計費模式,這預設是關閉的。這模式可用來分次作計費,例如前 XX 秒,費率 A,之後以費率 B 計費。
開啟方式:System Settings > Global List > Select Group: webui > advanced_mode = Yes
進階計費的流程: A 階段 > B 階段 > C 階段 > 標準收費
標準計費
- Selling Rate:
- SellRate Min Duration:
- SellRate Billing Block
A 階段計費
- StepCharge A: 0.00 $,一旦進入 A 階段,就開始收取,類似 connction fee
- Charge A: 3.00 $/分,進入 A 階段後,在 timecharge 期間的費率
- TimeCharge A: 20 秒,定義 A 階段的時間
- Billing Block A: 60 秒,A 階段依照 Charge A 要收取費用,如果是 60 s,費用就是 3/60 * 60 = $3
Q:如何設定 Post-Paid 模式
Ans:post-paid 後付款模式,用戶撥打電話時,系統不會先檢查餘額足不足夠,但在 Customer 裡有個欄位 Credit limit 可對用戶作限制。
TIPs:
* Credit limit 若沒有輸入,post-paid 不會運作。
* 每個帳戶的 balance 會呈現負值,金額為目前所累積的已通話金額。
* 管理員必須手動結算每個帳戶的通話帳單,依據帳戶裡 balance 所顯示的數字(正常為負的)
* 假使帳戶已經有付款,管理員可幫帳戶儲值,方法與 pre-paid 相同。
Q:如何使用 PACKAGE OFFER
Ans:PACKAGE OFFER 可用在優惠方案的計費模式,例如,每週/月免費通話 XX 分鐘,一旦免費的通話時間用完,系統自動恢復正常收費。
其他優惠模式還有:
- 無任何限制的通話模式
- 限制總通話次數,以每月/週計。
免費通話時間的設定方式:必須先設好 CallPlan, RateCard, Rate
A2B Admin >
- PACKAGE OFFER > Add >Add Package
- LABEL: Free-Monthly-10m <自訂義>
- PACKAGE TYPE: Free seconds
- BILLING TYPE: Monthly
- STARTING DAY: 1 <如果 billing type 是 monthly, 這裡可以是 1-31, 其餘以此類推>
- FREE UNITS: 600 <如果 type 是 Free seconds, 這裡單位即是秒,不同的 type, 對應有不同的單位>
- PACKAGE OFFER > Add > Add rate
- RATES > Call Plan > Add Call Plan
- NAME: CP-Free-Monthly <自訂義>
- LC TRPE: <預設即可>
- PACKAGE: Free-Monthly-10m
- RATECARD: <別忘了用編輯將 rate 加入>
- CUSTOMERS > Add::Search > Edit Customer
- Call Plan: CP-Free-Monthly
TIPs:
* 一旦 PACKAGE OFFER 所設定的免費通話時間或次數達到後,系統會自動恢復正常扣除餘額的模式。
* 每個 PACKAGE OFFER 的通話狀況,可在 PACKAGE OFFER > Details 顯示通話資訊。
Q:如果修改網頁的 A2Billing 官方授權宣告文字,會不定時出現警告視窗
Ans:警告視窗內容如下
Licence Violation!
Thank you for using A2Billing. However, we have detected that you have edited the Author’s names, Copyright or licensing information in the A2Billing Management Interface.
The AGPL 3 license under which you are allowed to use A2Billing requires that the original copyright and license must be displayed and kept intact. Without this information being displayed, you do not have a right to use the software.
However, if it is important to you that the Author’s names, Copyright and License information is not displayed, possibly for publicity purposes; then we can offer you additional permissions to use and convey A2Billing, with these items removed, for a fee that will be used to help sponsor the continued development of A2Billing.
For more information, please go to http://www.star2billing.com/licensing.
Yours,
The A2Billing Team
Star2Billing S.L
解決方法如下:以 agent 入口網頁為例,修改 <A2B>/agent/Public/templates/default/main.tpl
<!-- 註解以下這幾行
{if ($LCMODAL > 0)}
<script type="text/javascript">
loadLicenceModal();
</script>
{/if}
-->
關於 A2B 如何檢測網頁的授權宣告是否被修改,相關的檔案有:
- <A2B>/agent/Public/templates/default/main.tpl,最底下的 javascript: loadLicenceModal()。
- <A2B>/common/lib/Misc.php,function check_cp。
- <A2B>/common/lib/admin.defines.php,這一行 define ("LCMODAL", check_cp());
- <A2B>/agent/Public/javascript/jquery/osx.js,用來顯示警示內容的視窗。
Q:為何 Signup URL 不會顯示驗證碼圖片
Ans: 檢查是否已安裝 php-gd 套件。
Q:如何設置 A2B Customer 的 SIP 帳戶作互撥
Ans: 必須決定一個 prefix code 用來作 SIP 帳戶互撥的撥號規則,例如是 666。
- PROVIDERS >
- Providers)
Provider Name: LocalHost - Trunks)
Provider Name: LocalHost
Label: LocalA2B
Remove Prefix: 666
Provider Tech: SIP
Provider IP: %dialingnumber%
- RATES > (假設已經完成 CallPlan & RateCard 的設定)
- RateCard: <自訂,必須包含在 customer 的 CallPlan 內>
- Dial Prefix: 666
- Destination Prefix: 666
- Buying Rate, Buyrate Min Duration, Selling Rate, Sellrate Min Duration.... <依據收費標準來設>
Q:為何 Customer UI 無法顯示 Ratecard
Ans: 請確認以下事項:
- Admin UI > Customer > Customer Group: 請確定這 group 有 RATECARD 權限。
- 檢查 DB Schema 是否包含有 VIEW 'cc_callplan_lcr'。
Q:暫時關閉某個帳號的通話功能
Ans: A2B Admin > CUSTOMERS > 選擇帳戶
STATUS = 所有非 ACTIVE 項目
Q:經銷商(Agent)如何作管理
Ans: 在 A2B 系統,經銷商稱為 Agent,專屬的登入介面位址是 http://123.123.123.123/agent/,注意事項有:
- 管理員為經銷商建立帳號
A2B Admin > AGENTS >Add AGENT
- LOGIN: 網頁登入帳號
- PASSWORD: 登入密碼
- PERMISSION: 操作權限
- ACTIVE:
- BALANCE:
- CALL PLAN USABLE: 可用的 Call Plan
- 經銷商新增 Customer
- CUSTOMER > GROUP 必須指定給 Agent
- Agent 必須開啟這些權限
- VIEW CUSTOMER
- CREATE CUSTOMER
- EDIT CUSTOMER
- DELETE CUSTOMER
- GENERATE CUSTOMER
- 經銷商無法為 Customer 儲值
Q:如何開啟除錯的 log
Ans: A2B Admin > SYSTEM SETTINGS > Global List > Select Group: agi-conf#
verbosity_level = 4 (預設是 0)
logging_level = 4 (預設是 0)
Q:如何重設網頁登入管理者(root)的密碼
登入 DB 後,執行這行 SQL,可以將密碼重設為 changepassword :
reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)Callstack:
at User:alang/Private_Zone/A2Billing_專區/A2Billing_管理技巧
MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException: reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown.
at MindTouch.Deki.Script.Compiler.DekiScriptExpressionEvaluation.Visit (MindTouch.Deki.Script.Expr.DekiScriptVar expr, DekiScriptExpressionEvaluationState state) [0x00000] in <filename unknown>:0
at MindTouch.Deki.Script.Expr.DekiScriptVar.VisitWith[DekiScriptExpressionEvaluationState,Range] (IDekiScriptExpressionVisitor`2 visitor, DekiScriptExpressionEvaluationState state) [0x00000] in <filename unknown>:0
at MindTouch.Deki.Script.Compiler.DekiScriptExpressionEvaluation.Evaluate (MindTouch.Deki.Script.Expr.DekiScriptAccess expr, DekiScriptExpressionEvaluationState state, Boolean evaluateProperties) [0x00000] in <filename unknown>:0
at MindTouch.Deki.Script.Compiler.DekiScriptExpressionEvaluation.Visit (MindTouch.Deki.Script.Expr.DekiScriptAccess expr, DekiScriptExpressionEvaluationState state) [0x00000] in <filename unknown>:0
at MindTouch.Deki.Script.Expr.DekiScriptAccess.VisitWith[DekiScriptExpressionEvaluationState,Range] (IDekiScriptExpressionVisitor`2 visitor, DekiScriptExpressionEvaluationState state) [0x00000] in <filename unknown>:0
at MindTouch.Deki.Script.Compiler.DekiScriptExpressionEvaluation.Visit (MindTouch.Deki.Script.Expr.DekiScriptCall expr, DekiScriptExpressionEvaluationState state) [0x00000] in <filename unknown>:0
at MindTouch.Deki.Script.Expr.DekiScriptCall.VisitWith[DekiScriptExpressionEvaluationState,Range] (IDekiScriptExpressionVisitor`2 visitor, DekiScriptExpressionEvaluationState state) [0x00000] in <filename unknown>:0
at MindTouch.Deki.Script.Compiler.DekiScriptExpressionEvaluation.Visit (MindTouch.Deki.Script.Expr.DekiScriptSequence expr, DekiScriptExpressionEvaluationState state) [0x00000] in <filename unknown>:0
at MindTouch.Deki.Script.Expr.DekiScriptSequence.VisitWith[DekiScriptExpressionEvaluationState,Range] (IDekiScriptExpressionVisitor`2 visitor, DekiScriptExpressionEvaluationState state) [0x00000] in <filename unknown>:0
at MindTouch.Deki.Script.Compiler.DekiScriptExpressionEvaluation.Visit (MindTouch.Deki.Script.Expr.DekiScriptReturnScope expr, DekiScriptExpressionEvaluationState state) [0x00000] in <filename unknown>:0
Q:增加招呼語(Welcome XXX, ...)
Ans: A2B 內建可以設定招呼語的語音檔,這個招呼與會在應用程式啟動後開始播放(如果有啟動多國語音,會先進入語言選擇)。
A2B Admin > SYSTEM SETTINGS > agi-conf#
intro_prompt=welcome
Q:網頁有時會出現 Connection Failed?
Ans: 檢查 MySQL 最大連線數是否已被 active calls 用完,增加一些可以讓網頁程式可用的連線。
Q:為何maximum active calls 始終無法超過 100 以上?
Ans: 請檢查 MySQL 的最大連線數設定,預設是 100。
指令:
#mysqladmin variables -uroot -p | grep max_connections
修改設定:
#vi /etc/my.cnf
...
...
[mysqld]
....
max_connections = 300
存檔後重啟 MySQL 服務。
Q:如果 Customer 那端是另一台 Asterisk 主機,應該如何設定可對接的帳號
Ans: 以 SIP 連結為例,在 A2B Admin > Customer
host = <對方的 asterisk IP>
type = peer
insecure = port,invite
在對方的 Asterisk 主機,以 FreePBX 為例,在 FreePBX > Trunks
Outgoing Settings
Trunk Name = <自訂名稱>
PEER Details =
host= <A2B 的 IP>
type=peer
Incoming Settings
USER context = <空白>
USER details = <空白>
Register String = <空白>
Q:用在 Auto-Dialer 時,如何關掉語音,避免客戶發生假接通情形
Ans: 編輯 agiconf,除了關掉這些語音
use_dnid = yes ; 預設 no, 提示:輸入目的地電話號碼
say_balance_after_auth = no ; 預設 yes, 提示餘額
say_timetocall = no ;預設 yes, 提示剩餘時間
還有這一個
play_audio = no ; 預設 yes, 當號碼不正確時,系統會提示:輸入目的地電話號碼; 要設為 no 時,必須 number_try =1
number_try = 1 ; 預設 3, 撥號失敗時的提示重撥語音的次數
answer_call = no ; 預設 Yes
say_goodbye = no ; 預設 no
play_menulanguage = no ; 預設 no
notenoughcredit_cardnumber = no ; 預設 no
say_rateinitial = no ; 預設 no
cid_enable = no ; 預設 no
cid_askpincode_ifnot_callerid = no ;預設 yes
Q:在 Customer UI > BUY NOW > continue 發生頁面找不到
Ans: 錯誤原因為該 hyperlink 字串有錯誤,修正方法如下:
Admin UI > SYSTEM SETTINGS > Global List
Select Group = epayment_method
HTTP Server Customer = http://your.server.domain/
HTTPS Server Customer = https://your.server.domain/
Q:匯入 rate 時,出現錯誤:File size is greater than allowed limit
1. A2B Admin > SYSTEM SETTINGS > Global List
SELECT GROUP = webui
my_max_file_size_import = 2048000 (2048000 為 2MB)
2. 修改 php.ini
upload_max_filesize = 10M
重啟 Apache 服務
Q:如何限制 SIP 用戶的最大通話數(Incoming Calls)
例如 SIP 用戶的帳戶(username)為 1234567
編輯 /etc/asterisk/sip_custom_post.conf
[1234567](+)
call-limit=5
記得 reload asterisk。
Q:如何限制 Provider > Trunk 的最大通話數(Outgoing Calls)
CURRENT CONNECTIONS = 0 (這兒要設 0)
MAXIMUM CONNECTIONS = 50 (這裡設限制最大通話量)