A2Billing 的PHP程式檔說明

    本文作者:liuyuquan

    a2billing.php

    主程式,直接在 extensions 呼叫。

    a2billing.php|參數1|參數2| 

    • 參數1 - idconfig=1 決定使用a2billing.conf中的agi_conf1還是agi_conf2.....
    • 參數2 - mode=standard 撥號模式
    • 參數3 - areacode

     

    libs_a2billing/Class.A2Billing.php   A2Billing類的實現,主要是業務計費與AGI的接口
    libs_a2billing/Misc.php              常用函數
    libs_a2billing/Class.RateEngine.php  RateEngine類的實現,實現費率的加載、查詢、轉換以及通話計費功能
    libs_a2billing/phpagi_2_14phpagi-asmanger.php   AGI_AsteriskManager類實現,phpagi管理
    libs_a2billing/phpagi_2_14phpagi.php            AGI類實現,php與AGI的接口
    libs_a2billing/db_php_lib/Class.Table.php       Table類實現 

     

    Class A2Billing {}

    A2Billing() 

    Reinit ()  重置(清空)類私有變量

    conlog($str, $vbl=1) 輸出信息到控制台

    debug( $debug, $agi, $file, $line, $buffer_debug)  輸出信息到控制台,並且寫入日誌文件,a2billing.conf[agi-conf]debug決定是否輸出到控制台

    write_log($output, $tobuffer = 1, $line_file_info = '') (a2billing.conf|debugshell決定是否寫日誌文件) 日誌文件默認在 /tmp/a2biling.log 

    set_dbhandler ($DBHandle) 設置數據庫操作句柄,程序中沒有使用。

    set_instance_table ($instance_table) 為class.Table實例

    load_conf( &$agi, $config=NULL, $webui=0, $idconfig=1, $optconfig=array())  加載/etc/asterisk/a2billing.conf

    play_menulanguage ($agi) 如果設置了a2billiing.conf|play_menulanguage,播放語言選擇語音,如果沒有設置play_menulanguage而設置了force_language,採用force_language設置的語言

    get_agi_request_parameter($agi)  獲取AGI送過來的參數,主要包括agi_callerid、agi_channel、agi_uniqueid、agi_accountcode、agi_extension

    isolate_cid()  去掉主叫號碼前後的'<'、'>'  callingcard_acct_start_inuse($agi, $inuse)  設置卡正在使用的標誌

    callingcard_ivr_authorize($agi, &$RateEngine, $try_num) 授權,如果a2billiing.conf|use_dnid等於1(默認為0),直接使用用戶所撥號碼,則提示輸入被叫號碼,取得號碼後如果是速撥號碼就查詢相應的正式號碼。如果輸入'*0',播放balance。根據被叫號碼查詢費率組。播放可以撥打的時間。

    call_sip_iax_buddy($agi, &$RateEngine, $try_num) 判斷呼叫號碼是否在cc_sip_buddies和cc_iax_buddies中,如果存在,免費通話??。如果設置了a2billing|record_call,則錄音。通話完成後記錄通話到cc_call表。

    call_did($agi, &$RateEngine, $listdestination)  直撥電話,錄音,實時記錄通話記錄

    fct_say_balance ($agi, $credit, $fromvoucher = 0)  播放賬戶餘額

    fct_say_rate ($agi, $rate)  播放費率,每分鐘多少錢

    refill_card_with_voucher ($agi, $try_num)  voucher refill card

    MDP()  生成卡號

    apply_rules ($phonenumber)  除去a2billing.conf|international_prefixes

    callingcard_cid_sanitize($agi) 獲取設置的對外公佈號碼

    callingcard_auto_setcallerid($agi)

    callingcard_ivr_authenticate($agi) 驗證卡,負責函數

    callingcard_ivr_authenticate_light (&$error_msg)

    DbConnect()  連接數據庫

    DbDisconnect()  斷開數據庫

    splitable_data ($splitable_value) 分裂數據

    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core