当前位置:首页 > 通信技术 > 通信技术
[导读]引言 随着移动终端设备朝着越来越智能化的方向发展,原本只具备简单通话功能的手机,也开始增加越来越多的服务功能。在移动终端上实现更多的功能,已经成为研发人员的一个新目标之一,这些功能为人们的生活提供

引言
    随着移动终端设备朝着越来越智能化的方向发展,原本只具备简单通话功能的手机,也开始增加越来越多的服务功能。在移动终端上实现更多的功能,已经成为研发人员的一个新目标之一,这些功能为人们的生活提供着极大的便利,而VoIP技术就是其中的一个重要应用。现如今,VoIP技术已经在计算机上得到了广泛的应用,出现了一大批基于VoIP的应用软件,而随着移动终端逐渐可以方便地接入WLAN,在其上面进行多媒体技术的开发已经成为一个新的热点,尤其是在现如今最热门的Android操作系统上面。随着移动终端的处理能力日益强大,可以实现过去无法进行的复杂视频编解码处理,因此如果进一步结合VoIP技术,实现一个VoIP可视通话系统,这将是一个很好的研究课题,同时也将会有很好的市场前景。

1 系统设计方案和系统结构
1.1 系统设计方案
   
本方案所设计的局域网内基于Wi—Fi的可视化VoIP通话系统主要包含了以下功能:
    ①移动终端(如手机、PDA)用户对系统个性化的配置,用户可以根据自己的需求和爱好选择需要的功能;
    ②实现移动终端用户向服务器发出请求并完成注册的功能;
    ③移动终端用户对语音视频数据的采集和编码,并通过RTP(实时传输协议)/RTCP(RTP传输控制协议)进行传输和控制;
    ④OpenSIPS开源服务器完成对会话的控制,包括会话的注册、发起、维护与结束、注销等功能;
    ⑤界面的开发,作为一个应用程序。一个友好的界面是不可或缺的,我们通过它来与用户进行交互。
1.2 系统结构
   
系统的总体架构采用了客户端和服务器(C/S)模型,客户端利用自身的Wi—Fi模块接入网络。通过SIP协议与Open SIPS服务器建立会话,在传输层以IP数据包的形式传输语音视频数据。基于Wi—Fi的可视化VoIP通话系统结构如图1所示。


    系统主要由SIP客户终端和OpenSIPS开源服务器两部分组成。客户终端采用Android操作系统的智能手机和平板电脑。客户终端包括了SIP User Agent逻辑实体,并且支持AMR、G.729音频编解码,以及H.263和H.264视频编解码。

2 系统开发中关键技术的研究
2.1 SIP协议
   
SIP协议(Session Initiation Protocol,会话发起协议)是由IETF(Internet工程任务组)2001年提出的IP电话信令协议,用于在IP数据网络上建立、改变和结束多媒体会话。SIP能够使用互联网的端点(用户代理)来发现参与者,并且协商它们共享会话的特性,SIP独立运行于底层的通信协议之上,并且不依赖于所建立的会话类型。SIP协议的主要目的是解决IP网中的信令控制,以及同Soft Switch的通信,从而构成下一代的增值业务平台,对电信、银行、金融等行业提供更好的增值业务。
    SIP是一个应用层的控制协议,可以用来建立、修改和终止多媒体会话(或者会议),例如互联网电话。SIP也可以邀请参与者参加已经存在的会话,例如电话会议。它可以很方便地在一个已经存在的会话中增加(或者删除)媒体。SIP透明地支持名字映射和重定向服务,这些特性用于支持个人移动业务,也就是说用户可以使用一个唯一的外部标识,而无须考虑它们所在的实际网络位置。SIP在建立和终止多媒体通信方面支持了很多的功能。
2.2 Android手机操作系统
   
