A2Billing源码分析笔记(一)

文件清单

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) 分裂数据
}
  

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
玩过软交换的人都知道! asterBilling 功能/特性: 1. 可对任何基于asterisk的系统进行计费。 2. 实时计费。 3. 支持预付款和后付款。 4. 最大可支持240并发通话。 5. 话机锁定/解锁功能。 6. 话机/话吧/分销商额度限定。 7. 单系统支持多话吧。 8. 单系统支持多分销商。 9. 可分别针对每个用户/话吧/分销商设置费率 10. 支持带额度限定的回拨功能(主叫计费/被叫计费/双方计费) 11. 支持三级计费:分销商计费/话吧计费/用户计费 12. 管理者/代理商/话吧/操作员 四种用户级别 13. 支持费率的在线导入导出 14. 强制结束通话 15. 页面应用部分开放源代码, 便于自定义界面活开发 16. 收益计算 17. 网络式布局 18. 通话信息查询 19. 五通道免费许可 20. 充值信息记录 21. 提供了可以用作电话卡或内部pbx计费的agi脚本 22. 单独分机计费 23. 分机可登陆系统查询通话记录 24. 多语言支持[中英] 25. 收据打印 26. 拨入计费 27. 多模式统计报告 28. 话吧Logo/名称显示 29. 高级报告(支持flash报表) 30. 改进了flash报表 31. 报表页增加了时间段选择的快捷方式 32. CDR 的存档功能 33. 付款方式(现金,信用卡,借记卡,代金券,其它) 34. 收据页结算 35. 根据目标地址搜索费率 36. 会员模块 37. 固定/动态 会员折扣 38. 按时间限制的授权方式 39. 德语支持 40. 接通率,平均通话时长 统计 41. 购入费率提示 42. 无费率禁拨功能,禁止系统外呼叫 43. 主叫通道计费
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值