APP下载

基于OpenBTS和Asterisk的移动通信实验系统设计与实现

2014-05-03涂继辉苏丽秋

实验技术与管理 2014年5期
关键词:信令二次开发短信

涂继辉,苏丽秋

(1.长江大学 电信学院,湖北 荆州 434023;2.鹤壁职业技术学院 电子信息工程学院,河南 鹤壁 458030)

全球移动通信系统(GSM)是移动通信中最成熟的系统之一,因此GSM的移动通信实验平台的建设与开发对于提高通信类课程教学质量、让学生了解移动通信理论和架构以及理论联系实际具有重要的意义[1]。目前国内大多数高校使用的移动通信实验系统分为3类:第1类是一些教学设备厂家开发的移动通信实验箱,移动基站主要靠中国移动或者中国联通的基站,而且这类实验平台大多都只是停留在移动终端的学习,无法了解移动基站的网络架构,也无法进行二次开发,因此不能完全满足移动通信的实验教学[2-3];第2类是由中兴、华为公司等开发的商用移动通信系统构成,该类实验平台虽然具有和实际应用结合紧密、功能全面和封闭性好等特点,但价格昂贵,系统部署困难,升级难度大,不利于教学;第3类是高校自己研发的仿真实验,虽然能够让学生了解通信的原理和编码,但是与实际的真实通信系统有一定差别,学生无法了解真正的移动通信的架构和原理[4-5]。针对目前的现状,本文在深入分析移动通信理论的基础上,提出了符合实际教学需要、基于OpenBTS和Asterisk的移动通信实验系统,该实验系统具有完整的移动通信的体系架构和完善的二次开发功能,学生可以直观了解移动通信系统的网络结构并可进行二次开发。同时由于该实验系统相对于商用移动通信系统价格低廉,整个实验平台通过web进行管理,每个实验小组都可以单独对移动基站进行配置和管理,这也增加了每个学生参与实验的机会。因此该实验系统为学生学习移动通信提供了很重要的实验环境。

1 OpenBTS和Asterisk简介

OpenBTS[6-8]是 在 开 源 软 件 无 线 电 GNU Radio基础上开发的一种软件GSM基站系统,它能够通过通用软件无线电设备(USRP)来实现与GSM手持端的空中接口(Um),并通过开源的软交换系统Asterisk进行语音业务的数据交换。目前,OpenBTS已经作为移动通信系统在美洲一些人口密度低的地区商用化,未来OpenBTS在移动定位技术、3G技术等方面有很强的扩展性。

Asterisk[9-10]是 Digium 公司赞助开源开发的、运行在Linux环境下的软交换解决方案,是为企业通信量身定做的“媒体交换机”。它的主要特点有[9-10]:一是支持多种主流的VoIP协议,包括会话初始协议(session initiation protocol,SIP)、H.323(国际电信工业会的一种标准)、IAX(Inter-Asterisk x-Change)、媒体网关控制协议(MGCP-Media Gateway Control Protocol)等;二是提供了完善的PBX功能,可以连接普通电话机、IP电话机和软电话等多种不同的电话终端,支持多种主流的IP电话协议的语音网关,提供如语音信箱、会议电话、交互式语音提示和自动电话转接等以前只有昂贵的专业PBX系统才支持的功能;三是提供了强大的二次开发功能,提供了丰富的底层接口函数和二次开发的框架,用户能很方便在此基础上进行灵活的二次开发,实现极具个性的软交换增值业务功能。

利用OpenBTS和Asterisk实现移动通信系统有如下考虑:

(1)OpenBTS是个基于GSM的开源移动基站解决方案,在实验教学中有利于学生对移动基站的网络架构和原理有直观的了解。另外,开源的解决方案既不会涉及版权问题,也大大降低实验系统的费用;

(2)OpenBTS用于信令和语音交换的开源交换系统Asterisk提供了强大的完善的PBX功能,有利于学生了解移动交换的网络结构、基本通话流程和实用有趣的增值业务功能,有利于调动学生实验的积极性;

(3)OpenBTS用于信令和语音交换的开源交换系统Asterisk具有强大的二次开发功能,实验中学生可以充分发挥自己的想象力,实现一些丰富多彩的增值业务,培养学生的创新能力。

2 实验系统的设计

2.1 移动通信实验系统整体结构

OpenBTS和Asterisk作为开源移动通信的解决方案,虽然具有完善的体系结构和强大的功能,但直接作为移动通信实验系统会存在如下问题:一是作为开源系统的OpenBTS和Asterisk系统配置参数较多且复杂,不利于使用;二是处于Linux运行环境的Asterisk没有完善的二次开发环境,进行二次开发较为困难。因此,如果用它来面向移动通信实验课程的教学,需要对其进行改造,添加一些人性化的外围控制和管理界面,同时配备实验需要的辅助软件。

