首页 > 技术 > 技术文摘 > 解析Asterisk分布式的实现方法

解析Asterisk分布式的实现方法

2011-01-18 00:00:00   作者:   来源:   评论:0 点击:



  Asterisk最初是用来搭建一个独立的系统,一个单一的提供所有电话通信的中心。简而言之,PBX交换机。如今,Asterisk开源电话服务器用在许多方面——很多应用跟PBX完全没有关系。Asterisk可以建设各种应用程序。而当你采用Asterisk构建应用的时候,也会很快发现它有很多局限。Asterisk很难扩展,呼叫状态也仅存放在本机上。许多服务依赖于呼叫状态—— 如果在呼叫中心坐席正忙,你需要找到一个可用的坐席。如果到PSTN中继正在使用中,你可能需要另谋出路。Asterisk SCF框架可能解决这个问题。但这个版本需要一些时间。同时,Asterisk PBX团队也一直致力于一些其他的方法来分配一组服务器之间的呼叫状态。这篇文章将描述几个不同的体系结构。
  使用OpenAIS来分发事件状态 
  Russell Bryant已经开始建立一个基于OpenAIS的解决方案。侧重于Asterisk服务器之间的各种事件的内在分发。目前仍处在实验性的阶段,但很有趣。
  使用XMPP协议的状态发布/订阅
  Brad Watkins一直在研究的一个解决方案是使用XMPP的发布/订阅功能。这个协议更多是关注的呼叫状态,而Russel的作品更开放给其他信息。比如语音邮件和其他可能的事件——PRI中继线上落,会议室开放和队列被激活。
  使用SIP分发状态
  2010年秋季开始,Brad和oej开始做一个Pinana的项目,Pinana是在Asterisk SIP发布/订阅框架的基础上来分发设备状态和分机状态的项目。 这是两个不同的东西。 设备状态是一个驱动通道信号对象,表示状态不能到达,不可用,或正在忙。Extension states is an aggregated state - one extension in a server can have a state based on multiple devices.The connection between an extension and a device in Asterisk is called a hint .
  使用SIP服务器分发状态
  在Pinana项目中,我们使用一个外部SIP表现服务器 - Kamailio。 我们首先发布设备状态,使所有集群中的Asterisk服务器可以订阅并得到更新。发布一台服务器状态的变化会更新一次,Kamailio组中的所有其他服务器。 This code exist today - the possibility to PUBLISH (in SIP terminology) a device state and SUBSCRIBE to it (as a hint device state provider)。这些状态真的只为Asterisk内部使用,不为别的。
  总结:Asterisk扩展性越来越好
  有了这三种不同的方法,Asterisk PBX扩展性是肯定越来越好。 尽管Asterisk SCF正在开发,但是Asterisk仍然有很多事情可以做,以改善我们今天已经安装的用户,发展他们的系统。

51asterisk.com

相关阅读:

分享到: 收藏

专题