摘要
随着互联网用户以及手机浏览器用户的增加,研究基于Web的网络电话具有很大的市场。Flash电话主要实现安装Flash插件的浏览器用户与SIP用户之间信令与媒体数据的交互。
本论文设计Flash电话客户端,支持基于Web,能够通过Flash方式实现客户端的软电话以及音视频通讯功能,而不需要用户安装相应的软件产品,从而降低了用户使用难度。
论文首先对Flash电话客户端实现中所涉及的关键技术做了深入分析,特别对客户端和服务器通信的RTMP协议进行了深入分析,该协议是Adobe公司的专有协议,用于传输信令和媒体数据,其中信令主要包括一些命令消息,媒体数据主要包括音频和视频的数据。针对软电i舌系统的功能需求,给出整个Flash电话系统框架。Flash电话系统分成5个模块,分别是外围框架模块、登录模块、电话模块、聊天模块以及音视频模块。其中外围框架模块主要解决XML文件的载入与读取和网页界面设计的问题;登录模块是整个系统的基础,主要用来完成用户注册到SIP服务器的过程;电话模块包括呼叫与被呼叫,呼叫主要实现向其它用户打电话的功能,被呼叫主要实现接电话的功能;聊天模块的主要功能是用户之间进行文本信息的交流;音视频模块是整个系统的核心模块,主要实现用户之间音频、视频即时通信的功能,其中音频的编解码格式要与SIP客户端一致,从而降低了服务器的负担,提高了实时性。为了能更好地处理接收到的事件以及使客户端的代码变得非常有序、简洁,在系统的实现中引入了Cairngorm框架。
论文最后对系统的各个模块进行了基本的功能测试以及分析。测试结果表明,该设计的系统能够实现电话功能并且能进行良好地文本信息交流以及音视频交流。
关键词:RTMP协议;Flex技术;XML技术;Cairngorm框架
Abstract
With the advent of the Internet users and the mobile phone browser users increasing, studying networking phone based on Web has a very big market. The interaction of signaling and media data is achieved browers users installed the plug-in unit of Flash and the sip users. The Flash phone client supports web, it accomplishes the soft phone and the function of audio and video communication.it does not require users to install some software products, so it reduces the difficulty of using.
Firstly, the key technologies in the process of realizing Flash phone client are analysised in detail in the paper.The RTMP protocol used as the commnocation between client and server is studied in depth. The RTMP is Adobe's proprietary protocol, which can transfer signaling and media data. Signaling includes some command messages, media data includes audio and video data.On the functional requirements of the soft phone system?the entire Flash telephone system is given.Then the system is divided into five modules on demand, there are peripheral frame module, login module, phone module, chat module, audio and video modules. In the peripheral frame module, questions about the loading of the XML file and the design of web interface are solved.Login module is the basis of the system which is mainly used to complete the process that is user registers to the SIP server.Phone module includes call and callee, the fiinction of calling to other user is achieved in the call and the function of answering the phone is achieved in the callee.Chat module's main function is the exchange of text messages between users. Audio and video module is the core module of the whole system.In the module, the function of the communication through audio and video between users is achieved.The audio codec is the same as the sip client, thereby the burden on server is reduced and the real time is improved. In order to handle the received events better and make the code of client orderly, the Cairngorm framework is added to the implemention of system.
All the functional parameters of the basic performance are tested and analyzed in the last. The test for system indicates that the function of phone is achived and the communication of text information is achieved and the communication of audio/video is achived well.
Key words: RTMP Protocol; Flex Technology; XML Technology; Cairngorm Framework
网络电话作为一种先进的通讯技术,一面世就受到业内人士的好评,特别是自从sip协议成为Voip的标准信令以来,发展速度越来越快。可是目前Voip技术的网络电话必须下载客户端,使用难度很大,如果网络电话回归互联网,支持浏览器,这样就能获得更广大的市场。基于Rash电话的研究就这样出现了, Flash电话主要指用户直接打开安装有Flash插件的浏览器,可以实现与sip用户的电话功能,使用方便,因而该研究具有重大现实意义。但是Flash是通过RTMP协议来传送信令以及媒体数据,因此要实现Flash电话,必须实现RTMP协议与sip协议的转换,这主要是在流媒体服务器端进行实现。
要实现Flash与sip通信的方法有很多,比如在sip服务器端加一个流媒体服务器的功能,这样该服务器一方面可以与Flash用户通信,另一方面可以与sip用户进行通信,要实现两者之间通信只需在服务器端进行转换即可,但是显然该方法加重了服务器的负担,对计算机要求会很高,而且这样做实时性也不高。
本系统主要釆用在流媒体服务器端添加一个虚拟sip用户的方法来实现Flash与sip的通信,这样做可以使得sip服务器与流媒体服务器隔离开来,从而使得服务器端压力减小,服务器端压力少了就可以提高通信的实时性。
本论文主要设计与实现Flash电话的客户端,它主要与流媒体服务器进行交互。可是Flash客户端和sip客户端所使用的音视频编码格式有可能会不一样,如果把它们的编码数据都传给服务器,然后在服务器端完成音视频编解码的话,会浪费很多时间,会极大地影响实时性,该论文设计的Flash电话客户端能和服务器协商,先获取sip客户端编解码格式,如果Flash电话客户端本身支持sip端的编解码器,就把这解码的工作交给Flash客户端来做,同时编码也釆用该格式,这样就会降低服务器端的工作量,提高了系统的实时性。目前Flash player 11支持音频G711, G.729或者Speex编解码,视频支持H.263编解码。
本论文设计的Flash电话客户端还需支持Web,可是传统的Web应用程序是基于B/S模式的,主要是用HTML语言实现的。HTML只适合文本处理,但该客户端需要实现音视频的通信,显然传统的Web应用程序已经不能满足该程序设计的需求Pi。但是使用C/S模式也不能满足用户在数据共享等等方面的要求。这时就需要一种更具良好的交互性和体验度的设计,它就是RIA (富互联网应用程序),RIA既有B/S模式的跨平台部署性,又有C/S应用模式的灵活性,很好地满足了该程序设计的需求。
在这之中Flex技术是RIA技术领域当中典型的代表之一,它只要求客户端安装了浏览器以及Flash player播放器就可以方便的使用,它不仅可以把多媒体的内容封装起来,而且还能够和页面进行很好的交互,给整个互联网的操作界面带来了强大的动力。
用插件的形式提供Flash,在IE、 Firefox等等主流浏览器上都适用,现在客户端上98%都使用到了 Flash,可以这么说,Flash已经完完全全的占领了互联网展现层。
本论文设计与实现的Flash电话客户端主要解决以下关键问题:
1.如何更好地提高客户端工作效率,它的效率直接影响整个系统的效率;
2.在客户端与服务器进行数据交互的时候,如何更有效地保证数据传输的完整性;
3.如何设计一个清楚、布局不凌乱的网页界面;
4.如何提高实时性,降低服务器端压力,因为事先Flash客户端不知道sip客户端的音视频编解码格式,如果编解码工作都放在服务器端进行处理后,再向客户端发送,会严重影响实时性。
5.如何更好地处理接收到的事件。因为客户端接收服务器的事件有很多,如果在接收,对每个事件建一个AS文件进行处理,将会使代码显得非常凌乱。
Flash电话客户端各模块实现:
主界面图
登录界面图
文件框架图
登录界面图
登录成功界面图
打通界面图
接电话界面图
音频交流图
视频交流界面图
聊天界面图
目 录
第一章 绪论
l.1 论文背景以及意义
1.2 国内外研究现状
1.2.1 Flash电话研究现状
1.2.2 RIA研究现状
1.3 拟解决的关键问题
1.4 论文的组织结构
第2章 系统的相关技术
2.1 Flex技术
2.1.1 Flex技术的优点
2.1.2 Flex运行的原理
2.1.3 Flex客户端的程序结构
2.2 RTMP协议研究
2.2.1 RTMP消息以及数据块介绍
2.2.2 RTMP握手
2.2.3 RTMP命令消息
2.3 XML技术
2.4 Speex编解码介绍
2.4.1 Speex相关方面的概念
2.4.2 Speex预处理
2.5 Cairngorm框架介绍
2.6 本章小结
第3章 Flash电话客户端的需求分析
3.1 Flash电话系统总体框架
3.2 Flash电话客户端模块划分
3.3 系统功能需求分析
3.4 系统非功能需求分析
3.5 本章小结
第4章 Flash电话客户端详细设计与实现
4.1 客户端总体框架设计
4.2 系统各模块实现
4.2.1 外围框架模块实现
4.2.2 登录模块实现
4.2.3 电话模块实现
4.2.4 聊天模块实现
4.2.5 音视频模块实现
4.3 客户端具体怎么接收服务器端事件
4.4 Cairngorm框架设计与实现
4.4.1 Cairngorm框架的运行原理
4.4.2 CairngormEvent类的设计与实现
4.4.3 ModelLocator类的设计与实现
4.4.4 Front Controller类的设计与实现
4.4.5 Command类的设计与实现
4.4.6 Cairngorm框架的优点
4.5 本章小结
第5章 系统测试
5.1 测试的目标
5.2 测试的环境
5.3 系统的功能测试
5.3.1 登录的测试
5.3.2 电话的测试
5.3.3 音视频的测试
5.3.4 聊天的测试
5.4 本章小结
结论
致谢
参考文献
附录
(如您需要查看本篇毕业设计全文,请您联系客服索取)