Asterisk PBX

Asterisk PBX

  Asterisk [1]  是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把你的x86机 器变成你自己的交换机,还能够当作一台企业级的商用交换机。Asterisk让人激动的事情是它在小企业预算可承受的范围内提供了商业交换机的功能和可伸 缩性。你可以使用一台老式的奔腾3计算机,让你的机构看起来就同世界上的大企业一样。

  Asterisk[1] 能够支持传统的线路,包括:TDM (Time Division Multiplexing)T1/ E1 PRI/ PRA & RBS (Robbed Bit Signal)modesAnalog phone lines/ phones (POTS)ISDN (Integrated Services Digital Network)Both BRI (Basic Rate)and PRI (Primary Rate)Asterisk 支持的协议包括:Session Initiation Protocol (SIP)H. 323 (ITU standard, contributed support)Inter- Asterisk eXchange (IAX)Media Gateway Control Protocol (MGCP)


Private Branch Exchange,用户级交换机,即公司内部使用的电话业务网络,系统内部分机用户分享一定数量的外线。

编辑本段Asterisk能做什么?

  Asterisk 如同使用拼装玩具或乐高套件来搭建通信应用。正因为如此它被称为“套件”或“开发平台”。Asterisk 包含所有的用于构建 PBX 系统、IVR 系统、可以说现实中的任何通信方案的构件。诸如如下:
  1、各类 VoIP 协议的驱动。
  2、各类 PSTN 接口卡和设备的驱动。
  3、呼入路由和策略。
  4、呼出生成和路由。
  5、媒介管理功能(录音、播放、彩铃生成,等等)。
  6、账号和账单的通话详单。
  7、媒介转换(从一种媒介转换成另一种)。
  8、协议转换(从一种协议转换成另一种)。
  9、用于存取关系式数据库的信息的数据库集成。
  10、使用标准互联网协议存取数据的网络服务集成。
  11、存取公司目录系统的 LDAP 集成。
  12、单方和多方呼叫桥接。
  13、呼叫记录和侦测功能。
  14、集成用于呼叫处理的 "Dialplan" 脚本语言。
  15、基于 Asterisk 网关接口(AGI - Asterisk Gateway Interface) 的处理外部呼叫管理的程序或脚本的编程。
  16、基于 Asterisk 管理接口(AMI - Asterisk Manager Interface )的时间提醒和 CTI 集成。
  17、第三方的各种语音和方言的语音合成(或者称“文本语音转换”)第三方的各种语音识别。
  综合这些因素使得系统集成商或开发者能够快速生成一个语音使能系统。
  开放的 Asterisk 的含义也意味着它无需墨守成规。
  Asterisk 系统集成者小可建造 IP PBX,大可构架大型媒体运营系统。

