0 引言
近年来,通信行业的开源项目不断涌现,打破了传统电信设备制造商对电信技术的垄断,为下一代网络(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所示。
作者:刘 薇 来源:现代电子技术