惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
A
About on SuperTechFans
博客园 - Franky
Engineering at Meta
Engineering at Meta
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
B
Blog
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
Martin Fowler
Martin Fowler
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
博客园 - 叶小钗
Vercel News
Vercel News
Apple Machine Learning Research
Apple Machine Learning Research
The Cloudflare Blog
Last Week in AI
Last Week in AI
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
爱范儿
爱范儿
V
V2EX
G
Google Developers Blog

博客园 - henry

Smark.Net.Tcp.XmlService性能测试程序 基于Flex的http简易文件管理工具 性能的瓶颈到底在那呢? 运用Smark.SocketAsyncs扩展基于XML的TCP服务 运用Smark.SocketAsyncs方便实现数据交互服务 实现分布式对象锁 发布一个C#实现的Asterisk的管理系统 开源一个基于Flex4+C#的个人信息管理程序 FlashBuilder4试用 这样的重构是否有必要呢? Asterisk2B用户管理逻辑设计 用JQuery UI dialog实现Alert和Confirm功能 - henry Asterisk发起电话预约回拔 WOW工会DKP管理系统 我的分页控件设计 实现一个JavaScript验证的Asp.net Helper - henry - 博客园 Smark.Data 实体属性值描述 Smark.Data实体成员数据验证 Smark.Data Part1
asterisk使用SIP相互对接
henry · 2010-05-11 · via 博客园 - henry

       当用户数量上去,单凭一台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等接口;使其他语言平台通过这些接口来扩展自己的业务需求。