基于SIP协议的VOIP系统设计与实现
- 格式:pdf
- 大小:460.20 KB
- 文档页数:4
基于SIP的可移植VoIP协议栈的设计与实现的开题报告一、研究背景和意义随着互联网技术的不断发展和普及,VoIP(Voice over Internet Protocol)技术也得到了广泛应用。
VoIP技术是一种基于IP网络的语音通信技术,它可以把语音信号转化成数字信号,并通过互联网进行传输,最终再将数字信号还原成语音信号,从而实现了语音通信。
相比于传统的电话通信技术,VoIP技术具有成本低、通信质量高、功能强大等优点,因此在商业、政府、教育和个人等各个领域都得到了广泛的应用。
VoIP技术实现的关键是VoIP协议栈,它是一系列互相协作的协议的组合,用于支持VoIP技术的实现。
在VoIP协议栈中,SIP(Session Initiation Protocol)是其中最重要的协议之一,它是建立、维护和终止VoIP通话的协议。
因此,SIP协议栈的设计和实现是VoIP技术能否成功运用的重要因素之一。
当前,市场上已经有多种商业化的SIP协议栈产品,但它们往往是针对特定硬件、特定操作系统和特定应用环境进行设计和优化的,因此可移植性往往较差,不能适应不同平台和多样化的应用场景。
因此,研究基于SIP的可移植VoIP协议栈的设计和实现,具有重要的理论和实践意义。
通过设计和实现一个基于SIP的可移植VoIP协议栈,不仅可以提高VoIP技术的可靠性和稳定性,还可以降低运行成本和提高灵活性。
二、研究内容和方法(一)研究内容本研究的主要内容包括以下几个方面:1、SIP协议栈的设计和实现本研究将设计和实现一个基于SIP的可移植VoIP协议栈,要求协议栈具有较高的可扩展性和可移植性。
具体来说,需要实现SIP协议的所有功能,包括建立和终止VoIP通话、实现电话簿、呼叫转移、呼叫等待、会议等功能。
同时,要求协议栈能够在不同的硬件平台、操作系统和应用环境中运行,不需要进行修改。
2、测试和优化设计和实现好SIP协议栈后,需要对其进行测试和优化。
基于P2P-SIP的VoIP实验系统设计与实现的开题报告一、选题背景现今通信技术不断发展,越来越多的人选择使用网络电话的方式进行通话,也就是所谓的VoIP技术。
VoIP技术可以将语音数据转化为数字信号通过互联网传输,大大降低了通信成本。
而在VoIP技术中,P2P-SIP技术可以实现点对点的通信,站在用户的角度来看,P2P-SIP技术可以更稳定、更快速地实现通信。
因此,基于P2P-SIP的VoIP实验系统在VoIP技术中具有重要的意义。
二、研究目的本研究旨在设计和实现一种基于P2P-SIP技术的VoIP实验系统。
该系统可以实现点对点的通信,具有良好的稳定性和实时性。
通过本实验系统,可以更深入地了解P2P-SIP技术的原理,掌握VoIP通信技术的实践操作。
三、研究内容本研究的具体内容包括以下几个方面:1. 研究P2P-SIP技术的原理和应用场景。
2. 设计基于P2P-SIP技术的VoIP实验系统的整体架构,包括系统的划分、功能模块、通信流程等。
3. 实现VoIP通话的主要功能,包括建立通话、语音传输、结束通话等。
4. 研究VoIP通话的QoS保证机制,如带宽分配和数据压缩等。
5. 对实验系统的稳定性、实时性进行测试与分析,在实验中对系统进行优化。
四、预期成果完整的基于P2P-SIP技术的VoIP实验系统,该系统具有稳定、实时通话的功能,并且可以根据不同的场景进行调整。
经过测试后,该系统应该符合VoIP通讯技术的QoS保证要求,可以实现高稳定性、低时延的通信。
同时,通过实验可以更深入地了解P2P-SIP技术和VoIP通信技术的具体操作和应用场景。
五、研究计划1. 第一阶段:调查研究P2P-SIP技术。
熟悉该技术的原理,了解它的应用场景和现状。
时间:3周。
2. 第二阶段:设计基于P2P-SIP技术的VoIP实验系统。
制定系统的整体架构,并确定需要实现的具体功能模块。
时间:4周。
3. 第三阶段:实现VoIP通话的主要功能。
播地址和端口。
对UDP,可以用重传机制来获得可靠性。
SIP的消息格式和操作是独立于传输协议的。
3.1.4SIP邀请(Invite)一个成功的SIP邀请包括两个请求,INVITE后面跟一个ACK。
玳VITE请求邀请被叫加入某个会议或建立一个两点的会话。
当被叫发出同意加入呼叫的响应以后,主叫要向它发送一个ACK请求来确认己经收到了这个响应。
如果主叫不想参与这个呼叫,它应发送一个BYE请求而不是ACK。
一个SIP请求典型地包含一个会话描述(例如用SDP协议),为被叫提供充分的信息以便加入会话。
对多点会话来说,会话描述列举了允许向整个会话发布的媒体类型和格式。
对单点会话来说,会话描述列举了主叫所期望的媒体类型、格式以及可用于接收媒体数据的地址。
不管是哪种情况,如果被叫接受呼叫,它就会在响应中返回类似的描述来列出它希望使用的媒体。
对于多点会话,只有当被叫不能接受主叫所描述的媒体或是它希望通过单播来接收数据时才应该返回会话描述。
下图是个的S口的I补,r腰请求的简单呼叫流程。
Te}sla图2—1SIP请求呼叫流程MarconiRTCP报文头部参数首先要区别携带不同控制信息的RTCP报文的类型,R他P报文的类型主要有以下几种:(1)SR:发送报告,当前活动发送者发送、接收统计。
(2)RR:接收报告,非活动发送者接收统计。
(3)SDES:源描述项,包括CNAME.(4)BYB:表示结束。
(5)APP:应用特定函数。
其中最主要的RTCP报文是SR和RR。
通常SR报文占总RTCP包数量的25%,RR报文占75%。
类似于RTP数据包,每个RTCP报文以固定的包头部分开始,紧接着的是可变长结构元素,但是以32位长度为结束边界。
在RTCP报文中,不需要插入任何分隔符就可以将多个RTCP报文连接起来形成一个RTCP组合报文。
由于需要底层协议提供整体民度来决定组合报文的结尾,所以在组合报文中没有单个RTCP报文的显式计数。
RTCP控制报文的发送周期是变化的,与报文长度L用户数N和控制报文带宽B相关:周期P=L*N,B。
基于SIP的IP电话软件设计与实现的开题报告1. 研究背景随着IP技术的发展,IP电话成为了一种重要的通信手段,取代了传统的电话系统。
基于SIP(Session Initiation Protocol)的IP电话软件逐渐成为主流,因为SIP协议具有简单、灵活、可扩展性强等优点。
本课题旨在设计并实现一个基于SIP的IP电话软件,具有音频通话、视频通话、文字聊天等功能,以及通讯录管理、呼叫历史记录等辅助功能。
2. 研究意义SIP已成为实现IP电话通信的标准协议,对于深入了解IP电话通信技术、提升软件设计能力、掌握网络编程技术具有重要意义。
实现一个完整的IP电话软件也能够提升个人软件工程实践能力。
3. 研究内容和关键技术本课题的研究内容主要包括:(1)SIP协议的基本原理及其在IP电话通信中的应用;(2)音频通话、视频通话、文字聊天等通信功能的实现;(3)通讯录管理、呼叫历史记录等辅助功能的实现;(4)软件的用户界面设计和实现。
关键技术包括:(1)SIP协议的熟悉和使用;(2)音视频编解码技术;(3)多线程编程技术;(4)网络编程技术;(5)图形界面设计技术。
4. 研究方法本课题采用设计-实现-测试的方法,首先按照需求进行软件设计,包括系统架构、功能模块划分、接口设计等。
然后使用C++和Qt框架进行软件开发,通过对SIP协议进行包装和封装来实现通信功能。
最后对软件进行测试和调试,保证软件稳定可靠。
5. 预期成果预期实现一个能够进行音频通话、视频通话、文字聊天等功能,具有通讯录管理、呼叫历史记录等辅助功能的基于SIP的IP电话软件,并能够进行用户界面合理、简洁、实用的设计。
6. 计划进度(1)2021年11月-2022年2月:研究SIP协议、音视频编解码技术、多线程编程技术和网络编程技术,根据需求进行软件设计。
(2)2022年3月-2022年6月:使用C++和Qt框架进行软件开发,实现各功能模块。
(3)2022年7月-2022年8月:对软件进行测试和调试,保证软件稳定可靠。
更改记录*修改类型分为A - ADDED M - MODIFIED D– DELETED1引言1.1 目的1.2 定义及概念2 设计概述2.1 系统描述2.2 VOIP的基本传输过程3 总体框架设计3.1系统整体框架结构3.1.1 SIP核心网系统逻辑架构图3.1.2 VOIP系统整体逻辑架构图3.1.3 VOIP 系统物理架构图3.2 子系统划分3.2.1 VOIP代理服务器3.2.2 SIP超级终端3.2.3 Outbound Proxy3.2.4 Sip Proxy3.3 SIP协议栈及R ESIPROCATE 框架说明3.3.1 Sip 协议栈的层次3.3.2 Resiprocate SIP Stack系统架构图示3.3.3 FIFO 流的走向图3.3.4 Sending DatagramProcessing Incoming UDP4 外部接口设计4.1硬件接口4.2 软件接口4.3 协议通行接口5 配置要求5.1开发环境配置5.2 运行环境配置5.3 测试环境配置6 其它7 客户端VOIP功能模块开发附录A 遗留问题列表参考文献1引言通过因特网进行语音通信是一个非常复杂的系统工程,其应用面很广,因此涉及的技术也特别多,其中最根本的技术是V oIP (V oice over IP)技术,可以说,因特网语音通信是VoIP技术的一个最典型的、也是最有前景的应用领域。
作为多媒体会话的基础协议SIP(Session Initiation Protocol),很自然的应用到voip系统中。
1.1 目的提供此文档来定义基于sip协议voip的系统的整体架构,为快速熟悉本系统以及作为系统设计的指导提供帮助。
1.2 定义及概念Voip :因特网语音通信Sip :SIP(Session Initiation Protocol)协议是一个用于建立、更改和终止多媒体会话或呼叫的应用层协议。
多媒体会话可以是多媒体会议、远程教学、因特网电话等各种应用。
基于SIP的VoIP系统QoS机制的研究及实现的开题报告一、研究背景随着VoIP技术的不断发展和应用,其在商业和个人通讯中的地位日益重要。
VoIP系统可以提供传统电话所不具备的功能以及更低廉的通信费用,但是其依赖于网络的稳定性和质量。
因此,实现优化的QoS机制成为保证VoIP通话质量的必要手段。
SIP(Session Initiation Protocol)是VoIP通话中最为常用的协议。
本次研究将以SIP为基础,探讨对VoIP通话进行流量控制和优化的QoS 机制,旨在提高SIP网络的稳定性和通话质量。
二、研究内容1. SIP协议的原理和应用本次研究将深入探讨SIP协议的原理和应用,并介绍其在VoIP通话中的作用和优势。
2. VoIP通话的QoS机制本次研究将探讨VoIP系统中常见的几种QoS机制,包括:(1)流量控制:针对VoIP通话中的实时传输数据,提供流量优化和拥塞控制功能。
(2)延迟控制:针对VoIP通话中的语音传输,提供延迟优化和抖动控制功能。
(3)保证服务:针对VoIP通话中的语音服务,提供优先权控制和资源保障功能。
3. 实现QoS机制的技术方案本次研究将针对SIP协议的特点和VoIP通话的QoS需求,分析实现QoS机制的技术方案,包括:(1)流量控制:基于流量监测和拥塞控制算法,实现对VoIP通话流量的控制和优化。
(2)延迟控制:基于抖动缓冲和网络调度等技术,实现对VoIP通话延迟的控制和优化。
(3)保证服务:基于差分服务、服务等级和资源分配等技术,实现对VoIP通话服务质量的保证。
三、预期成果1. 对SIP协议和VoIP通话QoS机制的深入理解,以及对流量控制、延迟控制和保证服务的技术方案的掌握。
2. 基于SIP协议实现的VoIP通话QoS机制,并实现相应的算法和技术方案。
3. 对SIP网络的稳定性和通话质量进行评估和测试,以验证所提出的QoS机制的有效性和实用性。
四、研究计划1. 第1-2周:研究现有文献和技术方案,深入理解SIP协议和VoIP 通话QoS机制的基本概念和原理。
浅谈SIP协议的VoIP终端设计与实现摘要:本文借鉴IP软终端的优点,提出了基于SIP的VoIP系统,即在现有的计算机网络架构上,利用VoIP技术,选用SIP协议,采用即插即用的USB接口与PC相连,不需要借助传统的电信终端,即可直接连入Internet。
利用USB接口供电,无需蓄电池而实现语音通信。
关键词:SIP协议;网络电话;软件程序设计一、VOIP发展现状IP电话这种通信方式的首次出现在1995 年,以色列的Vocaltec 公司首次推出了网络电话软件Internet Phone。
这款语音聊天软件可以供用户使用电脑与网络的另一端用户进行通信。
但是在当时,IP 电话并没有随之普及,原因林林总总,有很多方面。
首先,当时Internet 普及度不高,发展IP电话缺乏必要的市场;其次,当时带宽有限,网络条件不是很好,语音传输延时较大,远不如使用普通电话;最后,在当时并没有针对IP电话的相关软件标准,基本不存在互通性,这也制约了IP电话的发展。
但是随着计算机技术和因特网的发展,VoIP相关技术日益成熟。
高效的编解码技术、强劲的微处理器、宽带网络的普及,使得VoIP技术从实验室走进寻常百姓家。
兼之通信市场巨大的吸引力,VoIP也日益成为电信业和计算机业共同研究的热点。
在此背景下VoIP技术自身也经历着巨大的变革。
在当今,IP电话以从开发之初的简单电脑之间软件应用而发展到现在电脑到手机以及手机到手机之间的多形式应用。
二、VoIP基本原理和SIP协议2.1 VoIP基本原理VoIP的基本原理是通过语音的压缩算法对语音数据编码进行压缩处理,然后把这些语音数据按 TCP/IP 标准进行打包,经过 IP 网络把数据包送至接收地,再把这些语音数据包串起来,经过解压处理后,恢复成原来的语音信号,从而达到由互联网传送语音的目的。
2.2 SIP协议SIP(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。
第8卷 第10期 2008年5月167121819(2008)1022589204 科 学 技 术 与 工 程Science Technol ogy and Engineering Vol .8 No .10 M ay 2008Ζ 2008 Sci .Tech .Engng .基于S IP 协议的V O IP 系统设计与实现徐 炽 张闻芳13(湖南城市学院计算机科学系,湖南城市学院,益阳,413000)摘 要 近年来,SI P 作为Vo I P 的相关协议得到了越来越广泛的应用和越来越多厂商的支持。
介绍了Vo I P 的基本原理及SI P 协议的基本内容。
基于SI P 协议的Vo I P 作为主要研究内容,探讨了I P 电话的相关协议、相关标准和关键技术,对SI P 这种比较新的I P 电话协议进行了研究分析,设计出一套基于SI P 协议的Vo I P 电话服务器系统,包括系统分析、系统设计、系统实现,最后对该软件进行了测试,使该软件的开发达到了预期的目的。
关键词 Vo I P SI P radius openSER 服务器中图法分类号 TP393.04; 文献标志码 A2007年9月12日收到第一作者简介:徐 炽(1981—),男,湖南益阳人,硕士研究生,研究方向:软件工程。
3通信作者简介张闻芳(1981—),女,湖南衡阳人,硕士研究生,研究方向:图形图像。
近年来,Vo I P 及其应用技术日渐成熟,在全球范围内获得了高速发展,已经成为影响下一代网络(NG N )的一个主要因素[1]。
目前构建Vo I P 系统结构的信令协议主要有H.323协议和SI P 协议[2]。
虽然H.323协议正主导着Vo I P 技术,但其实现复杂、成本高、建立连接时延大,在现有网络中很难实现互联互通。
因此,I ETF 组织提出了会话初始协议SI P (Sessi on I nitial Pr ot ocol )[3]。
SI P 将网络设备的复杂性推向网络边缘,支持单播通信、多播通信、名称映射和重定向业务,还支持类似呼叫转发、呼叫拒绝等电信业务的实现以及支持用户移动性。
与H.323协议相比,SI P 协议更适合于智能用户终端,使用更加灵活、简单。
I P 技术是一种面向无连接的技术,I P 网络只提供一种“尽力而为”(Best Eff ort )的服务,这对于只要求准确率而对时延没有严格要求的数据业务来说是合适的,而对于音、视频等实时通信的QoS (Quality of Service )却难以保证。
因此,如何为音、视频等实时通信保证合理可预测的QoS,提供与公共开关电话网PST N(Public S witched Telephone Net w ork )可媲美的质量和服务已成为当前I P 领域中一个重要的研究热点[4]。
1 VO I P 和S I PVo I P (Voice Over I P ),顾名思义,就是在I P 网络上进行语音通信,但现在的Vo I P 已不仅仅是指传统意义上的语音通信,而是指音频、视频、数据合一的实时多媒体通信[5]。
VO I P 就可定义为:在整个语音通信过程中,部分或全部采用分组交换技术,通过I P 网络来进行的语音传输都可称之为V0I P 。
VO I P 的本质特征在于是否语音分组交换技术。
分组交换技术是I nternet 采用的体系结构,其核心是将要传输的数据报文分成长度较短且具有标准格式的分组,并采用存储转发机制,有效降低数据传输过程中的网络延迟,满足数据传输和交换的要求。
总之,VO I P 采用分组交换技术,具有以下特点[6]:(1)数据包排队传输产生时的时延较小,基本满足语音通信的要求。
(2)路由共享,传输线路动态统计时分复用,资源利用率高。
(3)为不同传输速率、不同编码方式、不同同步方式、不同通信规程的用户之间提供了语音通信的环境。
(4)采用分组技术,传输误码率低:从源端到目的端存在多个路由,网络中某一节点发生问题时,分组可以自动选择另外路由,从而保证通信不会中断,可靠性高。
(5)分组交换设备要比传统的PST N 设备交换机便宜,其运营和维护费用少,并且有利于新业务的扩展,经济性好。
(6)由于I P 协议本身提供的是面向无连接的服务,并不适合对实时性要求较高的语音服务,所以语音服务质量较难保证。
(7)要提供高质量的语音服务,尚存在一定的技术难度。
SI P 协议是由I ETF 最早提出的一种Vo I P 实现方式[7],其基本思想是在互联网环境中,组建一个平面结构的、可用于点对点对话需求的系统。
SI P 作为一个广义的电话信令协议,具有以下几个主要特征[8]:(1)SI P 可以发起会话,也可以邀请用户加入以其他方式(如S AP 、LDAP 等)发布或建立的会话。
(2)SI P 可以支持单播会话,也可以支持多播会话。
(3)SI P 与网络协议独立,即与底层协议无关。
SI P 可以在不同的传输层协议,如TCP 或UDP 。
当使用UDP 的时候,SI P 可以更好的支持多播会话;当使用T CP 的时候,SI P 可以更容易的穿透防火墙。
(4)SI P 支持很多其他协议,如RS VP 、RTP 和RTCP 、RTSP 、S AP 、S DP 等,但SI P 的功能和操作不取决于以上任何协议。
(5)SI P 是基于文本的协议,简单灵活,可扩展性好;SI P 采用Client/Server 的体系结构,在很大程度上继承了HTTP 和S MTP 协议的特征[9]。
(6)SI P 协议是无状态的,服务器可以保持也可以不保持呼叫状态。
(7)SI P 透明支持名字映射和重定向服务,可以实现I S DN 和I N 电话用户服务;通过网关,SI P 可以实现PST N 电话之间的呼叫。
(8)SI P 支持用户的移动性和移动业务。
图1 VO I P 分组交换2 系统简介本系统主要由SI P 服务器、基于RAD I U S 的AAA 服务器、用户注册平台以及Talk 软电话四部分组成。
Vo I P 系统网络拓扑结构在vTalk 系统的实现过程中,SI P 服务器使用开源的OpenSER 来完成。
OpenSER 是由基于I PTE L 公司开发的SER 发展出来的,采用GP L (General Public L icense )许可证发行的自由软件,它是符合ANSI C 语言标准写成架构在Free BS D 、L inux 2L ike (PC )系统和Solaris (Sun )系统,OpenSER 是支持符合RFC 3261的协议规范且架构在TCP 和UDP 之上的SI P 协议,是一套高效能、易于修改组态成形的语音服务器系统。
除了可以充当SI P 服务器外,OpenSER 还可作为短消息服务(S MS,Short Message Service )、即时通信(I M ,I nstant Message )、RAD I U S 记账和授权以及基于W eb 的用户配置、账号申请等充当网关。
3 系统的设计与实现本文中的SI P 服务器、Radius 服务器及Apache 、Mysql 服务器均建立在同一机器上,此机器使用的操作系统为Free BS D。
图2 32TI ER 的架构0952科 学 技 术 与 工 程8卷如图2所示,基于32TI ER的架构,本文把系统规划为后端服务器层、前端应用程序服务器层、客户端及管理者端的应用层。
首先,依照服务器环境的需求将服务器安装在Free BS D操作系统,并在此服务器上将依序安装以下各个服务器或系统:・OpenSER(后端SI P语音服务器)・MyS QL Server(后端数据库服务器)・Radius服务器用来做AAA认证・Apache HTTP Serve(前端应用程序服务服务器)・v oi p_reg(前端网络电话服务系统系统)・两个客户端使用Talk本文利用OpenSER来提供Si p的语音相关服务,MyS QL Server用来记录OpenSER提供服务时所产生的数据,作为帐务产生的依据。
经由Apache HTTPServer下透过v oi p_reg来提供用户帐号申请服务,两台用来测试OpenSER运作情形的机器,均安装上Talk客户端。
由于SI P服务器是架设在Free BS D操作系统之上的,所以除在安装SI P服务器前需要先装好Free BS D操作系统,还需要添加其他一些必须的软件,如软件编译环境g make、Apache、Mysql、PHP等,以用来开发本系统。
在服务器上安装好OpenSER 后,由于编译安装了Mysql模块,下面通过对OpenS2 ER的设定,使其支持Mysql数据库,使用Mysql数据库模块的目的是为了增强服务器的强韧性,并在重新开机后仍能保持用户的认证数据及记录用户位置,从而避免了OpenSER在不使用数据库模块的情况下,会出现无法对用户的身份认证,或在服务器重开机之后会失去用户位置数据等情况。
Radius认证过程系统对用户认证时主要涉及三个数据包,这三个数据包分别是:认证请求包(Access2Request)、认证响应包(Access2Accep t)和认证拒绝包(Access2 Reject)[10]。
第一个是用户认证时需要发给Radius 服务器的数据包,后两个是Radius服务器返回给Radius客户端的认证通过或认证拒绝的响应数据包。
本系统对用户认证时采用两次认证的方法:①首先,运行客户端电话软件vTalk后,出现登陆界面,用户需要输入账号和密码,然后生成Ac2 cess2Request数据包,将该数据包传给主Radius服务器。
②若主Radius服务器在一定时间内没有响应,则重发一次该请求包,若还没有响应,则把该包发给备份Radius服务器,备份服务器增强了系统的健壮性。
Radius服务器是一段软件代码,它收到请求包后,解包得到认证信息,并与数据库中的用户信息做比较。
在此是比较账号对应的密码,若密码相同,则认证通过,发回Access2Accep t包;若密码不同,认证未通过,发回Access2Reject包。
③当用户端收到Access2Accep t包时,表明用户合法,打电话的界面出现。
当用户端收到Access2 Reject包时,表明用户不合法,打电话的界面不出现。
这是首次认证。
当合法用户输入电话号码打电话时,呼叫控制服务器提取用户的账号和密码,生成Access2Request数据包,它以NAS的身份与Radius服务器通信,对用户进行二次认证,过程与第一次认证相同。
若呼叫控制服务器收到Radius服务器发回的Access2Accep t包,说明验证通过,可使用户与语音网关建立联接,并得到可通话最长时间或卡上余额等信息;若呼叫控制服务器收到Radius 服务器发回的Access2Reject包,说明验证未通过,用户与语音网关不能建立联接。