首页 > 范文大全 > 正文

基于Asterisk的电话会议系统研究与设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Asterisk的电话会议系统研究与设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:近年来,Asterisk已经成为开源项目中语音交换和PBX的标准,而且基于asterisk的VoIP解决方案也成为许多中小企业的首选方案。在此讨论了开源项目Asterisk的体系结构及其功能,并以Linux为网络操作平台,以Asterisk作为开发工具,以MySQL作为数据库支持构建一种基于SIP的电话会议系统。这里提出的基于SIP协议的IP电话系统设计具有投资小,成本低,方便实用,可靠性强,安全性好等优点。由于系统设计规范,管理模块集中化,不仅降低了成本,而且更便于系统的操作和维护。该系统秉承了TCP/UDP协议族的简单性,绝大多数功能都能通过软件实现,且可进行简单的改进,以满足不同的应用和需要。

关键词:开源软件; Asterisk; VoIP; 拨号方案; 电话会议系统

中图分类号:TP393.02文献标识码:B

文章编号:1004-373X(2010)08-0077-03

Research and Design of Teleconference System Based on Asterisk

LIU Wei

(Fuzhou Institute of Technology, Fuzhou 350108, China)

Abstract:In recent years, Asterisk has become a standard ofvoice exchange and PBX in the open source projects, and a solution based on Asterisk for VoIP has become the first choice of many small and medium enterprises. The system structure and its function of Asterisk Open-source project are discussed. A SIP-based teleconference system is estallished by taking Linux as the networkoperation platform, Asterisk as a developmental tooland MySQL as database′s support. SIP-based IP telephone system has the charactescstics ofsmall investment, low cost, convenience, reliabilityand security. the system can meet different applications and needs after a simple modification because the system inherits the simplicity of TCP/UDP protocol, and most of functions is realized by softwares.

Keywords:open-source software; Asterisk; VoIP; dial plan; teleconference system

0 引 言

近年来,通信行业的开源项目不断涌现,打破了传统电信设备制造商对电信技术的垄断,为下一代网络(NGN)的发展注入了无限活力[1]。Asterisk是一个由Digium公司发起的开放源代码软件,以通用公共许可证(GNU GPL)的授权方式发行。Asterisk运行在Linux上,以软件的方式实现了(专用分组交换机,PBX)的大部分功能,是一个较全面的通信平台,既支持传统的模拟电话设备和数字电话设备,也支持新兴的基于网络的VoIP语音系统。Asterisk在小企业预算可承受的范围内提供了商业交换机的功能和可伸缩性。

1 基于Asterisk技术的电话会议系统研究

1.1 Asterisk特点

Asterisk[2]是一款完全用软件实现,可以运行在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是基于模块化设计的,多种模块都可以在运行中通过动态模块加载并初始化,用户可以根据实际需要动态增加相应的模块。Asterisk提供了四种基本的API函数集[3],以便于不同组件的交互,如信道API、Codec转换器API、文件格式API及应用程序API。对于应用程序API允许第三方厂商开发基于Asterisk的应用程序,本文正是通过这些接口,完成在电话呼叫阶段与Asterisk的交互,实现电话会议系统。

1.3 系统开发环境

在开发系统时,由于Asterisk源码便于在Linux中编译和运行,相对比较安全,对中小型软件的研发中,Linux可成为开发的首选操作系统。因此本系统选择Redhat Linux 9.0服务器版,在此基础上安装Asterisk软件包,该设计系统使用Asterisk开源平台[4]。Asterisk的核心主要由三个包组成:Asterisk主程序(Asterisk)、Zapate电话驱动(Zaptel)和PRI库(libpri),还有一些其他软件,如语音附加包等。要实现电话会议,只需在Asterisk上对zaptel.conf,zapata.conf,sip.conf,extensions.conf和meetme.conf 进行配置,就可以通过固定模拟电话、SIP 电话完成常规呼叫和电话会议等功能[5]。开发语言采用PHP/MySQL/Apache。

2 基于Asterisk技术的电话会议系统设计

2.1 设计方案

该系统是基于Web的电话会议业务,用户可以通过软终端、普通话机、SIP硬终端、手机等参加Web会议。会议管理员通过Web页面预约会议,并对会议进行实时管理,会议信息通过Web页面显示。

Web电话会议系统的功能包括预约会议、创建会议、呼叫成员、会议结束后处理一些计费等一些基本的步骤。当许多用户并发开会时,如何保证用户间的独立性;大部分API都是异步调用,如何同步整个逻辑流程;这些都是在此设计中重点考虑的问题。

(1) 业务逻辑与Web服务器的通信[6]。后台业务需要接收并处理Web页面发来的请求,同时向页面反馈处理结果。后台要响应所有页面Session发来的请求,因此这个问题可以分解为两个问题,一个是通信机制;另一个是页面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所示。

图1 电话会议系统设计流程图

2.3 设计开发举例

(1) Extensions.conf:Asterisk的核心配置文件,该配置文件形成PBX的呼叫方案。

电话打进处理:

[dialin-conf]

exten => _X.,1,ExecIf($[ "${EXTEN}" = "011862556787948" ],Set,CHANNEL(language)=cn)

exten => _X.,n,ExecIf($[ "${EXTEN}" = "011862556787947" ],Goto,amytest|meet|1)

exten => _X.,n,Set(play=conference/conf-getconfno|try=1)

exten => _X.,n(read),Read(data,${play},10,,3,5)

exten => _X.,1,ExecIf($[ "${EXTEN}" = "011862556787948" ],Set,CHANNEL(language)=cn)

exten => _X.,n,ExecIf($[ "${EXTEN}" = "011862556787947" ],Goto,amytest|meet|1)

exten => _X.,n,Set(play=conference/conf-getconfno|try=1)

exten => _X.,n(read),Read(data,${play},10,,3,5)

exten => _X.,n,AGI(conf_admin.php,${data})

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

Web触发电话呼入处理:

[conference]

exten => s,1,Hangup

exten => s,n,AGI(conf_admin.php,${data})

exten => s,n,NoOp(${Agent})

exten => s,n,Set(CALLERID(name)=${name}|MEETME_RECORDINGFORMAT=gsm|MEETME_EXIT_CONTEXT=

conference-exit|MEETME_RECORDINGFILE=/usr/local/ferser/var/spool/meetme/conf-rec-${data})

(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,包含通道设置,所有用户和对端的默认选项。可以对系统注册的每个用户设置用户名、连接类型、认证密码和指令地点(用于控制电话的权限,以及如何处理此号码的呼入呼叫)。

通过以上配置文件的设置,即可实现电话会议系统的功能[7]。

另外,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]蔡康, 李洪, 朱英军, 等. 下一代网络(NGN)业务及运营\. 北京: 人民邮电出版社, 2004.

[2]Asterisk: 电话未来之路CHN 2.0\. \. http: //www. asterisker. cn.

[3]汤卓凡, 栾杰. 基于Asterisk的VoIP解决方案\. 计算机系统应用, 2005(7): 79-81, 26.

[4]王继鹏, 张维. 基于Asterisk构架企业通信系统的研究\. 科学技术与工程, 2007, 7(5): 738-741.

[5]赖锋. Asterisk on Rails的应用研究\. 电脑知识与技术, 2006(12): 107, 118.

[6]甘洪波. 基于宽带智能网平台的Web电话会议系统\. 成都: 电子科技大学, 2006.

[7]GOMILLION David, DEMPSTER Barrie. Building Tele-phony Systems with Asterisk\. UK: Packt Publishing, 2005.