编辑本段Asterisk核心应用

   Asterisk 作为程控交换机 PBX
  Asterisk 可以被配置为一个 IP 或混合的 PBX 的核心:交换呼叫、管理路由、使能特性,以及通过 IP、模拟线路(POTS)、以及数字(T1/E1)的联系同外部呼叫链接在一起。
  Asterisk 运行于众多的操作系统之上,诸如 Linux、Mac OS X、OpenBSD、FreeBSD 和 Sun Solaris。提供了一个 PBX 所能提供的所有功能甚至包括那些高级 PBX (也是昂贵的)的功能。Asterisk 的构架是基于如下他点来设计:最大程度的灵活性、支持众多的 VoIP 协议、使用廉价的硬件便可融合到几乎所有的电话设备等。
   Asterisk 作为网关 Gateway
  也可以被构建为一个媒介网关的中心,充当将传统的 PSTN 桥接到蓬勃发展的 IP 电话世界。Asterisk 的模块式的构、架构件使得媒介解码和一个宽范的通信协议可以转换。Asterik 担负一个:功能/媒介服务器。
  还需一个 IVR?Asterisk 已经为你准备到位。会议桥接呢?是的,也有。自动话务台呢?Asterisk 也准备到位。那么可以更换年久失修的电话系统吗?当然可以。统一消息转发?也没问题。网页配置一个电话接口?没问题。
   Asterisk 用于呼叫中心
  Asterisk 在全球范围范围内被呼叫中心采纳是基于其灵活性。呼叫中心和联系中心的开发者基于 Asterisk 构建了整套 ACD 系统。它也同时给现有的呼叫中心注入新鲜血液诸如:远程 IP 代理人功能、基于能力的高级路由、预测和海量呼叫等等。
   Asterisk用于公共网络
  互联网电话服务提供商(ITPS),区域电信业者(CLECS)以及甚至包括一线在职业者意识到使用 Asterisk 的开源通信的力量。基于 Asterisk 构建了功能服务器(Feature servers)、托管服务簇(hosted services clusters)、语音信箱系统(voicemail systems)、预付费呼叫解决方案(pre-paid calling solutions)等,这一切大大的降低费用并展现强大的灵活性。
   Asterisk 随处可见
  Asterisk 已经成为成千上万的通信解决方案的基石。想要通信,Asterisk 便是答案。
   支持的平台 - Supported platforms
  Asterisk® 源于 x/86 的 GNU/Linux 因而可被运行于 GNU/Linux for PPC 一类系统上诸如:OpenBSD、 FreeBSD、 和 Mac OS X。其它的平台和标准的 UNIX 类的操作系统理应不会太难地能够被时间和技能充足人们移植上去。
  Asterisk® 也有 Debian 稳定版。由 Debian VoIP Team 来维护。
   支持的硬件 - Supported hardware
  Asterisk® 用于 VoIP 不需额外的硬件。基于互联数字和模拟电话设备, Asterisk® 支持系列的硬件设备,这些硬件中的大多数由 Digium®,它也是 Asterisk 发明者,制造的。
   支持的协议 - Supported protocols
  Asterisk® 支持一个宽泛的用来处理在传统电话设备传输语音的协议,它包括 H.323、Session Initiation Protocol (SIP)、Media Gateway Control Protocol (MGCP)、and Skinny Client Control Protocol (SCCP)。
  使用 Inter-Asterisk eXchange (IAX™) VoIP 协议,Asterisk® 无缝地将语音和数据在异类网络融合在一起。语音打包的使用使得 Asterisk® 可以在语音链路上发送诸如 URL 信息和行间图像,使得信息能够高级集成。
  Asterisk® 通过四个 APIs 提供一个中心交换核心,这些 API 包括:电话应用模块载入、硬件接口、文件形式处理、和解码。这使得所有被支持的接口之间能够透明地切换;使得五花八门的电话系统得以被集成成一个统一的交换系统。

编辑本段特点 - Feature

  基于 Asterisk 的电话解决方案提供丰富和灵活的特性。Asterisk® 提供传统的 PBX 基本功用和先进的特性,它将传统的标准电话系统和 VoIP 有机地结合在一起。

编辑本段与硬件VOIP 比较

  Asterisk具有硬件VOIP 的常用功能。
  Asterisk能够支持多媒体,具有可编程功能。
  Asterisk有友好的管理界面。
  Asterisk需要的带宽,一般为:32KB/ 线路。也就是说每支持一条线路,只需要增32KB 的带宽,但是需要网络质量良好。
  Asterisk可支持成千的 客户端。(需要板卡与带宽支持)

编辑本段Asterisk开源软件的变化趋势及向嵌入式迁徙

  Asterisk开源项目经过十多年的发展,已经不再单独局限于IP-PBX的应用。实际上,按照,Digium在其asterisk论坛上给出的说法,Asterisk软件已经是一个平台,不仅可以用于IP-PBX的开发,也可以用于中继网关(TG),模拟电话适配器(ATA - Analog Telephone Adapter),甚至 IP Phone 产品的开发。 同时,Asterisk开源项目已经逐步发展称为一个 “统一通信” (UC)的解决方案。

  Asterisk开源项目应用的另一个变化是在嵌入式领域的发展。虽然最初Asterisk是基于X86主机加PCI扩展板卡运行的。但目前,一些基于MIPS或ARM的CPU也已经都可以运行Asterisk。其中比较著名的有OpenWRT,在OpenWRT的最新版本中已经包含了对Asterisk 1.6/1.8 版本的支持,简单的编译后既可在MIPS或ARM的硬件平台上运行(参考Asterisk On MIPS论坛)。