本文基于OpenBTS和Asterisk设计的实验系统整体结构如图1所示,由移动交换系统、网络交换机、基站和手机等组成,包含了移动通信终端的入网、呼叫控制、管理、计费和各种增值业务等功能。整个实验系统通过Web页面进行配置和管理,操作起来简单方便。同时为了让学生更加直观地理解GSM中的通信流程,实验系统利用Wireshark监听和分析GSM协议。为了便于学生进行二次开发,对Asterisk中常用于二次开发的函数进行了归纳和说明,搭建出了二次开发模块的框架,并实现了一个独立编译二次开发模块的脚本文件。本文只画出了单个移动交换系统下带有多个基站的情况,如果需要,可以扩展为多个移动交换系统并互联,移动交换系统下带有多个基站。

图1 移动通信实验系统整体结构图

2.2 移动系统的设计

移动通信系统分为两部分:一部分是移动基站系统,另一部分是移动交换系统。移动基站系统通过OpenBTS软件部分和软件无线电外设USPR来实现。OpenBTS主要模块有无线电收发器、OpenBTS协议栈、短信平台和系统配置数据库。移动交换系统通过Asterisk来实现,Asterisk多数模块都可以在运行时通过动态模块加载器加载并初始化,用户可以根据实际需要动态增加和减少相应的模块。Asterisk系统主要分为4个部分:Asterisk内核部分、文件管理部分、编码部分和上层应用部分。

OpenBTS已经能完成移动通信基站的基本功能,为了使OpenBTS满足移动通信实验的需要,本文对OpenBTS做了如下改造:OpenBTS的数据配置和管理主要是利用SQLite数据库,本文通过增加Web模块部分主要面向用户使用,用户可以通过Web界面对OpenBTS进行配置和控制;OpenBTS缺少中文短信编码,因此在OpenBTS中添加中文短信编码来方便通过Web进行中文短信的收发,或者在手机入网时,发送中文短信欢迎词。OpenBTS改造后的系统结构如图2所示。

图2 OpenBTS的系统结构

Asterisk整体结构和功能比较完整,为了便于移动通信实验的需要,本文对Asterisk做出了如下改造:

(1)外围添加了如图3所示的模块,Asterisk早期版本数据配置和管理主要是文本方式,通过添加数据库接口模块把数据配置和管理变为数据库方式,DB数据库主要利用MySQL数据库帮助存储系统相关的配置和数据,Web模块部分主要面向用户使用,用户可以通过Web界面对Asterisk进行配置和控制。

图3 Asterisk系统结构图

Web模块结构图如图4所示:控制模块主要负责系统的的启动、关闭和重启;号码管理模块主要负责移动通信系统的号码的管理;状态显示模块负责移动号码的各种状态的实时显示;话单记录模块负责话单记录的管理;系统对接模块负责移动交换系统之间的互通;短信功能负责通过web向某个手机发送短信。

(2)为了实现和真实移动通信网络中相同的业务,本文利用Asterisk模块化的特点,在它的基础上实现了3个增值业务模块,分别是:呼叫控制管理模块、短信查询话费模块、IVR导航模块。其中呼叫控制管理模块负责用户预付费认证、通话控制、呼叫转移和记录话单;短信查询话费模块实现了利用特服号码查询用户的话费余额,并以短信方式发送给用户;IVR导航模块负责自动人工台的服务。3个增值业务模块的设计流程如图5—图7所示。

图4 Web模块结构

图5 呼叫控制流程图

2.3 信令分析设计

OpenBTS有比较完善的日志信息,方便用户在使用的过程中了解系统运行情况。这些日志信息中包含了系统的状态信息、错误信息和信令信息,其中的信令信息可以用于学生在做实验的过程中了解移动通信中GSM信令的流程。但是由于OpenBTS的日志信息只能在本地输出,不利于学生的查看。为了方便学生查看OpenBTS中的GSM 信令流程[11],对OpenBTS做了如下修改:把OpenBTS的GSM信令通过UDP的方式向远程某个主机进行远程输出;在远程GSM信令主机上装上Wireshark抓包软件,在主机的特定端口上进行监听。通过这样修改,学生在实验中就可以很方便地在远程主机上查看移动通信过程中GSM信令,并进行分析。

图6 短信查费流程图

图7 IVR导航流程图

2.4 二次开发的设计

移动通信的增值业务主要通过移动交换系统来完成,作为移动交换系统的Asterisk是一个模块化很强的系统,允许第三方厂商开发基于Asterisk的应用程序,如电话会议以及语音邮件系统等,用户可以根据自己的需要开发出许多新的应用程序,但它没有完善的开发环境,如果让学生直接在上面开发,会有很大的困难,为了让学生在不了解Asterisk本身架构的前提下根据自己的想法开发出应用模块,本实验系统实现了一个较为完善的开发环境,具体实现过程如下:

(1)对Asterisk的常用应用功能函数进行了归纳和总结,生成用于二次开发的函数库的说明文档。

