为什么能看到正在进行的通话但是在窗口里看不到历史记录?
如何解决在话吧窗口中看不到通话记录的问题
在新一版本的asterbilling中 我们提供了一个新功能, 挡手动添加费率的时候你可以看到购买时的费率。
例如系统管理员为代理商设置了三条销售费率
default 0.2 对所有代理商
0086 0.25 对代理商: reseller1
00852 0.3 对所有代理商
然后代理商 reseller1 登入 然后要给他下面的话吧设置费率
1. 先加入一条到北美的费率, 号码前缀是001, 在你输入001的时候 在输入框后面会给出针对这个前缀的购买费率(我们在代理商费率中没有针对001的费率, 所以购买时的费率就是默认费率 ‘default’ )
2. 加入一条到中国的费率, 前缀为0086, [...]
如果你已经有一个正在工作的a2billing系统, 你可能想为它增加一些新的功能, 例如为你的客户提供一个集中式话吧解决方案, 这里我就介绍一下如何让asterbilling与a2billing一起工作.
1. 在a2billing中增加一个新的配置
在a2billing.conf中增加一个新的配置信息, 例如 [agi-conf2] , 确认你已经修改了以下选项:
answer_call = NO
play_audio = NO
use_dnid = YES
number_try = 1
say_balance_after_auth = NO
say_balance_after_call = NO
say_rateinitial = NO
say_timetocall = NO
cid_enable = NO
cid_auto_assign_card_to_cid = NO
总之, 取消任何提示和语音信息
2. 在 asterisk extensions中增加新的拨号计划(dialplan)
默认的情况下, a2billing中生成的 sip 用户会使用 a2billing 这个context, 因此我们在 extensions.conf 中增加这个 context
[a2billing]
; for asterbilling booth
exten => _X.,1,DeadAGI,a2billing.php|2
3. 在a2billing中增加客户
接下来我们在a2billing中增加一个客户(customer), 确认你启用了sip和iax功能( enabled sip or iax ), 之后再点击 [...]
有些时候,当我们到通话记录页面中去查看代理商、话吧或分机的通话记录时,发现里面没有任何记录或是缺少了一些记录,但是检查数据库会发现,实际这些记录都是在’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中检查你的“分机”设置。
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 = 60
resellerid = 0
因为我们没有为这条费率指定一个代理商,所有这条费率会被应用于所有代理商。如果你不想让某一个代理商应用这条默认的费率,非常简单,只需要为这个代理商添加一条费率:
dialpreifx = 0086
number length = 0
connect charge = 0.2
init block = 60
rate = 0.2
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. 查看报告
asterCC 软件包为assterisk系统提供一个呼叫中心方案和一个计费方案,它最重要的特性是可以与所有基于asterisk的系统集成,并且不需要对原有的系统结构和设置进行更改,经过我们测试的系统包括:
Trixbox
Elastix
Callweaver
Freepbx
Magiclink
Fonesoft
asterisk2billing (a2b)
pbx in a flash
…
所以如果你正在使用一个基于asterisk的系统,并且想要为其增加呼叫中心或计费功能,asterCC就是一个不错的选择。
asterCC 基于TCP协议通过AMI连接asterisk,所以即使你使用的是一个嵌入式的asterisk设备,也可以应用asterCC扩展出呼叫中心和计费功能。
asterCC 主要运用主/被标识进行工作,因此它不会关心asterisk使用什么样的拨号计划或AGI进行工作。只要有正确的主/被叫标识,asterCC就可以很好结合其工作。
作为一个linux守护进程,asterCC可以稳定并高效的工作,经测试,它可以稳定的支持超过240路asterisk并发通话。
asterCC中所有页面脚本都是开放源代码的。你也可以基于astercc进程开发自己的应用方案,astercc进程提供5个免费的并发通道许可供你使用,比如你可以用它对于大概12个以下的asterisk pbx分机进行计费就用。
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 = credit_clid + 1.2, credit_group = credit_group + 0.6, credit_reseller = credit_reseller + 0.3。
字段 ‘curcredit’ 在一个通话结束后会被更新,用来存储当前发生的话费累计,并且同’creditlimt’字段值做比较,如果账户设限了限制类型并且curcredit值大于或等于creditlimt值,则此账户所属要机的通话会被挂断,当一个代理商/话吧/用户续交话费,则我们要在管理界面中将设值curcredit值等于当前值减去交费额(curcredit [...]
目前asterCRM支持两中语言,英文和简体中文,如果你希望增加一种新的语言支持,你可以依照本文进行操作。
现在我们假设你需要增加德语支持,首先编辑astercrm目录下的login.php,找到如下内容所在行:
<OPTION value=”en_US”>English</OPTION>
<OPTION value=”cn_ZH”>简体中文</OPTION>
我们使用“de_GER” 作为德语的标识,那么就增加一行变成:
<OPTION value=”en_US”>English</OPTION>
<OPTION value=”cn_ZH”>简体中文</OPTION>
<OPTION value=”de_GER”>Germany</OPTION>
保存文件后,当你再次进入登录页面里你就会看到:
选择“Germany”并登录 ,然后我们继续下一个步骤,增加德文的语言文件。
asterCRM 的语言文件目录是 astercrm/include/language,在目录下,你可以看到一些下面这样的文件:
account_cn_ZH.php
account_en_US.php
portal_cn_ZH.php
portal_en_US.php
…
其中文件名以cn_ZH结束的文件就是简体中文的语言文件,以en_US结尾的就是英文语言文件,所以我们也要相应的建立以de_GER结尾的德文语言文件,例如:我们可以将account_cn_ZH.php 复制一份命名为account_de_GER.php(不要使用en_US结束的文件做为源文件进行复制,因为有部分英文是在页面中默认定义的,所有en_US文件是不完整的)。然后编辑复制并重命令的德文语言文件,将先前的语言翻译成德文:
<?
$add_account = “Ein neues Benutzerkonto wurde hinzugefügt”;
$update_rec = “Eintrag wurde aktualisiert”;
…
?>
翻译完成后,文件要以UTF-8编码格式保存,以此类推,将全部语言文件进行翻译。
下面要进行最后一步,就是对系统中的图片的处理,进入astercrm/skin/default,你可以看到下面这样的目录:“images_cn”,”images_en”…… 复制”images_en”并命为”images_de”,然后将目录下的所有图片的的英文改成德文。
完成以后,刷新你的asterCRM页面,就可以看到你翻译的语言界面了!