近年来,通信行业的开源项目不断涌现,打破了传统电信设备制造商对电信技术的垄断,为下一代网络(NGN)的发展注入了无限活力。  Asterisk是一个由Digium公司发起的开放源代码软件,以通用公共许可证(GNU GPL)的授权方式发行。Asterisk运行在Linux上,以软件的方式实现了(专用分组交换机,PBX)的大部分功能,是一个较全面的通信平台,既支持传统的模拟电话设备和数字电话设备,也支持新兴的基于网络的VoIP语音系统。Asterisk在小企业预算可承受的范围内提供了商业交换机的功能和可伸缩性。 
 
  1 基于Asterisk技术的电话会议系统研究 
 
  1.1 Asterisk特点 
 
  Asterisk是一款完全用软件实现,可以运行在Linux,BSD,MacOS X等操作系统上的IP分组交换机产品,是世界上最著名的开源VoIP服务器软件之一,为各国的VoIP爱好者所痴迷。实际上,Asterisk已经成为开源项目中语音交换和PBX的标准,而且基于Asterisk的VoIP解决方案也已成为许多中小企业的首选方案。Asterisk可以使用目前流行的编解码器和协议将VoIP电话系统与传统的公共交换电话系统集成起来,以较低的通话费用,提供较高的语音质量。 
 
  Asterisk可以连接数目众多的接口类型,包括模拟接口、数字线路,也可以透明地桥接VoIP之间的一些协议,包括SIP,H.323,IAX,MGCP等协议。 
 
  1.2 Asterisk体系结构 
 
  Asterisk体系结构简单,与传统电话技术的不同之处在于本质上扮演着一个中间件的角色,连接底层不同的电话技术到上层应用,创建了一个部署异构电话技术互通的持久性通信环境。 
 
  Asterisk是基于模块化设计的,多种模块都可以在运行中通过动态模块加载并初始化,用户可以根据实际需要动态增加相应的模块。As-terisk提供了四种基本的API函数集,以便于不同组件的交互,如信道API、Codec转换器API、文件格式API及应用程序API。对于应用程序API允许第三方厂商开发基于Asterisk的应用程序,本文正是通过这些接口,完成在电话呼叫阶段与Asterisk的交互,实现电话会议系统。 
 
  1.3 系统开发环境 
 
  在开发系统时,由于Asterisk源码便于在Linux中编译和运行,相对比较安全,对中小型软件的研发中,Linux可成为开发的首选操作系统。因此本系统选择Redhat Linux 9.0服务器版,在此基础上安装Asterisk软件包,该设计系统使用Asterisk开源平台。Asterisk的核心主要由三个包组成:Asterisk主程序(Asterisk)、Zapate电话驱动(Zaptel)和PRI库(libpri),还有一些其他软件,如语音附加包等。要实现电话会议,只需在Asterisk上对zaptel.conf,zapata.conf,sip.conf,extensions.conf和meetme.conf进行配置,就可以通过固定模拟电话、SIP电话完成常规呼叫和电话会议等功能。开发语言采用PHP/MySQL/Apache。 
 
  2 基于Asterisk技术的电话会议系统设计 
 
  2.1 设计方案 
 
  该系统是基于Web的电话会议业务,用户可以通过软终端、普通话机、SIP硬终端、手机等参加Web会议。会议管理员通过Web页面预约会议,并对会议进行实时管理,会议信息通过Web页面显示。 
 
  Web电话会议系统的功能包括预约会议、创建会议、呼叫成员、会议结束后处理一些计费等一些基本的步骤。当许多用户并发开会时,如何保证用户间的独立性;大部分API都是异步调用,如何同步整个逻辑流程;这些都是在此设计中重点考虑的问题。 
 
  (1)业务逻辑与Web服务器的通信。后台业务需要接收并处理Web页面发来的请求,同时向页面反馈处理结果。后台要响应所有页面Sess-ion发来的请求,因此这个问题可以分解为两个问题,一个是通信机制;另一个是页面Session与后台会议的对应关系。这个问题涉及到Web电话会议系统的架构,Web Conference业务是基于Web的业务,通过Asterisk软件平台提供的API/AGI实现。 
 
  (2)业务逻辑对呼叫会话的管理。在开会过程中每个会议都要对应一个会议呼叫会话(CCSession),通过这些呼叫会话向AGI网关发API调用请求,接收AGI网关的响应,区分响应该交给哪个业务处理,是对什么请求的响应。 
 
  (3)业务逻辑对会议的管理。后台要并发处理多个会议,必须把这些会议组织起来。向上要提供会议状态,向下能够区分接收的API响应属于哪个会议或成员。 
 
  2.2 设计思路 
 
  经过分析可以得出,Web电话会议系统的设计思路是:通过用户登录到Web服务器启动业务,页面通过PHPAGI调用Asterisk Manager API Action实现与Asterisk平台的交互。Asterisk调用AGI来访问数据库读取相应数据,并通过拨号方案、Meetme达到会议呼叫、会议管控与会议计费等功能,如图1所示。 


 
  2.3 设计开发举例  
 
  (1)Extensions.conf:Asterisk的核心配置文件,该配置文件形成PBX的呼叫方案。  
 
  电话打进处理:  

 
  其中:agi conf_admin.php是根据用户输入信息读取会议资料属性;011862556787948是被允许访问的中国号码。  
 
  Web触发电话呼入处理:  

 
  (2)Meetme.conf:用于配置MeetMe会议系统。在配置文件中,这里可以定义会议室和进入会议的密码来建立一个电话会议。  
 
  (3)Zaptel.conf:用于配置连接传统模拟电话硬件接口,建立一个FXS和FXO通道。  
 
  (4)Zapata.conf:用于为系统中安装的电话硬件配置Asterisk接口。通过Zaptel.conf和Zapata.conf对FXS/FXO接口通道进行配置,可以将模拟话机经过FXS接口,PSTN经过FXO或E1/T1接入到Asterisk服务器,也可以通过SIP协议,经过软交换实现VoIP的落地。  
 
  (5)Sip.conf:用于配置SIP协议。该文件的开始是一个[general]section,包含通道设置,所有用户和对端的默认选项。可以对系统注册的每个用户设置用户名、连接类型、认证密码和指令地点(用于控制电话的权限,以及如何处理此号码的呼入呼叫)。  
 
  通过以上配置文件的设置,即可实现电话会议系统的功能。  
 
  另外,Asterisk有开源数据库MySQL和开源编程语言PHP,Perl接口,所有经过Asterisk服务器的呼叫详细记录(CallDetailRecord)都被记录在数据库中,如双方的号码、ID、通话时间等。根据产生的呼叫详细记录信息,可以监控通信流量,进行流量统计和通话计费,而且Asterisk的数据库能和企业的现有数据库整合到一起。用户还可以通过PHP语言开发的Web程序对MySQL进行维护。  
 
  3 结语  
 
  这里提出的基于SIP协议的IP电话系统设计具有投资小,成本低,方便实用,可靠性强,安全性好等优点。该系统建立在通用的计算机网络上,可在局域网或Internet上使用,对用户无特殊要求,另外还可扩展成融文本、视频会议于一体的网络交互式多媒体系统;由于终端较多地借助了PC资源,所以系统具备了较高的智能性;系统设计规范,管理模块集中化,不仅降低了成本,而且更便于系统的操作和维护。由于该系统秉承了TCP/UDP协议族的简单性,绝大多数功能都能通过软件实现,且可进行简单的改进,因此可以满足不同的应用和需要。  
 

  随着IP技术的发展,传统电信网络将逐步向IP网络发展。NGN是融合多业务的IP网,是电信网络的发展方向。Asterisk与Linux等开源项目结合,可以在原有网络基础上为企业提供IP语音解决方案,具有广阔的应用前景。Asterisk以其独特的优势获得越来越多企业的青睐。开源项目在通信行业的不断发展,会给通信业注入无限的活力。


