序
本文主要面向呼叫中心项目的初学者,简要介绍如何利用Asterisk和Freepbx搭建一个HelloWorld级别的呼叫中心。
主要用到的东西是Asterisk,这东西是内部已经实现了呼叫中心所需的大部分功能。
另外推荐配合Freepbx一起使用,这货相当于是Asterisk的管理工具,提供了一套比较完善的管理界面。Asterisk本身没有界面化的管理平台,是通过手动写配置文件完成的,初次接触的话可能两眼一抹黑一蹬腿。。。
最后一个有可能要用到的东西是dahdi,这东西搭建了语音卡(硬件)和Asterisk之间的一座桥梁。当然如果没有硬件需求(比如纯SIP话机)可以不用。
文中的示例用到了SIP软电话,可以随便下一个,我用的是Zoiper。 Zoiper软电话
一个简单的Asterisk实例
1. 安装
Freepbx官网的安装指南,照着这个走一边绝对没问题。注意这个是Ubuntu14.04版本的安装指南,在左边可以看到。如果不用语音卡的话可以跳过dahdi的安装。
安装完之后用浏览器访问 http://127.0.0.1/admin/config.php
进入Freepbx配置界面。
2. 配置dahdi(可选)
用
dahdi_genconfdahdi_cfg -vvv
看一下输出如果没有报错的话就可以了。
关于dahdi报错的各种疑难杂症的处理方法稍后我再单独写一篇总结。
配置正确的输出信息大概长这样。我目前用的是4个外线口的语音卡。注意这里的通道号(channel 01~04)是待会要配置的通道。
DAHDI Tools Version - 2.10.2DAHDI Version: 2.10.2Echo Canceller(s): Configuration ====================== Channel map: Channel 01: FXS Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 01) Channel 02: FXS Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 02) Channel 03: FXS Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 03) Channel 04: FXS Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 04)4 channels to configure. Setting echocan for channel 1 to mg2 Setting echocan for channel 2 to mg2 Setting echocan for channel 3 to mg2 Setting echocan for channel 4 to mg2
3. 配置SIP分机
首先来创建两个分机。在呼叫中心中他们就相当于座席了。
Freepbx上方菜单Applications->Extensions,选择 Generic CHAN SIP Device。接下来填写
{ User Extension : 1001Display Name : 1001Username : 1001 #注意,每个分机对应一个用户,待会软电话登录的时候会用到 Password : pw1001 记得把NAT Mode改为 Yes-(force_rport,comedia)。有时SIP客户端连不上服务器就是这个原因。 }
之后重复上述花括号{}里的步骤再创建一个1002的分机。 打开两个SIP电话软件,用刚刚配好的用户登录,就可以拨号测试一下了。
4. 配置呼出规则
Freepbx菜单->Connectivity->Trunks 创建一个新的DAHDI Trunk,在最下方的 DAHDI Trunks
中我们可以选择呼出时使用哪个端口,可以指定一个端口或者以选择某个组进行顺序呼出(4外线语音卡默认情况下4个外线口都在一个组里)。
Freepbx菜单->Connectivity->Outbound Routes 创建一条新的呼出路由。
在 Dialed Number Manipulation Rules 项中,符合该规则的号码会被认为是出局号码,比如很多公司内线电话拨打外线时需要前加9。(该项具体用法可以参考Freepbx该页面中自带的说明)。
在此最简单的方式可以在 match pattem 中填写8个X或者11个X(座机号码和手机号码)。最后在 Optional Destination on Congestion 中选择 Trunks,再选择刚刚创建的 DAHDI Trunks 即可。
保存配置,呼出规则就配置完毕了,可以用SIP电话尝试拨打自己的手机测试一下结果。
5. 配置呼入规则
Freepbx菜单->Connectivity->Inbound Routes 创建一条新的 Inbound Routes,在最下端的 Set Destination 中选择 Extensions,选择分机1001。随后保持配置。
此时我们用外线拨入,Asterisk会将来电转接到分机1001上面。
至此,Asterisk的实例就算搭建完成了。
扩展:Asterisk能实现哪些功能?
Freebpx提供的一些扩展模块包括:
IVR:主要实现按键选路功能比如——“业务办理请按1,故障申告请按2,如需人工服务请按9”。IVR就相当于某些编程语言中的Switch,根据用户的按键进行分支选择。
振铃组(Ring Groups):实际上是呼叫分组,比如把业务部的分机分到一个组,销售部的分到一个组,你可以把来电转接到某个组(比如在本文的例子中,我们是直接把来电转接到分机的),然后Asterisk会根据该组的策略来决定将来电具体分配个某个分机。
来电录音(Call Recording):通话会以音频文件的形式保存下来,具体的开始和结束时间都自行配置。
时间条件(Time Conditions):“想把非工作时间的来电转到一个单独的分组”或者“节假日的时候想选择播放不同的语音”用这个模块就对了。与IVR大同小异,只不过这个是通过时间进行判断而不是用户的按键。
能不能跟CRM整合在一起呢?
所谓跟CRM整合是源于这么一个常见的需求:
客户来电后,坐席员的客户端上弹出相关信息(主要是来电号码,这个由Asterisk提供),坐席员可以通过CRM客户端上的按钮将此来电转接给另一个坐席员,也可以在与客户沟通完毕后通过CRM客户端上的按钮将客户来电至满意度评分环节。评分环节会语音提示“请对我们的服务做出评价,满意请按1…………”。
上面这段内容是可以通过Asterisk提供的接口—— AMI(Asterisk Manager Interface)
实现的,关于AMI的介绍以及具体使用实例稍后更新。