基于Asterisk的电话会议系统研究与设计
近年来,通信行业的开源项目不断涌现,打破了传统电信设备制造商对电信技术的垄断,为下一代网络(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以其独特的优势获得越来越多企业的青睐。开源项目在通信行业的不断发展,会给通信业注入无限的活力。
研究 设计 会议系统 电话 Asterisk 基于 交换 相关文章:
- 基于TD-LTE的移动互联网研究(03-01)
- RFID在Rifidi中的仿真研究(06-14)
- 高频和微波功率基准及其应用研究(04-12)
- 基于RFID技术的后方仓库管理系统研究(08-14)
- HSDPA无线网络合/分载频规划方案的研究(06-13)
- MACH 2系统TDM通信接口的研究(05-20)