1、DAHDI是什么? 
    DAHDI表示Digium Asterisk Hardware Device Interface,Zaptel是"Zapata Telephony"的缩写。  
2、DAHDI的由来 
        Kevin Fleming是这样介绍DAHDI的来由的:“大约两年前(2006年),ZapTel商标的持有人找上我们,说ZapTel是他们的注册商标。从那时候起我们就在内部讨论,要把Zaptel改成DAHDI。DAHDI 2.0.0是第一个正式版本,覆盖了Zaptel 1.4 的几乎所有功能,除了某些过时的驱动版本和硬件之外。” 
    Asterisk 1.6将只支持DAHDI,而Asterisk 1.4将保留对Zaptel的支持。Asterisk 1.2不受影响。 
3、DAHDI与Zaptel对比 
    模块名称的改变: 

引用
chan_zap.so -> chan_dahdi.so 
app_zapbarge.so -> app_dahdibarge.so 
app_zapras.so -> app_dahdiras.so 
app_zapscan.so -> app_dahdiscan.so 
codec_zap.so -> codec_dahdi.so
 
 
        以下列出两者所对应的主要配置文件表:  
Zaptel 文件名 DAHDI 文件名 说明
/etc/zaptel.conf /etc/dahdi/system.conf 主要的配置文件
/etc/sysconfig/zaptel /etc/dahdi/modules, /etc/dahdi/init.conf 开机启动参数设置
/etc/init.d/zaptel /etc/init.d/dahdi 开机自动载入
/etc/asterisk/zapata.conf /etc/asterisk/chan_dahdi.conf Asterisk 配置文件
 
    主要指令和工具名称对照表:  
