当前位置: 首页 > 工具软件 > Elastix > 使用案例 >

关于Elastix内置的billing模块

谢和颂
2023-12-01

关于Elastix内置的billing模块


  说起Asterisk上的计费,大家一定会想到炙手可热的A2Billing或者后起之秀Asterbilling.,这里我向大家啰嗦介绍的是elastix内置的billing模块

  A2Billing功能强大,但是配置也超繁琐.而且主要功能是面向运营的,对于一般应用(企业自用)来说颇有杀鸡用牛刀之嫌.

  Asterbilling设计巧妙,利用一个守护进程,通过AMI消息来生成CDR记录,不需要透过AGI来影响extensions.conf(dial plan),效率高(稳定性还不好说,我对于AMI的了解还处于学习阶段).但出于对开源的热爱,我对闭源的产品兴趣缺缺(Asterbilling 的WEB部分是开源的--也不得不开源,呵呵,但守护进程只有5通道并发许可----只能玩玩测试.我还没有搞清楚这5通道是怎么计算的,如果是asterisk的channel概念,2个分机间的操作就玩死了,一个sip分机,一个IAX分机,转接,hold,留言,这些可都是并发通道)

  Elastix内置的Billing模块(位于report模块中的Billing子模块中).这是一个和传统pbx上的计费软件相似的基于字头(prefix)判断通话类型的计费系统.设置简单,还有简单的过滤条件和报表,可以满足日常计费的需求.

  Elastix的内置billiing设置起来是比较简单的,大家可以参考elastix without tears(本站资料下载板块中有链接).但可能是因为太简单的关系吧,关于具体的设置就比较少.为了方便入门的朋友快速部署计费,我简单把设置步骤说一下

1.理解billing的基本概念

  billing模块是基于传递到Trunk的号码的字头(prefix)来判断话务类型,对于国内来说,就是00开头的是国际长途(IDD),以0开头,第二个号码不为0的是长途电话(Long Distance),不是0开头的号码视为市话(市话又分为公益电话---114.119...被叫付费电话800-XXXX-XXXX,信息台---),不同的话务类型有不同的费率

  关于rate offset(费率补偿),很多朋友卡在这里,其实rate offset类似于服务费的概念,也就是按照费率和通话时长计算话费后,然后加上rate offset定义的金额得出最后的话费(很可惜,官方rate offset不支持负数,如果有这样的需求需要修改php文件)
备注:
      rate offset的值只能是一个正小数,例如0.0(单纯输入0会出错,建议输入的是0.000)

2.配置实例
  为了简单起见,我们在本例子中只区分普通市话,长话和国际长话

2.1.环境
  Elastix 1.3.2
  TDM400P

2.2 配置步骤

2.2.1 设置要要进行计费的trunk
  在Elastix的pbx模块中的Trunk子选项中,定义一个Zap Trunk(默认已有),注意,该trunk的Dial Rule保留空白

2.2.2 修改default rate(市话费率)
  在elastix的reprot模块中选择Billing子模块下的billing setup选项中
修改default rate configuration的内容
rate:0.11(市话每分钟的费率,当然这个和电信的实际计费标准是有出入的)
default rate offset: 0.0

2.2.2 选择对那些Trunk进行计费
  在elastix的report模块中选择Billing子模块下的billing setup选项中
Trunk bill configuration的中勾选那些trunk要进行计费
这里我们选择的是默认的Zap/go

2.2.3 设置其它类型话务的费率

2.2.3.1  国际长话
  在elastix的reprot模块中选择Billing子模块下的Rates选项中
Create new rate
prefix:00
name:IDD
rate:2.000(打到不同国家国际长话的费率是不同的,这只是一个释例)
rate offset:0.000
trunk:Zap/g0
保存

2.2.3.2  国内长途
  在elastix的reprot模块中选择Billing子模块下的Rates选项中
Create new rate
prefix:0
name:DDD
rate:0.700(和电信的实际计费有出入,电信是按6秒为一个计费单位)
rate offset:0.000
trunk:Zap/g0
保存

2.3 测试
  拨打市话,长话,国际长话,你可以在billing子模块下的billing report中看到计费信息了
备注:
  我们在rate中设置计费单位是分钟,但在billing report中的计费结果是按照秒来计算的,而且answer代表的是Sip应答消息而不是对方实际接听电话,所以计费中的起始时间是不准的,CDR记录中的通话持续时间要大于实际通话时间,所以我说rate offset不能输入负数是很遗憾的

  不行了,实在太困,等有精神了再继续完善吧,希望我这块小砖头能引来大家的玉(回帖大大的要,期待大家在计费上的心得)

 类似资料: