AsteriskNOW 是一款优秀的开源软件,很多企业用它来做企业的IP PBX。很多同学在做UC实验的时候,可能会没有硬件网关做一些电话方面的测试。我在这里就利用AsteriskNOW来搭建一个IP PBX进行一些电话实验。关于更多Asterisk的东西,请大家自己Google一了。

本次虚拟机的搭建在Vmare workstation上,其它设置都没有什么特别的,就是需要虚拟机的网络配置为桥接,这样就和中介服务器等在同一个网段了。

 

 

image

 

image 
AsteriskNOW的安装界面,我们在这里需要选择5就OK了。

 

image 
检测到虚拟机的硬盘空间,选择YES进行下一步。

 

image 
点击Next使用全部硬盘空间。

 

image 
选择网卡配置。

image

 

image 
DNS服务器配置

image 
点击OK回到主界面,这个时候需要登录到系统,使用root和设置的密码进入系统。然后输入shutdown –r now 重新启动系统。

在进行配置之前一定要做PING测试。如果有问题则检查虚拟机配置。

image 
在本次实验中我们仅仅需要配置下面两个文件就OK了。

Sip.conf –  Asterisk服务器的的主要设置(Trunk 和分机) Extensions.conf – dial plans配置

 

为了连接到服务器,我才用了SecureCRT软件,这样连接起来就比较方面了。在用SecureCRT连接到Asterisk 服务器的时候,会探出一个密钥提示,点击接受并保存。

 

image

image
在linux平台上利用vi编辑文件实在是相当麻烦,所以我们配置SFTP以便我们在Windows上编辑这些配置文件。远程目录填入:\etc\asterisk

image
为了从服务器上获得sip.conf 和extension.conf 两个文件。我们需要使用“连接SFTP”命令。

image 
然后使用get 命令把这两个命令从服务器上copy到本地。

sftp> get sip.conf
正在从 /etc/asterisk/sip.conf 下载 sip.conf
  100% 61KB     61KB/s 00:00:00 

sftp> get extensions.conf
正在从 /etc/asterisk/extensions.conf 下载 extensions.conf
  100% 30KB     30KB/s 00:00:00

 

sip.conf文件的内容修改如下,记得备份一份原始文件。

 

[general]
context=default               
udpbindaddr=0.0.0.0     
bindport=5060
bindaddr=0.0.0.0
tcpenable=yes                  ;由于中介服务器只支持TCP连接,所以这里要启用对TCP的支持
tcpbindaddr=0.0.0.0        

[2001]                         ;本地的一部分机
type=friend
callerid=2001
canreinvite=no
dtmfmode=rfc2833
mailbox=2001
disallow=all
allow=ulaw
transport=udp
secret=135246
host=dynamic
context=default

[MED_Trunk]                   ; 新建一条到OCS 中介服务器的TRUNK
type=friend
port=5060
host=192.168.1.11             ; 中介服务器的IP地址
dtmfmode=rfc2833
context=from-ocs
qualify=yes
transport=tcp,udp

extension.conf文件的配置如下:

[general]
static=yes
writeprotect=no

[globals]

[default]
;把1开的号码路由到OCS的中介服务器上
exten=>_1XXX,1,Dial(SIP/MED_Trunk/${EXTEN},20)
;exten=>_1XXX,n,hangup()

[MED_Trunk]
把所有来自于ocs中介服务器的以2开头的号码送给Asterisk
exten=>_+2XXX,1,Dial(SIP/2001,20)
exten=>_+2XXX,n,hangup()

 

然后利用put命令把文件上传到asteisknow服务器上。

sftp> put sip.conf
正在把 sip.conf 上传到 /etc/asterisk/sip.conf
  100% 641 字节    641 字节/s 00:00:00     

sftp> put extensions.conf
正在把 extensions.conf 上传到 /etc/asterisk/extensions.conf
  100% 421 字节    421 字节/s 00:00:00

 

需要注意的是需要利用asterisk -vr进入asterisk后输入reload使配置生效。

 

sip phone客户端 eyebeam 的配置如下,

image 
注册成功的话,就如下一样了。

image 
同时在服务器上可以可以通过 sip show peers 命令查看到电话的注册情况。

 

image 
中介服务器的配置就比较简单了,把PSTN网关的地址配置为asterisk服务器的地址就OK了。不过相应的电话号码规则也要做。我做的就比较简单了。

image

 

image

 

 

-----------------------------------------------------------------------------------------

到此配置完成,进入测试阶段。

 

 

Asterisk 上的2001呼叫OCS上的1001,成功!

image 
Asterisk 上的提示

image

 

Office Communicator 用户1001呼叫2001,也成功!

image 
Asterisk 上的提示

image 
到这里的话,两个世界已经说说明联通了。套用电信术语来说就是两个局已经互通了。这里我们采用的是OCS维护一个号码局,Asterisk维护另外一个局,如果要让用户使用一个号码的话,就需要一个诸如RCC等功能,等以后有机会再写一些这方面的文章。