Zaptel DAHDI 说明
ztcfg -vv dahdi_cfg -vv 分析system.conf,配置语音卡参数
zttool dahdi_tool 语音卡检测、测试
genzaptelconf dahdi_genconf 生成Asterisk配置文件/etc/dahdi/system.conf
ztmonitor   dahdi_monitor 监控录音某个通道
ztscan dahdi_scan 扫描通道状态
ztspeed dahdi_speed 测试CPU占用率
zttest dahdi_test 中断稳定性测试
ztloop dahdi_loop 自环测试E1数字中继语音卡
 
 

        dahdi_hardware,显示检测到的DAHDI 硬件列表。  


关于Asterisk扩展性的问题一直有很多争议。下面是OpenSER团队做的当Asterisk作为SIP Back to Back User Agent (B2BUA)设备的性能表现。主要目的是: 
               1、Asterisk作为 B2BUA使用的时候最大并发能到多少? 
                2、每个呼叫占用多少资源?  
测试计划 
        我们精心设计了一个VoIP话务批发的条件下的网络环境,Asterisk V1.4.11 当作B2BUA,安装在一个双路双核2.33GHz CPU的服务器上。我们测试了两次。一次是不做任何编码转换的,一次是使用了G.711 到 G.729 的转换。 
测试结果 
无编码转换: 1500个并发呼叫,平均每个口 $2 成本。  
G.711 到 G.729转换:400 个并发呼叫,平均每个口成本 $17.50   
 
一、没有转码 
        下面的图是同时呼叫Asterisk B2BUA的服务器CPU和内存利用率。从B2BUA呼入呼出的所有RTP包通过使用G.711编解码器。内存利用率是最小的,CPU利用率随着同时通话的数量呈线性增长。在1560个并发呼叫的时候,CPU利用率达到92%。在2007年初,这个服务器的零售价是3000美元。3000美元的硬件成本除以1500个并发呼叫等于每个B2BUA端口2元。 

  
二、G.711到G.729的转码 
        下面的图是测试服务器作为Asterisk B2BUA并发呼叫时候的CPU和内存利用率。呼叫B2BUA使用G.711编解码器,然后利用Asterisk转码到G.729。内存利用率是最小的,CPU利用率随着同时通话的数量呈线性增长。在414个并发呼叫,CPU利用率达到93%。这台服务器价值3000美元。Digium公司提供G.729编解码器的许可证版税是每端口10美元。系统总成本是3,000元服务器硬件加4,000元G.729编解码器专利费(10元每端口乘以400端口)总共是7,000元。每B2BUA端口的成本是$ 7,000除以400个并发呼叫,每端口17.50美元。 

  
 
测试场景 
        下图说明了测试网络和呼叫情景。Asterisk B2BUA服务器是戴尔Precision 490,两个Intel Xeon 5140双核CPU,2.33GHz和4 GB RAM。 

  
 
1、SIPP客户端的SIP INVITE发送到Asterisk B2BUA。 
2、Asterisk的发送OSP AuthorizationRequest OSP服务器。OSP服务器返回一个OSP AuthorizationResponse随机顺序有五个可能的目的地。  
3、Asterisk的发送SIP邀请到目的地。只有SIPP服务器可以完成呼叫。其他目的地的模拟呼叫失败。平均而言,Asterisk的尝试调用前两SIPP服务器完成调用失败目的地。 
4、通话结束时,Asterisk向OSP服务器发送一个呼叫详细记录(CDR)。 
下载详细测试文档点这里:  Asterisk_Performance_as_a_SIP_B2BUA.pdf (187 K) 下载次数:19 ,对需要测试性能的朋友很有帮助的。


elastix是基于asterisk的,它的发行包里也包含有asterisk。
通信能力是asterisk提供的,elastix只是提供了一些外层封装的应用工具及管理工具,方便使用的那种;你可以理解为asterisk是操作系统,elastix是安装在操作系统之上的办公软件。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值