领导说公司的客服电话需要实现语音导航和非工作时间自动接听播放语音提示的功能。任务自然落到了伟大的程序员的头上,本着为公司节约成本原则遂百度了一番,找到了asterisk 和freeswitch两个比较流行的电话系统。经过对比和考虑公司的情况选择了asterisk系统并用freepbx作为gui管理界面。
安装系统
安装可以通过linux系统源码编译的方式安装也可以通过iso镜像的方式镜像进行安装,这里为了方便我就选择下载iso镜像的方式安装。
为了节约成本从公司找了一台淘汰的pc,主板最好是支持pic插槽。公司的电话线路是模拟线路,话机也是模拟话机,所以还需要一个语音卡这里我用的TDM410P四路模拟语音卡,两个fxo外线接口和两个fxs外线接口,可以从某宝上购买山寨卡。
下载过的iso镜像可以通过u盘启动或者刻录光盘的方式进行安装,首先进入电脑bios设置U盘或者光盘启动。开机进入系统安装界面:
安装的过程比较简单系统推荐的是安装asterisk13版本我直接安装的是asterisk16版本。选择你需要安装的版本直接一路回车就行了,全自动傻瓜化的安装
等待一会直到安装完成,会让你设置系统的root密码。密码设置完成会重启电脑就可以拔掉U盘或者光驱了。重启电脑输入用户名root和刚刚设置的密码进入系统。
在这里可以看到系统的ip地址,打开浏览器输入系统的ip进入web-gui界面。
配置过程
第一次进入会让你设置管理员的用户名和密码和一些初始化的防火墙配置,一路yes就行了,需要设置语音和时区的时候按照中国的设置就行了。点击FreePBx管理员选项,输入设置的用户名和密码进入系统
首先插入电话线到模拟语音卡,从运营商那边过来的外线接口模拟卡的fxo口这里我接的是1口,模拟话机的电话线接fxs口这里我接的是3口。然后配置模拟语音卡
点击连接选项卡下面的DAHDI配置切换到模拟语音板卡,这里第一次进来系统会有个提示要写入一些配置文件啥的,直接点击enable的就行了。
点击全局设置把语音设置为中文,其他选项默认就行了。点击板卡驱动加载参数设置把Opermode设置为中国,其他的选项默认。
然后需要创建中继,这里根据实际情况我这里是运营商的模拟线路所以选择通信接口连接选项卡下面的中继,选择添加DAHDI中继(有其他线路的可以选择其它中继)
中继名称随便取,呼出号码就填写运营商给的电话号码,DAHDI中继选择外线插入的接口,这里我的是第一个接口选择模拟通道1点击提交保存。
设置出局路由,点击通信接口连接下面的出局线路选项卡添加出局路由
线路名随便写,配置中继顺序选择刚才创建的中继,然后切到Dial Patterns选项卡
配置模式直接输入X.,最后点击提交保存。
设置分机,点击应用配置下面的分机选项卡,添加新的DAHDI分机
显示名也就是分机号码我这里设置的是111,然后切换到Other选项,通道选择话机插到板卡的接口我这里选择的是3
提交保存。
设置呼入路由,点击通信接口连接选项卡下面的入局线路添加呼入路由
描述随便写,设置目的地选择刚才创建的分机111提交保存。现在可以用分机打电话试一试,不出意外的话应该呼入和呼出都是可以的。
上传录音,可以找公司的小姐姐录好语音导航要说的内容和下班之后说的内容wav格式的就行。然后点击管理下面的系统录音选项卡添加录音
名称随便填,选择录音文件上传,点击提交保存。这一步需要把上下班的录音都上传。
设置公告,点击应用下面的公告选项卡点击添加
描述随便填,录音选择刚才上传的系统录音,设置目的地选择分机111,如果是下班时间不需要客服接听的话可以选择Play Recording选择上一步上传的录音。这一步创建两个公告,一个上班时间的选择分机接听的一个下班时间自动播放语音的。
设置上下班时间,选择应用配置下面的时间小组,添加时间小组
很简单设置好上班时间段就行了。
然后点击应用配置下面的时间条件设置添加时间条件控制
名称随便填,时区设置上海,时间小组选择上一步设置的时间小组,Destination matches选择之前创建的公告下面的上班时间的语音导航,Destination non-matches选择之前创建的公告休息时候自动接听的语音。
最后把时间条件控制设置到入局路由上,点击通信接口连接下面的入局线路,设置未知目的地为时间条件设置,提交保存就完成了。
这时候上班时间有电话进来,就会播放欢迎提示然后转接的客服分机,下班时间电话进来就会循环播放下班的语音提示,客服分机不会振铃
目前为止,领导的需求基本实现了。其实Asterisk的功能还是非常强大的,通过其强大的AGI和AMI接口可以用php java JavaScript各种编程语音对接内部的crm、客户等系统,轻松实现来电弹屏,和一些定制化的需求。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。