Android是一种以Linux内核为基础、源码开放的手机操作系统。Android系统采用Java语言开发,它内部含有一个Dalvik虚拟机(Dalvik VM),应用程序运行在Dalvik虚拟机上,而Dalvik虚拟机则运行在Linux内核上。Androld利用JNI实现了Java与C的通信。Android系统的体系结构分为了4层:
    ①Linux内核层,是硬件和应用软件之间的抽象层,提供硬件抽象功能,提供安全机制、内存管理、进程管理、网络协议堆栈和驱动程序等;
    ②中间件层,包括函数库和Androld运行时,其中函数库主要提供一组基于C/C++的函数库,Android运行时包括核心库和Dalvik虚拟机;
    ③应用程序框架层,采用Java语言实现,它提供了Androld平台基本的管理功能和组件重用机制;
    ④应用程序层,提供贴近用户的Android应用功能程序,包括闹钟、记事本、通讯录、电子邮件客户端、浏览器和日历等。
2.3 OpenSIPS服务器的介绍和配置
    OpenSIPS是一个成熟的开源SIP服务器,它除了提供基本的SIP代理及SIP路由功能外,还提供了一些应用级的功能。OpenSIPS的结构非常灵活,其核心路由功能完全通过脚本来实现,可灵活定制各种路由策略,方便地应用于语音视频通信、IM以及Presencce等。同时OpenSIPS是目前性能最高的SIP服务器之一,可用于电信级产品构建。OpenSIPS凭借其可扩展、模块化的系统架构提供了一个高度灵活的、用户可配置的路由引擎,可以为voice、video、IM和presence等服务提供强大高效的路由、鉴权、NAT、网关协议转化等功能。由于其稳定高效等特点,OpenSIPS已经被诸多电信运营商应用在自己的网络体系中。
    本系统中,我们对OpenSIPS进行了基本的配置,主要是通过配置文件opensips.cfg来实现的。该配置文件主要分为三个部分:
    ①第一部分主要是全局变量的设置,通过“Listen=udp:192.168.1.100:5060”语句来指定用于侦听接收sip消息的端口和传输层协议;
    ②第二部分主要是加载模块,并设置模块的相应参数;
    ③第三部分主要是路由的策略和功能应用。
    通过一些简单的配置,我们就能够确保服务器端正常工作,为客户端与服务器之间的通信提供了保障。完成配置后,我们在超级终端上应用openserctl start和openserctl stop命令开启和关闭OpenSIPS服务器。

3 系统客户端的设计
3.1 客户端软件设计的体系架构
   
可视化VoIP通话系统客户端的设计是基于Android平台来实现的,Android是完全免费开放的移动设备平台,这给系统的开发提供了有利的条件。为了提高系统的可扩展性和可移植性,根据Android的系统架构,本设计的可视化VoIP通话系统软件架构如图2所示。


    我们将客户端软件架构分成了UI层、Engine层、SIP层和网络传输层4个部分,各层主要实现的功能如下:
    ①UI层。主要负责界面显示模块和界面事件的传递。
    ②Engine层。这一层是软件的核心处理层,它启动各种服务、初始化软件参数、处理各种UI事件、维持配置文件信息和保存全局属性变量。其中包括UserAgenProfile(用户配置文件属性),UserAgent(用户事件处理),VoIPEngine(核心处理中所有的UI事件、参数设计、服务
的启动都由此文件调度),以及RegisterAgent(注册服务处理)。
    ③SIP层。提供所有的SIP消息模型,所有SIP消息的处理流程,包括发送、接收、封装、解码等等。
    ④网络传输层。提供音频、视频信息的处理,此模块对音频、视频进行即时编解码,同时发送数据。
3.2 客户端软件主要功能模块的实现
3.2.1 通话功能模块的实现
   
通话功能是系统的核心模块,该模块负责实现通话的整个流程,包括了注册服务器、会话的发起和接收以及会话的结束。通话模块的流程如图3所示。


    首先,客户端软件进行系统资源以及配置文件的初始化。初始化工作完成后,从主线程里创建一个SIP消息监听线程。该线程用来监听和处理SIP消息,创建子线程成功后,主线程向服务器发起注册请求,待客户端注册成功后即可发起和接收会话进行语音、视频通信,会话结束后,伴随着Activity的结束。在此过程中,主线程发出了一个结束信号给SIP消息监听线程,SIP消息监听线程收到这个结束信号后调用finish()方法退出,等待用户的下一次呼叫操作。
