原文链接:http://wiki.sipfoundry.org/display/sipXecs/Overview

-----------------------------------------

项目历史

SIP Foundry的SIPXecs项目前身是Pingtel公司2004年的sipXpbx开源项目(Pingtel组织和资助了SIPfoundry,但它是一个独立的合法的非盈利公司)。那时候PBX的代码作为Pingtel的SIPXchange产品已经开发了数年,它本身就是从Pingtel Expressa电话项目中扩展出来的(Pingtel Expressa电话项目是当时非常成功的跨越多个不同设备制造商的企业级的SIP呼叫系统之一。从最初的发布,Pingtel的商业产品开发就一直和SIPXpbx开源项目同步,并且不断从商业版本移植到开源项目中。

随着时间的推移,SIPXpbx开源项目获得了用户和开发人员的青睐。很多活跃的Pingtel公司外部的开发人员开始做出大量贡献,尤其是对SIP UA(电话和其他终端)的程序员非常有用的基础代码。由于当时代码许可的原因,当时有段时间很难讲这些改动移植到商业版本中,所以这两个基线代码开始出现分歧。反过来,这又增加了新增代码的复杂度,特别是增加了测试开源项目(SIPXpbx)和商业项目(SIPXchange)的难度。

在2007年春天,Pingtel决定改变项目结构和代码许可,以便减少系统复杂性和潜在的使用冲突。Pingtel给SIPfoundry贡献了一套新的基于它原来商业版本的代码,创建了sipXecs项目。

很多关注UA的开发人员继续基于原来SIPxtapi项目进行开发,这些项目现在非常活跃而且持续发展。

系统架构图 

sipXecs系统是基于模块化的架构,通过不同的组件基于TCP/IP进行通信。

SIP协议的设计就是为了支持完全分布式的网络架构。服务器提供不同的功能,并且它们之间通过SIP协议通信。协议中媒体流和信令流严格分离,以便建立一个全局的可以伸缩的系统,并且含有必要的系统冗余和备份。媒体流,一旦建立,将直接进行点对点的通信,而无需通过中央的信令服务器。

要点:


  • 模块化: 12个不同的服务器组件可以在一个服务器硬件上并存,也可以分布在不同的系统中。
  • 备份: 在呼叫控制组件中提供高可用性的系统。
  • 可伸缩性: 通过域名服务系统实现负载均衡。
  • 基于SIP代理: sipXecs不是基于B2BUA而是一个真正的基于SIP Proxy架构的实现。B2BUA服务器(sipXbridge)用来连接IP电话服务提供商(ITSPs);数据包中包含了会议桥信息;基于Freeswitch的自动话务员和语音信箱。
  • 更好的语音质量: 点对点的媒体流直接,无需通过呼叫控制路径。
  • 标准SIP: sipXecs是一个标准的兼容协议。
  • 即插即用管理: 系统中电话即插即用。
  • IT集成: LDAP, SOAP和数据库集成。系统不管看上去还是使用起来,就如同一个IT应用。
  • 无需特殊硬件: sipXecs不需要特殊的硬件。一个标准的Intel服务器足矣。

就其架构而言,sipXecs系统的设计就是为了实现和其他第三方业务服务器的更好的互通。除此之外,它是一个完全的分布式系统。每一个组件的多个实例可以在一个专职的硬件系统上运行,也可以在不同的跨地域的服务器上运行以实现一个可伸缩的系统。SipXecs的配置服务器提供核心组件,业务服务器,和外设(电话及网关)等的即插即用。一个基于XML的插件框架允许自如的配置额外的组件,业务服务器,以及外设。

不同的sipXecs系统组件也可以单机运行,这个项目的关注点就在于提供一个完全的sipXecs基于IP的小交系统。在Fedora, Red Hat, Debian and SUSE版本中,sipXecs系统可以很容易地按照各自系统的包管理进行安装。

【笔记】从架构图来看,sipXecs大致分为三部分:配置部分,信令部分和媒体控制部分。

配置服务器的架构

sipXecs的配置服务器是一个Web服务的配置管理系统,可以对所有的sipXecs服务器组件包括电话和网关等提供即插即用的管理。对于已经存在IT架构,可以使用LDAP,也可以提供SOAP接口提供网络服务关口。它也允许和微软的Active Directory and Exchange 2007进行连接。

用户数据可以从LDAP载入,或者在报表应用中,像典型的用逗号分隔的CSV文件中载入。

应用库组件:

  • Jetty: Java HTTP Server and Servlet Container
  • Spring Framework: Java Application Server Framework
  • Tapestry: Apache Jakarta Tapestry
  • Hibernate: Idiomatic Persistence for Java
  • Velocity: Java based Template Engine
  • Lucene: Java-based indexing and search

PostgreSQL数据库被用来数据存储。

我们不再需要浏览器直接连接到Jetty HTTP服务器和Apache服务器。

Web服务可能使用已存在的SOAP接口,可以进行大量的配置。

配置服务器和其他sipXec服务器组件通过文件系统或者其自身的XML RPC接口进行通信。对于在同一台服务器的情况,配置文件直接写在/etc/sipxpbx目录下。

有两种机制提供给电话和网关以便在开机时访问其各自的配置文件:
a) FTP和TFTP服务器都提供访问到sipXecs服务器的tftproot目录
b) HTTP Web访问可能到docroot目录. docroot 访问通过Apache服务器的8090端口提供。

