asterisk是一种开源的VOIP-PBX系统,一种纯软件的基于互联网的底层解决方案,在google上搜索asterisk你可以看到目前的应用十分火爆,基于asterisk的各种VOIP解决方案很多。最近有了点空,在leera的帮助下准备实验一下基于asterisk的callcenter。
这两天先摸了下asterisk的基本实验,主要是实验下基础的呼入和呼出控制。实验平台是一台P3-800的老机器,RH3的系统,一块X100P的单口卡。
前期准备的软件下载地址:
http://downloads.digium.com/pub/asterisk/asterisk-1.4.17.tar.gz
http://downloads.digium.com/pub/libpri/libpri-1.2.7-patch.gz
http://downloads.digium.com/pub/zaptel/zaptel-1.4.7.1.tar.gz
其中安装比较简单,要注意的就是zaptal的make在RH3上编译报错,需要升级到make3.81。zaptal安装完成之后可以通过zttool来查看卡的状态,Alarms是OK状态就行,如果没有插入电话线显示的是Red。
# safe_asterisk 启动asterisk
# asterisk -r 进去管理控制命令行
asterisk的配置文件都在/etc/asterisk中,开始试验涉及到的配置文件主要是三个,zapata.conf、extensions.conf、sip.conf
zapata.conf主要是控制呼入呼出的链路,通过ztcfg查看可用的channels
[channels]
channel => 1
extensions.conf主要设定呼入呼出的规则,核心控制配置文件
[incoming] 设定呼入规则
exten => s,1,Answer() 接受呼入应答
exten => s,2,Playback(qingke) 播放qingke.gsm音乐
exten => s,3,Background(guxiang) 播放guxiang.gsm音乐作为背景音乐
exten => 1,1,Playback(digits/1) 如果用户按1号键则播放digits/1.gsm音乐
exten => 1,2,Dial(SIP/1001,10) 然后将呼入转到1001号SIP用户上
exten => 2,1,Playback(digits/2) 如果用户按1号键则播放digits/2.gsm音乐
exten => 2,2,Dial(SIP/1002,10) 然后将呼入转到1002号SIP用户上
[internal] 设定internal组规则
exten => 121,1,Dial(Zap/1,,r) 用户按121号码可以呼出zap卡的1channel通道
exten => _9.,1,Dial(Zap/1/${EXTEN:1}) 用户通过拨9可以用zap卡呼出外线
SIP.conf用来设定SIP用户
[1001]
type=friend
host=dynamic
context=internal
dtmfmode=rf2833
progressinband=no
disallow=all
allow=ulaw
allow=alaw
allow=h263
allow=h263p
[1002]
type=friend
host=dynamic
context=internal
dtmfmode=rf2833
progressinband=no
disallow=all
allow=ulaw
allow=alaw
allow=h263
allow=h263p
canreinvite=no
经过测试,基本实现了预期测试的效果,过两天再看看更复杂的一些设置,以及一些构建在asterisk基础上的应用和管理平台的使用。