asterisk使用SIP相互对接

       当用户数量上去,单凭一台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后面的号码进行内部呼叫。

    这样就配置好了两台asterisksip对接,不过当用户数量庞大和分布在不同地区显然2asterisk不足以应付的。在Nasterisk下通过手动配置conf文件来实现对接是不可能的,因为用户会根据不同情况可能登陆不同的asterisk里,在这情况exten是无法固下来;这个时候就可能采asteriskAMIAGI来动态处理,通过AMI来获取号码登陆的asterisk服务器地址,AGI在根据号码所在asterisk做一个动态的TRUNK拔打就行。

     作为一个语音较交换服务器asterisk的确算是一个好的产品,他除了开源外,还提供AMIAGI等接口;使其他语言平台通过这些接口来扩展自己的业务需求。

posted on   henry  阅读(11149)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架

导航

< 2010年5月 >
25 26 27 28 29 30 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示