网络电话IP电话论文.docx
- 文档编号:1880056
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:21
- 大小:247.77KB
网络电话IP电话论文.docx
《网络电话IP电话论文.docx》由会员分享,可在线阅读,更多相关《网络电话IP电话论文.docx(21页珍藏版)》请在冰豆网上搜索。
网络电话IP电话论文
摘要
网络电话,也称为IP电话,近几年它的发展非常之迅速。
本文设计并实现了一个计算机到计算机的网络电话的软件模型,既能实现多人之间的文本聊天,又能实现两人之间的语音聊天。
其中详细讲解了软件设计中的重点和难点,分析了软件中语音的采集和播放,语音的网络传输等一些关键技术的实现方法和注意事项,并指出了软件的不足和进一步工作。
在局域网上用此软件来做通话实验,音质和时延都达到了电话的效果,说明此软件达到了IP电话的基本要求。
关键词
网络电话语音网络
Abstract
Networktelephone,calledIPtelephonetoo,itsdevelopmentisveryfastinrecentyears.Thistextdesignandrealizeonecomputernetworksoftwaremodelofphonetoreachcomputer,cannotonlycanrealizethevoice-enabledchatbetweentwopeoplethetextbetweenmanypeoplechatsbutalso.Amongthemhasexplainedfocalpointanddifficultpointinsoftwaredesignindetail,hasanalysedthecollectionofthepronunciationinthesoftwareandbroadcast,somekeytechnologyimplementationmethodandprecautionsthatthenetworkofthepronunciationtransmits,etc.,havepointedoutthedeficiencyofthesoftwareandworkfurther.AtLANitmakeconversationexperimentcomingwithsoftware,tonequalityandwhenprolongnotgettingtheresultoftelephone,provethissoftwarehasreachedthebasicdemandofIPtelephone.
Keyword
NetworktelephonePronunciationNetwork
第一章前言
Internet是当今应用最广泛、发展最迅速的通信网络。
这是基于数据包方式的数据分组交换方式,用户数据被封装在分组中,而分组还包含一些附加信息用于网络中的路由选择、差错纠正、流量控制等。
数据包各自独立地在网络中传递,由于网络状况的变化和经历路径的不同,数据包到达目的地的时间是不固定的、非实时的。
故此,一般来说互联网较适用于数据的传输。
但是,我们知道视频、音频信号经过模数转换后也可以作为数据在互联网上传递,因此将语音采样,量化变为数字信号,然后打包从网络上传输,双方也可以进行通话,这就是网络电话。
网络电话是对模拟语音信号经过模数转换,进行编码压缩后,按一定的打包规则将压缩帧转换成IP数据包通过数据网进行传输,在目的地经过数据解压、数模转换复原成话音,从而达到语音通信的目的。
由于数据网是采用统计时分的方式分配、使用网络资源,任何通信实体都不可能独占某一信道,所以网络电话可以大大提高网络资源的利用率,降低运营成本。
网络电话的初次亮相是在1995年初,VocalTec公司推出了一种InternetPhone客户软件。
虽然当时该公司还没有提出在IP上传输话音的概念,但这确实是网络电话第一次成功的商业化和市场化。
在此之前,IP上的话音传输极为困难,VocalTec的第一个产品用于LAN上的两台PC相互通话。
现已有多家网络公司开始利用因特网正式提供国际国内的长途电话服务。
特别在美国,此类业务开展得更为广泛。
类似的技术也可用于长途传真(E-Fax)等电信服务项目。
由于全球范围内的因特网通信费用大大低于通常的电信长途费用,众多的用户已开始使用通过因特网的长途电话服务。
基于实验和研究的目的,本文实现了一个从计算机到计算机的网络电话的软件。
软件的开发环境为WindowsXP平台,开发工具采用VisualC++6.0。
本软件能够在网络上实现两人之间的文本传输和两人之间的语音对话,但支持多人在线。
下文将对本软件展开分析。
第二章软件设计
2.1软件的需求分析
2.1.1 整体结构
本系统从逻辑上分为2个部分:
客户端和服务器端。
客户端与服务器端之间的关系如图1所示。
服务器端的数据库中包含了所有用户的资料。
例如用户的名称、IP地址、当前状态等信息。
服务器端程序利用Winsock控件来监听客户端发来的请求,对接收到的客户端发来的请求进行处理,提取出命令字及参数,按照定义好的命令字完成相应的工作。
服务器完成的任务基本上都是被动的,大部分是响应客户端发出的请求。
客户端模块负责建立起连接之后的语音通讯功能。
该模块从声卡采集音频数据并压缩,然后把数据流发送到服务器并转发到对方主机。
同时该模块还负责对接收到的语音数据流进行解压缩并利用声卡播放出来的任务。
2.1.2 信令系统的实现
在C/S模式中,消息命令字起到了非常重要的作用,服务器端与客户端之间通过发送以消息命令字开头的包含指定消息的字符串来实现沟通。
收到指定的消息命令字就去执行该消息命令字对应的操作。
消息命令字可以是以字节形式组成的,也可以是以比特位形式组成的。
本系统采用的是用固定长度的字符串组成的消息命令字,通过定义特殊的消息命令字(信令)来控制系统工作。
2.1.3 语音通信的实现
为了实现语音的采集,使用了vtRecWave类和vtPlayWave类,先为他开辟了一块连续的缓冲区,用vtRecWave类的VTRecordWave:
:
StartRecord(void)方法来实现语音的采集。
为了实现语音的播放,首先把采集到的经过压缩后的语音取出来。
然后以流的方式,通过局域网传送到另一个主机的缓冲区。
最后,通过vtPlayWave类的VTPlayWave:
:
StartPlay(void)方法进行播放。
网络传输可以使用各种方法实现,不同的方法需要不同的处理技巧。
这里就不一一说明了。
2.2软件的功能模块简介
软件的主要功能是文本聊天和语音聊天。
文本聊天的实现方法:
1建立与服务器的连接。
客户端输入用户名,选择本机的通信协议,并且输入正确的服务器名称之后才能向服务器发送建立连接请求。
2当服务器收到客户端的请求之后,服务器将此客户端的状态置为AVAILABLE。
并将该客户端添加到用户列表。
3当一客户端请求与另一客户端建立连接时,客户端在联系人一栏中选择想要聊天的对象。
服务器收到此信息后,首先查看用户列表,如果被访问用户存在并且空闲,此时服务器发信息至另一客户端,当另一客户端同意进行通话时,服务器将两个客户端的状态置为SESSIONSETUP。
此时被请求的客户端弹出一个对话框,,如果接受连接,此时服务器把两个客户端的状态置为INSESSION.
4当某一客户端想要断开连接,则只需在用户列表中选择NOONETOTALK。
此时断开与另一个客户端的连接。
服务器发信息至另一客户端,通知其对方客户端已经断开与之的连接。
此时服务器更新用户列表。
5当客户端想与服务器端断开连接时,只需按关闭按钮。
此时即与服务器断开连接。
服务器更新用户列表。
语音聊天的实现方法:
1建立与服务器的连接。
客户端输入用户名,选择本机的通信协议,并且输入正确的服务器名称之后才能向服务器发送建立连接请求。
2建立连接后,客户端选中语音聊天复选框,双方需要有只有两个客户端同时选中该复选框才能进行语音聊天。
第三章Socket通讯介绍
3.1Socket的基本概念
1、Socket,也就是俗称的套接字。
2、SunJava中的定义:
是运行在网络上的两个程序间双向通讯连接的末端,它提供客户端和服务器端的连接通道。
Socket绑定于特定端口这样TCP层就知道将数据提供给哪个应用程序。
3、字面上的理解,Socket的意思是"插座、孔",你还可以把它形象地理解为打电话用的电话机,你从听筒里听到对方声音,同时将声音通过话筒传给对方。
套接字(Socket)最初是由加利福尼亚大学Berkeley分校为UNIX操作系统开发的网络通信接口.随着UNIX操作系统的广泛使用,套接字成为当前最流行的网络通信应用程序接口之一.20世纪90年代初期,由SunMicrosystems,JSBCorporation,FTPsoftware,Microdyne和Microsoft等几家公司共同制造了一套标准,即WindowsSockets规范.
WindowsSocketsAPI是MicrosoftWindows的网络程序设计接口,它在继承了BerkeleySockets主要特征的基础上,又对它进行了重要扩充.这些扩充主要是提供了一些异步函数,并增加了符合Windows消息驱动特性的网络事件异步选择机制.这些扩充有利于应用程序开发者编制符合Windows编程模式的软件,它使在Windows下开发高性能的网络通信程序成为可能.
Sockets实际上是指一个通信端点,是网络的基本构件.借助于它,用户所开发的Socket应用程序,可以通过网络与其他Socket应用程序进行通信.它是可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和一个与之相连的进程.套接字存在通信区域(通信区域又称地址簇)中.套接字只与同一区域中的套接交换数据(跨区域时,需要执行某些转换进程才能实现).Windows中的套接字只支持一个域______网际域.套接字具有类型,WindowsSocket1.1版本支持两种套接字:
流套接字(SOCK_STREAM)和数据报套接字(SOCK_DGRAM).
3.2Socket通信实现原理
TCP/IP协议的核心部分是传输层协议(TCP,UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现.因此用户一般不涉及.编程时,编程界面有两种形式:
一种形式是由内核心直接提供的系统调用:
另一种形式是使用以库函数方式提供的各种函数.前者为核内实现,Socket与TCP/IP协议的关系如图所示.
Socket与TCP/IP协议关系
在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Servermodel).该模式的建立基于以下两点:
一点是非对等作用;另外一点是通信完全是异步的.客户机/服务吕模式在操作过程中采取的是主动请示方式.
首先服务器要先启动,并根据请示提供相应服务,过程如下所述.
(1)打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求.
(2)等待客户请求到达端口.
(3)接收到重复服务请求,处理该请求并发送应答信号.
(4)返回第二步,等待另一客户请求.
(5)关闭服务器.
客户方:
打开一通信通道,并连接到服务器所在主机的特定端口.
向服务器发送服务请求报文,等待并接收应答;继续提出请求……
请求结束后关闭通信通道并终止.
在MFC中,Microsoft为套接口提供了相应的类CAsyncSocket和Csocket.CAsyncSocket提供基于异步通信的套接口封装功能,Csocket则是由CasyncSocket派生,提供更加高层次的功能.例如可以将套接口上发送
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络电话 IP 电话 论文