为什么能看到正在进行的通话但是在窗口里看不到历史记录?
如何解决在话吧窗口中看不到通话记录的问题
1.升级数据库 将astercc的zip包解压缩 进入“sql”目录 0.12版本你应该会看到如下文件: astercc0.1b-0.1.sql astercc0.1-0.11.sql astercc0.11-0.12b.sql astercc0.12b-0.12.sql astercc.sql 加入你现在使用的版本是0.1b, 那么你需要依次执行 astercc0.1b-0.1.sql, astercc0.1-0.11.sql, astercc0.11-0.12b.sql, astercc0.12b-0.12.sql 这样你就升级到0.12的数据库了 执行方法可以为 mysql -uyouruser -pyourpass astercc < astercc0.1b-0.1.sql youruser: 你的数据库用户名 yourpass: 你的数据库密码 astercc: astercc使用的数据库名称 2. 停掉astercc的进程 /opt/asterisk/scripts/astercc/asterccd stop 3. 将新版本的网页和进程文件拷贝相应的目录 4. 更新配置文件 配置文件包括 astercc.conf, asterbilling.conf.php, astercrm.conf.php 5. 启动astercc进程 /opt/asterisk/scripts/astercc/asterccd start 6. 登入检查是否已经是新版本
在新一版本的asterbilling中 我们提供了一个新功能, 挡手动添加费率的时候你可以看到购买时的费率。 例如系统管理员为代理商设置了三条销售费率 default 0.2 对所有代理商 0086 0.25 对代理商: reseller1 00852 0.3 对所有代理商 然后代理商 reseller1 登入 然后要给他下面的话吧设置费率 1. 先加入一条到北美的费率, 号码前缀是001, 在你输入001的时候 在输入框后面会给出针对这个前缀的购买费率(我们在代理商费率中没有针对001的费率, 所以购买时的费率就是默认费率 ‘default’ ) 2. 加入一条到中国的费率, 前缀为0086, 在输入框后同样会给出购买费率 3. 再加入一条到香港的, 前缀为 00852 同样, 当组管理员添加销售给客户的费率时, 也可以看到他从分销商那里购买时的费率
有些时候,当我们到通话记录页面中去查看代理商、话吧或分机的通话记录时,发现里面没有任何记录或是缺少了一些记录,但是检查数据库会发现,实际这些记录都是在’mycdr’表中存在的,但是为什么在astterBilling 界面中看不到呢? 原因 1: historyCdr 的问题 到asterBilling 主目录,检查你的 asterbilling.conf.php 配置文件中的‘useHistoryCdr’参数: 默认设置为 “useHistoryCdr = 1″,所以asterbilling 通话记录页会到“historycdr” 表中获取数据,但是 astercc 过程只会将数据插入“mycdr”表中,直到对记录进行“checkout” 操作(分机窗口或报告中),记录才会被转移到“historycdr”表中, 所以如果你发现在通话记录页面中缺少数据,你可以将设置“useHistoryCdr = 0″ 或是记录进行“checkout”操作。 Reason 2: 分机设置问题 虽然astercc进程会将所有通话记录插入到数据库中,但是不是所有的记录都会被计费,只有你在asterBiling中设置过的分机才会被计费。所以如果你看到数据表“mycdr”的记录中,字段 “resellerid” 和 “groupid” 是 -1的话,请在asterBilling中检查你的“分机”设置。
在astercc 进程的配置文件astercc.conf中,有一些参数,我们可以通过改变它们来获取更高的对asterisk计费的性能。 请注意:你修改配置文件后,你需要重启asterrc进程以便重新载入新参数。 refreshrate = 60 refreshrate 这个参数定义了asterrc去数据中重新载入数据的间隔时间(秒),当你修改了asterBilling很多设置的时候,如:费率、分机等等,则你需要使用这个参数以便让asterrc更及时的读取新数据。如果你的系统稳定运营,不再做什么修改,则你可以将这个参数设置为’refreshrate = -1′,那么asterrc只会在每次重启的时候将数据载入,而不会在进行期间不断的去连接数据库重新载入数据。 refreshlock = 30 定义astercclock每间隔多少秒去数据库读取一次数据,以则锁定或解锁分机、组及代理商。 calculateallcdr = no 当将此参数设置为’yes’时,asterrc将mycdr表中所有通话记录进行重新计算,包括groupid =-1 or resellerid = -1的记录,这个功能一般在你需要计算包括之前未计费的通话记录在内的所有通话的费用时使用。 calculateoldcdr = no 此参数设置为’yes’时,asterrc将重新计算mycdr中所有的记录。一般在你需要计算历史通话记录时使用,主要可能因为你改变了通话费率,所以想重置所用账户的额度。 callbackbill = src 在使用回拨功能时: ; src: 只对主叫计费 ; dst: 只对被叫计费 ; both: 对双方计费 removeNonSysCDR = 0 ; 控制asterrc是否清除非系统用户(resellerid = -1 or groupid = -1)的通话记录。’0′为不清除;’1′为清除。 removeNoAnswerCDR = 0 ; [...]
a2billing 是一个被广泛应用的计费系统,它与asterBilling 有什么区别呢? 系统工作原理: a2billing 通过AGI与astersisk结合工作,每个电话都需要要经过a2billing.agi进行处理,所以你需要修改你的asterisk的拨号路由,将每个通话送入a2billing.agi进行处理,当然你需要将a2billing的脚本放入你的asterisk服务器中。 asterbilling 作为一个运行在linux中的守护进程, 由TCP协议承载通过AMI连接asterisk,你不需要对你的asterisk做任何修改,就可以用asaterbilling 进行计费。甚至asterBilling可以与a2billing系统一起工作。 许可 & 费用: a2billing: 100% 开源,完全免费。 asterbilling: web脚本开源,提供五个免费并发通道许可,如果需要更多,则要购买许可。 性能: a2billing: 大概每单台服务器能支持100个并发?我还没有具体测试过… asterbilling: 经测试的可超过 240个并发,还没有测试过更大的并发。 最佳应用: a2billing: 电话卡,回拨或话务批发方案。 asterbilling: 对嵌入式astiersk系统计费, pbx (如所有基于 freepbx 的系统), 话吧, 集中式连锁话吧方案,多级计费。 其它方面: a2billing: openser asterbilling: 实时计费,代理商/话吧/客户 三级计费
在asterBilling中有三种费率表,代理商费率、话吧费率和用户费率。 代理商费率:admin出售给代理商的费率。 话吧费率 (组费率): 代理商出售给话吧(组)的费率。 用户费率:话吧出售给客户的费率。 asterBilling 中的费率是可以被继承的,例如,有两条记录在 resellerrate表中: dialpreifx = 0086 number length = 0 connect charge = 0.2 init block = 60 rate = 0.1 billing block = 60 resellerid = 0 dialpreifx = 0049 number length = 0 connect charge = 0.4 init block = 60 rate = 0.4 billing block = [...]
asterBilling 是对asterisk进行实时计费的软件,通过asterBilling,你可以很容易的基于asterisk建立集中管理分布运营的连连锁话。 asterBilling 集中式话吧方案的特性: 代理商,话吧,客户 三级计费 全部功能基于web页面 高性能 适用于所有基于asterisk的系统 在这里,我们简单介绍一下如何就asterisk和asterbilling建立一个集中式话吧。 1. 安装asterisk 2. 在asterisk中添加中继和拨号计划 编辑 /etc/asterisk/sip.conf ,在这里添加中继信息: 设置拨号计划,编辑 /etc/asterisk/extensions.conf 添加一个context 3. 安装asterBilling 4. 设置 asterbilling.conf.php 你需要设置asterbilling 配置文件适用你的服务器设置,编辑asterbilling目录中的asterbilling.conf.php,找到[sipbuddy]部分,修改’context=from-booth’,此时由asterbilling生成的sip 分机会使用’from-booth’这条路由拨出。 默认情况下,asterbilling 将生成的所有分机配置信息存入文件 “/etc/asterisk/sip_astercc”,你可以在配置文件中通过参数’sipfile’更改目标文件,如果你不希望用asterbilling生成sip 分机,则将其设置为空。 另外要注意的是,如果你使用了asterbilling 生成sip分机,你需要将存储分机信息的文件包含在sip.conf中。 编辑 /etc/asterisk/sip.conf 添加: #include sip_astercc.conf 5. 设置代理商和话吧 6. 设置通话费率 7. 查看报告
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 = [...]
默认情况下,astercc提供5路并发通道的许可,如果你需要更多并发,可以购买升级许可。 首先,编辑astercc进程目录下的astercc.conf 文件,找到[licence]部分,你可以看到如下三个参数: [licence] licenceto = key = channel = 5 修改 “channel” 等于你需要的并发通道数,”licence to” 参数填写你的公司/组织名称 [licence] licenceto = 公司名 key = channel = 50 保存并关闭文件,然后进行本目录下的astercc进程,你将会看到类似下面的两行提示: [dev01 astercc]# ./astercc Invalid key, please contact the administrator identity = b0a5ebca13556ca9ca91813dd88dfgd9 now send this identitykey and all content in licence section (licenceto and channel) to astercc, we’ll send [...]