(2)根据Asterisk的开发模式设计了应用程序开发的框架。应用程序包括应用申明和定义模块、初始化加载模块、应用执行模块和卸载模块。应用申明和定义模块主要是定义应用程序的应用名称和说明,初始化加载模块是在系统启动的时候对其进行初始化,应用执行模块是在系统调用应用程序时完成执行过程,卸载模块是在系统退出的时候归还所占用系统资源。为了能够方便编译出Asterisk特有的应用动态链接库模块,开发出用于独立编译应用模块的Makefile[12]脚本文件。

(3)定义了如图8所示的二次开发流程,要求学生:①根据自己的想法画出二次开发的设计流程图;②学生按照设计思路根据已有的程序框架和函数库完成自己的设计程序代码;③学生利用Makefile脚本对代码进行编译;④学生上传自己功能模块所需要的语音文件;⑤利用web页面上的拨号规则配置页面设置应用模块对应的特服号码;⑥重启移动交换系统,对自己的程序进行测试和运行。

图8 二次开发流程图

3 实验系统的测试

3.1 测试环境

(1)测试环境配置条件:①Asterisk 1.4.9,操作系统 CentOS 5.2,数据库 MySQL 5.0;②OpenBTS 2.6,操作系统 Ubuntu 10.04,数据库 SQLite 3.0;③用于组建局域网的神州交换机;④USRP软件无线电硬件板;⑤手机3部,即三星(智能机)、HTC(智能机)和诺基亚(非智能机)。

(2)测试环境搭建:按照上述配置搭建测试环境,其结构如图9所示。

图9 系统测试环境

3.2 测试结果

由于文章篇幅关系,只罗列出部分测试结果。图10(a)为基站系统的web管理界面,可以通过web对系统进行控制(见图10(b))。如图10(c)所示,可以通过本实验平台设计的信令分析模式对GSM通信数据包的截获。图11(a)为移动交换系统的web管理界面图,通过图11(b)的页面启动移动交换系统,然后通过图11(c)的页面对实验平台的号码进行配置,并对移动交换系统下的基站进行配置,最后实验系统下的手机之间就可以互相通信,同时也可以互相发送短信,通话结束后如图11(d)所示查看通话的记录信息。

图11 移动交换系统的管理截面图

通过测试表明,学生可以通过web界面动手配置和控制移动基站及移动交换系统,然后完成手机的各种终端之间的互通以及短信收发等实验,最后通过信令分析软件了解GSM的通信流程。编程能力较强的学生也较为顺利地在实验系统上实现了二次开发。使用表明,系统功能正确,性能较好,能满移动通信实验教学的需要。

4 结束语

针对目前移动通信实验的需要和存在的问题,本文提出了一种基于OpenBTS和Asterisk的移动通信实验系统。该实验系统功能齐全,运行可靠,符合通信网络的标准接口,不但可以让学生完成移动通信实验基本配置实验、移动电话入网和通话、移动电话的短信通信、GSM信令的分析等基础性实验,而且可以完成如呼叫转移、呼叫中心和短信查询话费等智能业务的综合性二次开发实验。同时,相对于商用的移动通信设备具有价格相对较低,节省教学经费。本实验平台已经在长江大学电信学院的通信实验室投入使用,收到了良好的效果。

[1]余厚全,吴凌云,陈永军.电子信息类专业实验教学的几点思考[J].实验室研究与探索,2009,28(6):102-104.

[2]孙明杰.开放式移动通信实验系统的研制[D].成都:成都理工大学,2009.

[3]韦再雪,常永宇,王文博.基于CDMA2000 1X移动通信实验平台的建设与开发[J].实验科学与技术,2008,25(6):101-103,107.

[4]戴翠琴,冉海霞,鲍宁海.移动通信课程实验教学改革与平台建设[J].实验技术与管理,2012,29(2):144-147.

[5]蒲秀娟,韩庆文.移动通信实验课程探索[J].实验室研究与探索,2005,24(5):77-79.

[6]David A Burgess,Harvind S Samra.The OpenBTS Project[EB/OL].(2008-8)[2013-07-25].http://openbts.sourceforge.net/.

[7]朱赛赛.OpenBTS信号处理和无线资源管理的研究[D].济南:山东大学,2012:6,17-18.

[8]赵东风,于晓磊,李文勋,等.高校通信实验室软交换系统实验设计[J].实验科学与技术,2011,9(5):1-3,8.

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

[10]GSM infrastructure used for data transmission[C]//Proc of IEEE International Conference on Advanced Topics in Electrical Engineering.2011。

[11]王权,张训报,李向.基于Linux系统的数据包截获技术研究[J].计算机与数字工程,2009,37(4):64-66.

[12]马晓煜,齐琳.Linux2.6下 Makefile文件的分析与研究[J].微计算机信息,2006,22(5):232-233,249.

猜你喜欢

信令二次开发短信
浅谈基于Revit平台的二次开发
SLS字段在七号信令中的运用
浅谈Mastercam后处理器的二次开发
道歉短信
移动信令在交通大数据分析中的应用探索
代发短信
基于信令分析的TD-LTE无线网络应用研究
西门子Easy Screen对倒棱机床界面二次开发
LTE网络信令采集数据的分析及探讨
基于Pro/E二次开发的推土铲参数化模块开发