asterrc 是asterCC软件包中的一个计费脚本,asterrc与astercc进程一起工作,可以为你的asterisk系统提供计费功能。 在’curcdr’中有一些用于计费的字段,它们包括: `credit` : 当前通话分机的实时话费 (根据’myrate’表中的费率计算) `callshopcredit`: 当次通话话吧的实时话费 (rates in table ‘callshoprate’) `resellercredit`: 当次通话代理商的实时话费 (rates in table ‘resellerrate’) `creditlimit`: 如果对当前通话设置了话费限额,当’credit’值达到这个限额值的时候,通话将会被自动挂断 `destination` : 从’myrate’表中读取的目的地信息 `memo` : 根据’myrate’表对当前通话的计费信息 在一个通话期间,asterrc 将实时维护更新上面的字段。此外,在’mycdr’ 表中,也有与上面相同的字段,当一个通话结束后,该通话的最终信息会被存入’mycdr’表中,我们可以通过这个表获得历史通话信息。 在’clid’, ‘accountgroup’,’resellergroup’ 表中也包含了计费相关字段: `curcredit` 当前发生的话费 (作为计费标识) `credit_clid` 分机的话费总计 `credit_group` 组(话吧)的话费总计 `credit_reseller` 代理商的话费总计 下面的段落详细介绍asterrc的工作流程: 假设我们定义了一个费率表:给代理商的费率是每分钟0.1元,代理商给话吧的费率是每分钟0.2元,话吧给最终用户的费率是每分钟0.4元,计费间隔都是60秒,当最终用户拨打一个电话时,astercc得到实时通话信息并存入’curcdr’中,asterrc从’curcdr’中发现这条信息,当接通时间到达第一个60秒时,asterrc会将本条通话信息的’credit’, ‘callshopcredit’, ‘resellercredit’字段分别插入值0.4,0.2,0.1,到了第二个60秒时,asterrc将分别更新’credit’, ‘callshopcredit’, ‘resellercredit’字段的值为0.8, 0.4, 0.2……当到了两分半(150秒)时,客户挂断了电话,此时我们会得到此次通话的最终计费信息’credit’值为1.2,’callshopcredit’值为0.6,’resellercredit’值为0.3。同时,在 clid, accountgroup 和resellergroup表中的计费字段值也会被更新 credit_clid = [...]