Asterisk服务器之间的互联

Asterisk服务器之间的互联

3台Asterisk servers的互联
以下使用 serverA与 serverB、serverC代替三台服务器
serverA ip地址为 192.168.0.99
ServerB ip地址为 192.168.0.98
serverC ip地址为 192.168.0.97

serverA修改/etc/asterisk/sip.conf文件
添加用户 serverA上的 9901,9902,9903,9904,9905用户
[9901]
type=friend
username=9901
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes ;可以让内网转发穿透 NAT


[9902]
type=friend
username=9902
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes


[9903]
type=friend
username=9903
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes


[9904]
type=friend
username=9904
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes

[9905]
type=friend
username=9905
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes


[98SIP]
;添加用户 firend类型 sl,作为 server B登陆使用的用户
type=friend
username=asterisk
secret= ;密码为空
host=192.168.0.98 ;绑定 serverB的 IP地址
context=default


[97SIP]
;添加用户 firend类型 sl,作为 server C登陆使用的用户
type=friend
username=asterisk
secret= ;密码为空
host=192.168.0.97 ;绑定 serverC的 IP地址
context=default

修改
extention.conf文件
exten => _99XX,1,Dial(SIP/${EXTEN},15,20) ;ServerA内部用户通话控制
exten => _99XX,2,Hangup


exten => _98XX,1,Dial(SIP/98SIP/${EXTEN},30,r) ;与 serverB上的号码为 98XX的用户通话话,使用 SIP协议联系
exten => _98XX,2,Congestion


exten => _97XX,1,Dial(SIP/97SIP/${EXTEN},30,r) ;与 serverC上的号码为 97XX的用户通话话,使用 SIP协议联系
exten => _97XX,2,Congestion

在 ServerB上进行相对应的设置若 ServerB以 SIP协议提供服务则,修改
/etc/asterisk/sip.conf

[9801]
type=friend
username=9801
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes

[9802]
type=friend
username=9802
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes

[9803]
type=friend
username=9803
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes


[9804]
type=friend
username=9804
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes


[9805]
type=friend
username=9805
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes


;添加用户
serverB上的 9801,9802,9803,9804,9805用户 ;可以让内网转发穿透 NAT

[99SIP]
type=friend
username=asterisk
secret=
host=192.168.0.99 ;绑定 serverA的 IP地址
context=default


[97SIP]
type=friend
username=asterisk
secret=
host=192.168.0.97 ;绑定 serverC的 IP地址
context=default

在 ServerC上进行相对应的设置若 ServerC以 SIP协议提供服务则,修改 /etc/asterisk/sip.conf
添加
[9701]
;添加用户 serverC上的 9701,9702,9703,9704,9705用户
type=friend
username=9701
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes ;可以让内网转发穿透 NAT


[9702]
type=friend
username=9702
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes


[9703]
type=friend
username=9703
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes

[9704]
type=friend
username=9704
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes

[9705]
type=friend
username=9705
host=dynamic
context=default2
canreinvite=yes
dtmfmode=rfc2833
nat=yes

[99SIP]
type=friend
username=asterisk
secret=
host=192.168.0.99 ;绑定 serverA的 IP地址
context=default
[98SIP]
type=friend
username=asterisk
secret=
host=192.168.0.98 ;绑定 serverB的 IP地址
context=default

修改
extention.conf文件
exten => _97XX,1,Dial(SIP/${EXTEN},15,20) ;serverC内部 97XX用户通话
exten => _97XX,2,Hangup


exten => _99XX,1,Dial(SIP/99SIP/${EXTEN},30,r) ;与 serverA的用户99XX通话
exten => _99XX,2,Congestion
exten => _98XX,1,Dial(SIP/97SIP/${EXTEN},30,r) ;与 serverB的用户 98XX通话
exten => _98XX,2,Congestion

若 ServerB以 H323协议提供服务
//安装过程请参考
saintfish的文档:
修改/etc/asterisk/h323.conf


[9801]
;添加 serverB上使用 H323协议的用户 9801
type=friend
username=9801
host=dynamic
;host=XXX.XXX.XXX;绑定用户 9801的 IP地址
context=default
disallow=all
allow=ulaw


[9802]
;添加 serverB上使用 H323协议的用户
9802
type=friend
username=9802
host=dynamic ;host=XXX.XXX.XXX;绑定用户 9802的 IP地址
context=default
disallow=all
allow=ulaw


[9803]

;添加 serverB上使用 H323协议的用户 9803
type=friend
username=9803
host=dynamic
;host=XXX.XXX.XXX;绑定用户 9803的 IP地址
context=default
disallow=all
allow=ulaw

修改/etc/asterisk/sip.conf
添加用户
99SIP,用作 serverB向 serverA联结的模块
[99SIP]
type=friend
host=192.168.0.99 ;绑定 serverA的 IP地址
user=asterisk
secret=

添加用户 99SIP,用作 serverB向 serverC联结的模块
[97SIP]
type=friend
host=192.168.0.97 ;绑定 serverC的 IP地址
user=asterisk
secret=

在 23行修改:加上 disallow=all注释去掉 allow=all注释


修改/etc/asterisk/extension.conf
在[default]节添加:
exten => _98XX,1,Dial(H323/${EXTEN})
;ServerB内部 20XX用户通话,协议H323
exten => _98XX,3,Hangup


exten => _99XX,1,Dial(SIP/99SIP/${EXTEN},30,r);向 ServerA的 99XX用户打电话
exten => _99XX,2,Congestion
exten => _97XX,1,Dial(SIP/97SIP/${EXTEN},30,r);向
ServerC的 97XX用户打电话
exten => _97XX,2,Congestion

通过以上配置,已经实现了 serverA与 serverB、serverC的用户之间的通话
server之间的联系是通过 SIP协议 server和用户之间可以实现不同的协议,serverA用 SIP协议,serverB用 H323协议可以实现
asterisk服务器组网的基本要求

你可能感兴趣的:(Asterisk服务器之间的互联)