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

引言
    随着移动终端设备朝着越来越智能化的方向发展,原本只具备简单通话功能的手机,也开始增加越来越多的服务功能。在移动终端上实现更多的功能,已经成为研发人员的一个新目标之一,这些功能为人们的生活提供着极大的便利,而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通话系统属于无线局域网领域的应用。系统在无线局域网内具有信令处理稳定、通话无时延、视频清晰流畅、语音视频同步性高等优点,在实际应用中具有潜在的市场价值。但本系统仍然有许多的不足之处,比如说信令不够完善、服务过于单一等缺点。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