电话和网关可以自动在局域网上配置,这样进一步简化了部署。

更好的语音质量

 

sipXecs提供更好的语音质量

(略去翻译N字)简言之:媒体流路径是点对点的,而不是像信令流那样一个个接力传递。通过SIP协议,主叫与被叫的IP互通,通过RTP直接建立媒体流。(VOIP都是这样,不知这怎么就成为更好语音质量的理由?)

 

第一代的IP小交架构


The Phone Thinks it Talks to a PhoneSIP is only used as a transport point-to-point and the IP PBX behaves like a phone.
The Inside is Proprietary Features are implemented in a proprietary way and not using SIP, but with the help of a little "Pixie Dust". Every vendor does it slightly differently.
Media Goes Through the IP PBXSince the whole system is setup as a collection of point-to-point links, media goes through the IP PBX server. This allows a simple, non-standard implementation of certain features such as call recording and music on hold, but otherwise has only disadvantages.h2. SIP Channels connect Point-to-PointThe trunk side again connects point-to-point as you would connect two phones.

By far not the only example is Asterisk but, because of its open source model, it is easy to examine. Based on a Back-to-Back User Agent (B2BUA) design, all links are point-to-point, making phones believe they talk to another phone even though they talk to the PBX. The PBX becomes a big monolythic block where everything has to go through and features are implemented in a proprietary way. While in the TDM world these PBXs were built on expensive fault tolerant HW, using an inexpensive PC server does not serve this model well as it laks scalability, resiliency and fault-tolerance. IAX, the Asterisk trunking protocol is specifically designed to bundle signaling and media in one fixed connection. The result is at best neutral when it comes to voice quality, but more often than not it is worse than what you would get with standard SIP.

Second Generation IP PBX Architecture

IMS for the EnterpriseA SIP based application router (SIP Proxy) is the heart of the system. Strict separation of signaling and media is a given. The phone talks to a proxy that routes the call through as many additional proxies as needed until the destination phone is reached.
The Phones Negotiate CodecThe phones negotiate a selection of codec directly and the media stream is routed along the most efficient route - better voice quality and a more resilient connection are direct consequences.
Features are implemented in Feature ServersInside the IP PBX every feature is implemented as a SIP feature server. These feature servers can be co-located in the same physical host or distributed across many systems.
High-Availability by DesignFailover redundancy and system resilience is simple to realize. Similar to the way web server farms load balance, so do SIP proxy servers.

功能列表

系统应用服务

SOA Architecture / Business Process Integration using Web Services

核心呼叫功能(电话功能)

911紧急响应

企业即时通信系统

Personal Assistant IM Bot

Presence and IM Federation

Web Conferencing & Collaboration

User Self-Control (User Web Configuration Portal)

高质量语音

用户管理

更多内容