A2Billing 的PHP程式檔說明

    內容表格
    沒有標頭

    版本為 07:41, 13 Jan 2025

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    本文作者:liuyuquan

    a2billing.php         關鍵程序,直接在extensions中調用

    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類實現

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

    類實現

    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) 分裂數據

    }

    Powered by MindTouch Core