3.2.2 媒体流管理模块的实现
   
在本系统中,媒体流管理模块用来实现通话过程中音视频的实时采集、编码和播放功能,为了便于系统的调用,设计中实现了几个主要的功能函数StartMediaStream()、StopMediaStream()、InitMediaChannel(),分别完成开启音视频操作、关闭音视频操作、媒体流通道的初始化。为了具体实现媒体流的管理功能,系统需要向下调用RTP/RTCP库、音视频编解码、采集播放等接口。使用RTP/RTCP协议是目前解决流媒体实时传输问题的最好办法,RTP负责流媒体数据的发送和接收,而RTCP负责提供数据分发质量反馈信息。
    对于编解码库的加载,系统中采用了JNI技术实现了底层C/C++与上层Java的通信,具体的函数语句如下:
    static{
        System.loadLibrary(“Mediacodec”);
    }
    其中,Mediacodec是视频编解码动态链接库的名称,源文件为Mediacodec.so,通过以上方法,我们实现了底层和上层应用之间的通信。

4 封装与测试
   
为了能够在Android操作系统的智能手机和平板电脑上面方便地移植和使用该系统,在实现了各模块的功能后,还需将上面所有的模块进行封装。Android SDK本身就提供了一些很有用的工具。由于本文的重点环节不在于Android SDK上,所以我们采用集成开发工具——集成在Eclipse中的ADT插件来对整个系统进行封装。在工程libs(如果不存在则新建)目录下新建一个名为armeabi的目录,将Eclipse中编译生成的.so库文件放到该目录下。ADT在封装资源时会自动将该库文件封装到apk文件中,apk是Android手机操作系统中应用程序的封装形式,在所有Android平台中均能使用。将封装后的apk包安装到Android手机、PDA或虚拟机中。
    系统测试环境由OpenSIPS服务器和安装有可视化VoIP通话软件的移动终端组成。测试结果表明,系统运行稳定,性能良好,通话过程中无明显回音,图像清晰流畅,语音和视频能够保持同步。由于本系统运行在局域网内,通话延迟基本为零,充分满足了可视化VoIP通话系统的要求。

结语
   
本文中所设计的可视化VoIP通话系统属于无线局域网领域的应用。系统在无线局域网内具有信令处理稳定、通话无时延、视频清晰流畅、语音视频同步性高等优点,在实际应用中具有潜在的市场价值。但本系统仍然有许多的不足之处,比如说信令不够完善、服务过于单一等缺点。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2024年4月17日 /美通社/ -- 2024年4月13日,由北京康盟慈善基金会主办的"县域诊疗,规范同行"——肿瘤诊疗学术巡讲项目首站在广州隆重召开。本次会议邀请全国多位肺癌领域专家和县域同道...

关键字: AI技术 医疗服务 BSP 互联网

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

太阳能供电应用系统的设计需要考虑多个方面,包括太阳能电池板、储能装置、控制模块等。本文将介绍一种基于太阳能供电的应用系统设计方法,并从这几个方面进行详细阐述。

关键字: 太阳能 系统设计

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制

北京2023年9月25日 /美通社/ -- 9月21日,由中国质量报刊社·中国质量新闻网主办的第六届食品高质量发展交流会在北京举行,会议主题为"高质量,新生活",旨在推动食品行...

关键字: 自动化 BSP ISO9001 NAS

北京2023年9月23日 /美通社/ -- 近日,主线科技正式获准在北京市智能网联汽车政策先行区道路开启常态化测试与示范,将与物流客户在真实开放的城区道路场景中,率先开启基于L4级别自动驾驶能力的智能卡车运输示范。 随...

关键字: 智能卡 测试 高速公路 BSP

曼谷2023年9月18日 /美通社/ -- 作为东南亚的旅游胜地,泰国一直在全球范围内吸引着无数游客的目光。泰国旅游和体育部近日公布的报告显示,今年前7个月,泰国旅游业总收入约为1.08万亿泰铢(约合人民币2233亿元)...

关键字: BSP GEN 国美 AN
关闭
关闭