最近研究一个Open Source的PBX: Asterisk。折腾了一个礼拜,装了N次基本安装没啥障碍了,总结出来给大家。
Asterisk是什么我不想多说了,有兴趣看www.asterisk.org和www.voip-info.org。也许是因为是Open Source的吧主流版本的Asterisk缺少官方文件。所有安装、配置、以及客户支持技术细节都在他的Wiki和邮件列表上。所以刚上手时会有些不知所措。Asterisk目前主流版本是1.0.9,1.2.0的Bata版也已经出来了。官方声称Asterisk可以在任何Linux上安装,但经过我参照若干别人的安装笔记,用若干个Linux发行版和内核版试验,感到安装难易程度往往相差很大。尤其对Linux不太熟悉的朋友也许会比较困难。Asterisk很大的麻烦来自安装第三方HFC卡。而如果不装这些PCI卡则会简单得多。通过不断实践我觉得安装最顺利的发行版是Fedora C3,Asterisk版本是1.0.9。下面我就已这两个版本为例来说一下安装步骤。
1。下载FC3。下载FC3的地方太多了,到http://fedora.redhat.com/download/mirrors.html去找一个比较快的服务器下载吧,无论4张CD版本的或1张DVD版本的都可以。
2。安装FC3。我是在VMWare上安装FC3的,当然在裸机上安装也没有问题。如果磁盘空间有限,选择组件的时候选最小安装就可以了。安装好之后要保证FC的网络没有问题,因为后面我们需要从Internet上下载一些东西。用Root登陆进系统,我们需要从安装光盘上安装一些额外的包。把安装光盘插入光驱。把光盘挂载到系统上。
[code]mkdir /mnt/cdrom
mount -t iso9660 /dev/hdc /mnt/cdrom
cd /mnt/cdrom/Fedora/RPMS
rpm -ivh cpp-3.4.2-6.fc3.i386.rpm[/code]
如果看到一个关于V3 SDA signature: NOKEY, key ID...的Warning,不用理他,不会妨碍你安装的。继续安装其它RPM包。
Disk 2中:
[code]cvs-1.11.17-3.i386.rpm
bison-1.875c-2.i386.rpm
e2fsprogs-devel-1.35-11.2.i386.rpm
krb5-devel-1.3.4-7.i386.rpm[/code]
Disk 3中:
[code]glibc-kernheaders-2.4-9.1.87.i386.rpm
glibc-headers-2.3.3-74.i386.rpm
glibc-devel-2.3.3-74.i386.rpm
gcc-3.4.2-6.fc3.i386.rpm
zlib-devel-1.2.1.2-1.i386.rpm
openssl-devel-0.9.7a-40.i386.rpm
libidn-devel-0.5.6-1.i386.rpm(好像是在这个盘里,记不太清楚了)[/code]
3。配置FC3。
[code]cd /usr/src
ln -s /lib/modules/2.6.9-1.667/build/ linux-2.6
vi /etc/udev/rules.d/50-udev.rules[/code]
在该文件最后一行之后添加如下文字:
[code]KERNEL="zapctl", NAME="zap/ctl"
KERNEL="zaptimer", NAME="zap/timer"
KERNEL="zapchannel", NAME="zap/channel"
KERNEL="zappseudo", NAME="zap/pseudo"
KERNEL="zap[0-9]*", NAME="zap/%n"[/code]
4。下载Asterisk和Zaptel
[code]cd /usr/src
export CVSROOT=:pserver:anoncvs@cvs.digium.com:/usr/cvsroot
cvs login (密码是anoncvs)
cvs checkout zaptel asterisk[/code]
5。安装Asterisk和Zaptel
[code]cd /usr/src/zaptel
make clean
make linux26
make install
cd /usr/src/asterisk
make clean
make install
make samples
modprobe zaptel[/code]
6。修改一些配置文件。需要修改的有sip.conf和extensions.conf。
sip.conf添加如下内容,其中1498和1499是我预设的两个电话号码:
[code][1498]
type=friend
username=1498
host=dynamic
context=default
canreinvite=yes
dtmfmode=rfc2833
[1499]
type=friend
username=1499
host=dynamic
context=default
canreinvite=yes
dtmfmode=rfc2833[/code]
extensions.conf的default段修改成如下:
[code][default]
exten => _1XXX,1,Dial(SIP/${EXTEN},15,t)
exten => _1XXX,3,Hangup[/code]
7。启动Asterisk
asterisk -vvvvvvvvvvvvvvvcg
执行后会出现很多提示,注意如果里面有红色的ERROR字样说明有问题。如果执行成功,最后会屏幕停在:
[code]Asterisk Ready
*CLI>[/code]
8。测试。
在另两个机器上分别启动一个Soft SIP phone,配置Domain和SIP Proxy地址到那个Linux的IP地址。电话号码分别为1498和1499。这时我们应该看到这两个Phone可以注册到Astersik上面了。相互呼叫应该可以成功.