《VOIP实验.doc》由会员分享,可在线阅读,更多相关《VOIP实验.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程名称: 计算机网络实验 实验名称: VOIP实验 组 号: 密 码: 姓 名: 学 号: 日 期: 2015年12月21日 目录1 VOIP简介31.1 VOIP原理31.2 VOIP关键技术52 SIP协议52.1 sip协议简介52.2 SIP网络类型92.3 SIP代理服务器93 PJSIP(开源的SIP协议栈)介绍94 实验步骤104.1 实验前准备工作104.2 编译114.3 使用IVR114.3.1 启动SIP客户端114.3.2 呼叫IVR124.3.3 注册134.3.4 登录154.3.5 录音及回放174.3.6 回放录音184.3.7 查询本组同学的学号185 实验
2、总结191 VOIP简介VOIP(Voice over Internet Protocol)简而言之就是将模拟信号(Voice)数字化,以数据封包(Data Packet)的形式在IP网络(IP Network)上做实时传递。VOIP最大的优势是能广泛地采用Internet和全球IP互连的环境,提供比传统业务更多、更好的服务。VOIP可以在IP网络上便宜的传送语音、传真、视频、和数据等业务,如统一消息业务、虚拟电话、虚拟语音/传真邮箱、查号业务、Internet呼叫中心、Internet呼叫管理、电话视频会议、电子商务、传真存储转发和各种信息的存储转发等。图1-1 分发模型1.1 VOIP原理
3、VOIP的基本原理是通过语音的压缩算法对语音数据编码进行压缩处理,然后把这些语音数据按 TCP/IP 标准进行打包,经过 IP 网络把数据包送至接收地,再把这些语音数据包串起来,经过解压处理后,恢复成原来的语音信号,从而达到由互联网传送语音的目的。 IP 电话的核心与关键设备是 IP 网关,它把各地区电话区号映射为相应的地区网关 IP 地址。这些信息存放在一个数据库中,数据接续处理软件将完成呼叫处理、数字语音打包、路由管理等功能。 在用户拨打长途电话时,网关根据电话区号数据库资料,确定相应网关的 IP 地址,并将此 IP 地址加入 IP 数据包中,同时选择最佳路由,以减少传输延时, IP 数据
4、包经 Internet 到达目的地的网关。在一些 Internet 尚未延伸到或暂时未设立网关的地区,可设置路由,由最近的网关通过长途电话网转接,实现通信业务。VOIP(Voice over Internet Protocol)是一种以IP电话为主,并推出相应的增值业务的技术。VOIP相对比较便宜。为什么? VOIP电话不过是互联网上的一种应用。网络电话不受管制。因此,从本质上说,VOIP电话与电子邮件,即时讯息或者网页没有什么不同,它们均能在经过了互联网连接的机器间进行传输。这些机器可以是电脑,或者无线设备,比如手机或者掌上设备等等。为什么VOIP服务有些要收钱,有些却免费? VOIP服务不
5、仅能够沟通VOIP用户,而且也可以和电话用户通话,比如使用传统固话网络以及无线手机网络的用户。对这部分通话,VOIP服务商必须要给固话网络运营商以及无线通讯运营商支付通话费用。这部分的收费就会转到VOIP用户头上。网上的VOIP用户之间的通话可以是免费的。使用VOIP,你需要做些什么? 你需要有互联网连接。这可以是最基本的拨号上网服务,或者更理想的宽带服务,你的网络连接速度越快,VOIP的通话质量就越好。例如,高速宽带连接能够令你一面打电话,一面上网冲浪。你还需要VOIP软件。用户可以选择一种VOIP软件安装至台式电脑或笔记本电脑上。然后,电脑就可以进行网上通话了。如果用户想要将自己的家庭电话
6、转化为VOIP拨号系统,他需要适配器的帮助。VOIP软件可以单独预装在一种名为“模拟电话适配器”(analog telephone adapter)的硬件设备中,模拟电话适配器主要安装于家庭电话与宽带调制解调器之间。图1-2 ip电话的四种形式2009年的中国VOIP市场流量已到9950亿多分钟,而具有更强大实力的新VOIP服务供应商也会涌入市场。无线VOIP在不久的将来会与传统无线通信实现并存和竞争的关系,而不是对传统无线通信的一种廉价替代物。1.2 VOIP关键技术信令技术:主要包括ITU-TH.323、IETF会话初始化协议SIP、MGCP和H.248(MeGaCo)。媒体编码技术:主要
7、包括的G.711、G.723.1和G.729等多媒体压缩编码技术。媒体实时传输技术:主要采用实时传输协议RTP。业务质量保障技术:采用资源预留协议RSVP等。网络传输技术:主要是TCP和UDP。在实验中主要运用到SIP协议,下面将详细介绍一下SIP(Session Initiation Protocol)协议。2 SIP协议2.1 sip协议简介SIP是一种在IP网络上进行多媒体通信的简便通用的信令协议,类似于HTTP的基于文本的协议。SIP可以减少应用特别是高级应用的开发时间。由于基于IP协议的SIP利用了IP网络,固定网运营商也会逐渐认识到SIP技术对于他们的深远意义。SIP(Sessio
8、n Initiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议1 、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。SIP与负责语音质量的资源预留协议(RSVP) 互操作。它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议(LDAP)、负责身份验证的远程身份验证拨入用户服务 (RADIUS) 以及负责实时传输的 RTP 等多个协议。SIP 的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活
9、性,也就意味着SIP可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和 Web 会议。SIP消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员而言更加直观。SIP如同电子邮件客户机一样重用 MIME 类型描述,因此与会话相关的应用程序可以自动启动。SIP 重用几个现有的比较成熟的 Internet 服务和协议,如 DNS、RTP、RSVP 等。不必再引入新服务对 SIP 基础设施提供支持,因为该基础设施很多部分已经到位或现成可用。对 SIP 的扩充易于定义,可由服务提供商在新的应用中添加,不会损坏网络。网络中基于 SIP 的旧设备不会妨碍基于 SIP
10、 的新服务。例如,如果旧 SIP 实施不支持新的 SIP 应用所用的方法/标头,则会将其忽略。SIP 独立于传输层。因此,底层传输可以是采用 ATM 的 IP。SIP 使用用户数据报协议(UDP) 以及传输控制协议(TCP),将独立于底层基础设施的用户灵活地连接起来。SIP 支持多设备功能调整和协商。如果服务或会话启动了视频和语音,则仍然可以将语音传输到不支持视频的设备,也可以使用其他设备功能,如单向视频流传输功能。通信提供商及其合作伙伴和用户越来越渴求新一代基于 IP 的服务。如今有了 SIP(Session Initiation Protocol 会话启动协议),一解燃眉之急。SIP 是不
11、到十年前在计算机科学实验室诞生的一个想法。它是第一个适合各种媒体内容而实现多用户会话的协议,如今已成了 Internet 工程任务组 (IETF) 的规范。图2-1 各协议示意图RTP协议通常运行在UDP层之上,二者共同完成运输层的功能。UDP提供复用及校验和服务,也就是通过分配不同的端口号传送多个RTP流。协议规定,RTP流使用偶数(2n)端口号,相应的RTCP流使用相邻的奇数(2n+1)端口号。因此,应用进程应在一对端口上接收RTP数据和RTCP控制数据,同时向另一对端口上接收RTP数据和RTCP控制数据。RTP协议用以传送实时数据,可以用来传送声音和活动图像数据。RTP分组由RTP头部和
12、净荷数据组成;RTP分组由UDP包来进行传输,通常一个UDP包仅含一个RTP分组,若采用一定的封装方法,也可以包含多个RTP分组;其中的RTP净荷就是RTP传送的语音数据。RTP分组Header的格式如下:图2-2 RTP分组Header的格式RTP分组头部的各字段含义为:(1) V:RTP版本号。为“10”。(2) P:填充指示位。P为“1”时表示分组结尾含有1个或多个填充字节,其中这部分不属于有效载荷。(3) X:扩展指示位。X为“1”时,则表示固定头部后还有一个扩展头部,这种情况较复杂,很少使用。(4) CC:CSRC计数。指示固定头部后的CSRC的个数(5) M:由应用文档解释,通常不
13、用。(6) PT:净荷类型。表示RTP分组的净荷类型。我们常用的有: “0”: G.711 “8”: G.711A “4”: G.723.1 “18”: G.729(7) 序号:序号顾名思义就是表示RTP分组的次序。初值为随机数,每发送一个增加1。可供接收方检测分组丢失和恢复分组次序。(8) 时戳:表示RTP分组第一个字节的取样时刻。其初值为随机数,每个采用周期加1。如果每次传送20ms的数据,由于音频的采样频率为8000Hz,即每20ms有160次采样,则每传送20ms的数据,时戳增加160。(9) SSRC:同步源标识(Synchronous Source)。表示信号的同步源,其值应随机选
14、择,以保证同一个RTP会话中任意两个同步源的SSRC标识不同。(10) CSRC:分信源(贡献源)标识(Contributing Source)。识别该数据包中的有效载荷的贡献源。换句话说,CSRC标识由混合器插入,其值就是组成复合信号的各个分信号的SSRC标识,用以标识各个组成分信号的信源。RTP分组的头部最多可以包含15个CSRC标识,其数目由CC字段指明。RTP通常使用UDP来传送数据,但RTP也可以在TCP或ATM等其他协议上工作。当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个 给RTCP。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控
15、制,它依靠RTCP提供这些服务。RTCP和RTP一起提供流量控制和拥塞控制服务。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。RTSP多用于做视频服务器而SIP多用于做VOIP的服务器。RTSP在体系结构上位于RTP和 RTCP之上。它使用TCP或RTP完成数据传输。HTTP与RTSP相比。HTTP传送HTML。而RTP传送是多媒体数据。 H.261是1990年ITU-T制定的一个视频编码标准,属于视频编解码器。SDP文本信息包括:会话名称和意图;会话持续时间;构成会话的媒体;有关接收媒体的信息(地址等)。点对点协议(Point to
16、 Point Protocol)的缩写为PPP,是TCP/IP网络协议包的一个成员。PPP是TCP/IP的扩展,它增加了两个额外的功能组: (1)它可以通过串行接口传输TCP/IP包; (2)它可以安全登录。当使用作为公共电话系统的部分的串行接口时,必须要注意确保所有通信的真实性。这个终端PPP集合了用户名字和密码安全。因此,一个路由器或 者服务器通过PPP接收到一个请求时,如果这个请求的来源是不安全的,这就需要授权。这个授权是PPP的一部分。因为它的通过串行接口路由TCP/IP包 的能力和它的授权能力,ISP (Internet服务提供商)通常使用PPP来允许拨号用户连接到Internet。
17、AAL(ATM Adaptation Layer, ATM适配层):标准协议的一个集合,用于适配用户业务。AAL分为会聚子层(CS)和拆装子层(SCR)。AAL有4种协议类型:AAL1、AAL2、AAL3/AAL4和AAL5分别支持各种AAL业务类型。 AAL的目的是允许现有的协议和应用运行在ATM上。为此AAL必须把上层的数据转换为ATM 信元中的48B。常见的通信协议(TCP/IP、以太网、令牌环网)采用的是变长分组,分组长度都要比ATM信元中的数据段大,但是AAL可以将这些较大的高层数据分组分割成能通过ATM网络传输的信元,或把从网络接收的信元重组成原始的数据分组。 AAL由两个子层组成
18、,一个称为会聚子层(CS),另一个称为分段和重组子层(SAR)。CS 子层首先对高层数据进行分段并封装在CS-PDU(汇聚子层协议数据单元)中。然后,SAR子层将CS-PDU分割成若干个相同大小(不大于48B)的数 据段,使它能够封装在信元中。2.2 SIP网络类型图2-3 sip网络类型2.3 SIP代理服务器图2-4 sip代理服务器3 PJSIP(开源的SIP协议栈)介绍PJSIP是一个开源的SIP协议库,它实现了SIP、SDP、RTP、STUN、TURN和ICE。PJSIP作为基于SIP的一个多媒体通信框架提供了非常清晰的API,以及NAT穿越的功能。PJSIP具有非常好的移植性,几乎
19、支持现今所有系统:从桌面系统、嵌入式系统到智能手机。PJSIP同时支持语音、视频、状态呈现和即时通讯。PJSIP具有非常完善的文档,对开发者非常友好。PJSIP由Benny Prijono、Perry Ismangil在2005年创建,之后不久,Nanang Izzuddin、Sauw Ming加入开发团队。2006年成立Teluu Ltd.,成为开发和维护PJSIP的公司。PJSIP采用双License:GPLv2以及商业许可证,开发者可以根据需要选择不同的License。图3-1 PJSIP简介4 实验步骤4.1 实验前准备工作(1) 操作系统:Windows 7专业版(2)下载并安装Di
20、rect X SDK(3)下载并安转Microsoft Visual Studio环境(本组采用的是Microsoft Visual Studio 2008)(4) 去http:/www.pjsip.org/下载压缩文件“pjproject-1.12.zip”并解压(5) 在pjproject-1.12pjlibincludepj下建立config_site.h文件(空文件)(6) 将Microsoft DirectX 9.0 SDK Libx86 的lib库复制到 pjproject- 1.12lib文件夹下(7) 将 pjproject-1.12文件夹下的lib文件复制到pjproject
21、-1.12lib的文件夹下,方便使用4.2 编译(1)打开vs,打开项目pjproject-1.12文件夹下的pjproject-vs8.sln(2)在解决资源管理器中,将pjsua 设为启动项目(3)设置为平台的Win32,如下图4-1所示:图4-1 设置WIN32平台(4)在工具-选项-项目和解决方案-vc+目录将用到的一些包含文件,库文件加到目标路径下,如下图4-2所示:图4-2 文件包含(5)点击VS中debug或release即可完成编译过程。4.3 使用IVR4.3.1 启动SIP客户端双击pjsua-i386-Win32-vc8-Debug.exe启动sip客户端程序。如下图4-
22、3所示:图4-3 启动程序4.3.2 呼叫IVR按照提示输入开始呼叫IVR,输入m开始呼叫,然后输入IVR的SIP地址sip:1234510.105.242.55,即可建立连接,连接成功后会有语音提示。如下图4-4所示:图4-4 建立连接连接成功, 如下图4-5所示:图4-5 建立连接成功4.3.3 注册首先根据语音提示进行注册,注册步骤如下:输入*输入1,语音提示输入学号, 如下图4-6所示:图4-6 选择注册输入*(嘀声后再输入)输入学号#,如下图4-7所示:输入完成后IVR提示我的组号为3241,然后提示输入密码输入*输入123#,如下图4-8所示:图4-8 输入密码最后IVR提示注册成
23、功,挂机。4.3.4 登录重新拨通IVR后根据语音提示选择2进行登录,IVR会提示在嘀声后输入“组号”,输入注册是获得的组号,然后IVR会提示嘀声后输入“密码”。具体如下:输入*输入2,语音提示输入组号(嘀声后输入), 如下图4-9所示:图4-9 选择登录输入*输入3421#,语音提示输入密码, 如下图4-10所示:图4-10 输入组号输入*输入123#,如下图4-11所示:图4-11 输入密码语音提示登录成功, 如下图4-12所示: 图4-12 登录成功提示完成登录后可以进行以下操作:1录音及回放;2回放录音;3查询本组同学的学号4.3.5 录音及回放登录成功后根据语音提示选择1录音及回放,
24、嘀声提示后输入*开始录音,录音结束后输入#结束,IVR会自动回放你的录音。如下图4-13所示:图4-13 录音及回放4.3.6 回放录音如果想重听刚才的录音,可以在登陆成功后根据语音提示输入*,再输入2重听。如下图4-14所示:图4-14 回放录音4.3.7 查询本组同学的学号登陆后根据语音提示输入*,再输入3查询本组同学的学号可以查询在本组注册的同学的学号。如下图4-15所示:图4-15 查询本组同学学号5 实验总结通过本次实验,让我对VIOIP,SIP的知识有了更进一步的了解,同时也深入接触了开源软件pjsip,以前自己从来没有接触这些方面的知识,在刚开始做这个实验的时候也不知道从哪里入手
25、,然后通过结合老师所给的资料以及通过自己上网查阅资料,去图书馆借相应的书籍,然后慢慢的从中摸索门道。做实验期间,自己遇见了各种各样的问题,诸如:(1) 刚开始加库文件config_site.h内容有点问题,导致编译了好多次都没成功,后来经过网上查阅资料,并和组内同学一起讨论,才发现问题并很好地解决了问题;(2) 在第一次注册的过程中,没有按要求(滴声后输入)输入密码,导致最后成功产生了组号,再次登录是却总是提示“您所输入的密码错误”等之类的错误,后来只能重新再注册;(3) 鉴于实验过程中,有时没有及时输入,会导致操作超时,而不得不重新输入,重新连接等问题。虽然在实验过程中,遇见了各种各样的难题,但是我获益良多,不仅提升了自己在这些领域的知识,也培养了自己的学习能力,更让我明白了,应该以严谨地态度对待科学的问题,因为科学容不得半点马虎。一分耕耘,一份收获,有所付出,必定会有所收获。
限制150内