asterisk使用SIP相互对接
2015-03-26 11:20
239 查看
当用户数量上去,单凭一台asterisk是很能支持庞大的用户群体,所以要根据用户量来部署多台asterisk来应付实际情况的需求.但部署多台asterisk所带来的一个问题就是A服务器的用户如果Call B服务器的用户呢?其实asterisk的设计者早已帮我们解决问题,以下是通过SIP把两台asterisk对接起来(不过官方推荐asterisk的对接用AIX).
分别在192.168.1.21 和192.168.1.22两台服务器上装上asterisk,然后配置各自的用户,TRUNK和转发规则。
配置192.168.1.21
打开/etc/asterisk/sip.conf
在[general]组下添加注册到22的命令
register=>AST22:123456@192.168.1.22
然后在文件尾添加相关组信息
[AST21]
type=friend
secret=123456
host=dynamic
username=AST21
disallow=all
allow=ulaw;alaw
context=FROMSIP
[22TRUNK]
type=friend
username=AST22
secret=123456
host=192.168.1.22
dtmfmode=rfc2833
context=FROMSIP
fromuser=AST22
insecure=very
打开/etc/asterisk/extensions.conf 添加下面内容
[FROMSIP]
Exten => _90.,1,dila(sip/91${exten:2}@22TRUNK,40,m(default))
拔打90开头的号码,把91代替90后转发192.168.1.22,拔打等待40秒,等待的时候播放default这个采铃。
Exten => _91.,1,dial(sip/${exten:2},40,m(default))
当接收到91开头的号码,把91后面的号码进行内部呼叫。
配置192.168.1.22
打开/etc/asterisk/sip.conf
在[general]组下添加注册到22的命令
register=>AST21:123456@192.168.1.21
然后在文件尾添加相关组信息
[AST22]
type=friend
secret=123456
host=dynamic
username=AST22
disallow=all
allow=ulaw;alaw
context=FROMSIP
[21TRUNK]
type=friend
username=AST21
secret=bsmofeng
host=192.168.1.21
fromuser=AST21
dtmfmode=rfc2833
context=FROMSIP
insecure=very
打开/etc/asterisk/extensions.conf 添加下面内容
[FROMSIP]
Exten => _90.,1,dila(sip/91${exten:2}@21TRUNK,40,m(default))
拔打90开头的号码,把91代替90后转发192.168.1.21,拔打等待40秒,等待的时候播放default这个采铃。
Exten => _91.,1,dial(sip/${exten:2},40,m(default))
当接收到91开头的号码,把91后面的号码进行内部呼叫。
这样就配置好了两台asterisk的sip对接,不过当用户数量庞大和分布在不同地区显然2台asterisk不足以应付的。在N台asterisk下通过手动配置conf文件来实现对接是不可能的,因为用户会根据不同情况可能登陆不同的asterisk里,在这情况exten是无法固下来;这个时候就可能采asterisk的AMI和AGI来动态处理,通过AMI来获取号码登陆的asterisk服务器地址,AGI在根据号码所在asterisk做一个动态的TRUNK拔打就行。
作为一个语音较交换服务器asterisk的确算是一个好的产品,他除了开源外,还提供AMI,AGI等接口;使其他语言平台通过这些接口来扩展自己的业务需求。
http://www.nbao.net/
http://smark.codeplex.com/
分别在192.168.1.21 和192.168.1.22两台服务器上装上asterisk,然后配置各自的用户,TRUNK和转发规则。
配置192.168.1.21
打开/etc/asterisk/sip.conf
在[general]组下添加注册到22的命令
register=>AST22:123456@192.168.1.22
然后在文件尾添加相关组信息
[AST21]
type=friend
secret=123456
host=dynamic
username=AST21
disallow=all
allow=ulaw;alaw
context=FROMSIP
[22TRUNK]
type=friend
username=AST22
secret=123456
host=192.168.1.22
dtmfmode=rfc2833
context=FROMSIP
fromuser=AST22
insecure=very
打开/etc/asterisk/extensions.conf 添加下面内容
[FROMSIP]
Exten => _90.,1,dila(sip/91${exten:2}@22TRUNK,40,m(default))
拔打90开头的号码,把91代替90后转发192.168.1.22,拔打等待40秒,等待的时候播放default这个采铃。
Exten => _91.,1,dial(sip/${exten:2},40,m(default))
当接收到91开头的号码,把91后面的号码进行内部呼叫。
配置192.168.1.22
打开/etc/asterisk/sip.conf
在[general]组下添加注册到22的命令
register=>AST21:123456@192.168.1.21
然后在文件尾添加相关组信息
[AST22]
type=friend
secret=123456
host=dynamic
username=AST22
disallow=all
allow=ulaw;alaw
context=FROMSIP
[21TRUNK]
type=friend
username=AST21
secret=bsmofeng
host=192.168.1.21
fromuser=AST21
dtmfmode=rfc2833
context=FROMSIP
insecure=very
打开/etc/asterisk/extensions.conf 添加下面内容
[FROMSIP]
Exten => _90.,1,dila(sip/91${exten:2}@21TRUNK,40,m(default))
拔打90开头的号码,把91代替90后转发192.168.1.21,拔打等待40秒,等待的时候播放default这个采铃。
Exten => _91.,1,dial(sip/${exten:2},40,m(default))
当接收到91开头的号码,把91后面的号码进行内部呼叫。
这样就配置好了两台asterisk的sip对接,不过当用户数量庞大和分布在不同地区显然2台asterisk不足以应付的。在N台asterisk下通过手动配置conf文件来实现对接是不可能的,因为用户会根据不同情况可能登陆不同的asterisk里,在这情况exten是无法固下来;这个时候就可能采asterisk的AMI和AGI来动态处理,通过AMI来获取号码登陆的asterisk服务器地址,AGI在根据号码所在asterisk做一个动态的TRUNK拔打就行。
作为一个语音较交换服务器asterisk的确算是一个好的产品,他除了开源外,还提供AMI,AGI等接口;使其他语言平台通过这些接口来扩展自己的业务需求。
http://www.nbao.net/
http://smark.codeplex.com/
相关文章推荐
- asterisk使用SIP相互对接
- asterisk使用SIP相互对接
- 使用数据库保存Asterisk sip账号信息(odbc方式)
- qutecom注册到asterisk上,sip信令使用rc4加密方法
- asterisk sip.conf 配置选项说明
- 使用SIP的一点心得
- py2exe打包后发现 no model named sip问题(使用pyqt时)的解决方法
- SIP中re-INVITE消息的使用方法
- sip测试工具sipsak交叉编译及使用
- Asterisk对接落地中继
- asterisk 使用 g729 g723
- 树节点相互移动操作----使用微软treeview控件
- SIP网关压力测试工具SIPp的安装及使用详解
- 在Asterisk上做SIP与IAX的互通试验
- 一个比较经典的php批量删除程序,与smarty相互结合使用
- 【使用Excel.Application对象打开的xls文件】与【手动打开的xls文件】在关闭时相互干扰的解决办法
- oSIP协议栈(及eXoSIP,Ortp等)使用入门
- 使用sip show peers 命令查看分机,坐席--入门教程系列001
- oSIP协议栈(及eXoSIP,Ortp等)使用入门
- E72上SIP连接Asterisk服务器