目 录
摘 要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
AB S TRAC T. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
第一章 绪 论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
选题的背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
基于SIP协议用户代理软件的国内外研究现状. . . . . . . . . . . . . . . . . . . . . . . . . . . .9
论文内容和结构安排. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
第二章 SIP协议及H.323协议簇的简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 1
SIP系统的组成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
图2 1 SIP系统的组成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
SIP功能概要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
用户定位. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
会话能力的协商. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
呼叫参与者管理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
呼叫建立. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
呼叫处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
SIP注册服务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
SIP的呼叫过程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
协议的优点. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
基本呼叫的建立和拆除. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
呼叫控制业务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
SIP的第三方控制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
服务质量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
实现的难易性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
SIP协议和H.323协议的比较. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
第三章 S I P实现中VC的应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
3.1对话框控件访问的七种方式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
3.2窗口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
网络编程Socket. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
计算机网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
IP地址. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
3.3.3协议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
ISO/OSI七层参考模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
TCP/I P模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
3.3.6端口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
套接字. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
客户机/服务器模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Windows Sockets的实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
线程同步与异步套接字编程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
第四章 基于SIP协议代理服务器的设计与实现. . . . . . . . . . . . . . . . . . . . . . . . . . . .39
用户代理的功能介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
处理SIP消息. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
提供与上层应用程序的接口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
定时功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
其他功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
SIP UserAgent的行为. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
主叫发出初始邀请请求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
被叫发出的响应. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
主叫接收并响应初始化的请求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
主叫或者被叫产生二级并发请求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
接收的并发请求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
SIP消息机制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
SIPURL结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
SIP消息结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
程序设计思想简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
程序主要功能介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
程序运行过程介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
程序启动. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
用户注册. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
用户登录. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
用户邀请. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
第五章 总结与展望. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
摘 要
通信提供商及其合作伙伴和用户越来越渴求新一代基于 IP的服务。现在有了 SIP协议会话启动协议 一解燃眉之急。 SIP协议是不到十年前在计算机科学实验室诞生的一个想法。 它是第一个适合各种媒体内容而实现多用户会话的协议现在已成了 Internet工程任务组 (IETF) 的规范。
今天越来越多的运营商、 CLEC竞争本地运营商和 ITSP IP 电话服务商都在提供基于 SIP 协议 的服务如市话和长途电话技术、在线信息和即时消息、 IP Centrex/Hosted PBX、语音短信、 push-to-talk 按键通话 、多媒体会议等等。独立软件供应商(ISV)正在开发新的开发工具 用来为运营商网络构建基于SIP协议的应用程序以及 SIP协议软件。网络设备供应商 (NEV) 正在开发支持SIP协议信令和服务的硬件。现在有众多 I P电话、用户代理、 网络代理服务器、 VO I P网关、媒体服务器和应用服务器都在使用 SIP协议。
SIP 将终端用户称为用户代理请求方称为用户代理客户被请求方称为用户代理服务器。 UAC负责发起S IP呼叫请求 UAS接收UAC的请求并负责对其做出响应(接受、拒绝或重定向)。
本文首先对SIP产生背景、 国内外研究动态、 应用领域及其优点进行简单介绍并详细介绍了 S I P的基本呼叫流程。最后利用 VC++6.0开发一个简单的服务器在Windows环境下自行设计实现了一个 SIP用户代理服务器。通过代理服务器分别实现用户的登陆、注册以及 PC到PC之间的通信。
关键字 SIP,服务器 VC用户代理
ABSTRACTcommunications provider and its partners and users more and thirst for a newgeneration of based on IP services.Now have an IP protocol (session start agreement),asolution of financial difficulty. SIP is less than a decade ago in computersciencelaboratory of the birth of an idea. It is the first suitable for al l kinds of media content andachieve more user session of the agreement,now has become the Internet engineeringtask force(IETF)standard.
Today,more and more operators,CLEC(competitive local operators)and ITSP(IPphone service provider)are provided based on SIP services,such as wireless and longdistance telephone technology, onl ine information and instant messaging, IPCentrex/Hosted PBX, voice messaging,push-to-talk (buttons on phone),multimediaconference,etc. Independent software vendors (ISV) is developing new developmenttools used to network operators based on SIP appl ications and SIP software.The networkequipment suppl iers(NEV)are development support SIP signal ing and service hardware.Now, there are numerous IP telephone,user agent, network proxy servers,VOIP,gateway,and media server and appl ication server are using SIP.
SIP wi l l end user cal led user agent, the requesting party cal led user agent customers,the requesting party cal led user agent server.UAC is responsible for launch SIP cal lrequested, receiving the request of the UAC UAS and is responsible for its response(accept, refuse or redirect.)
This paper first to SIP background, research dynamic, appl ication field and advantages ofsimple introduction,and introduces the basic process of SIP cal l .Final ly,using the vc++6.0, thedevelopmentof asimple cl ient, theWindowsenvironment to design and real ize a SIP useragentserver. Through the proxy server real ized respectively users log on, registered and PC to thecommunication between the PC.
第一章 绪 论
选题的背景
SIP 出现于二十世纪九十年代中期源于哥伦比亚大学计算机系副教授HenningSchulzrinne及其研究小组的研究。 Schulzrinne教授除与人共同提出通过Internet传输实时数据的实时传输协议 (RTP)外还与人合作编写了实时流传输协议(RTSP)标准提案用于控制音频视频内容在 Web上的流传输。
Schulzrinne本来打算编写多方多媒体会话控制 (MMUSIC)标准。 1996年他向IETF提交了一个草案其中包含了 SIP的重要内容。 1999年 Schulzrinne在提交的新标准中删除了有关媒体内容方面的无关内容。 随后 IETF发布了第一个SIP规范 即RFC2543。虽然一些供应商表示了担忧 认为H.323和MGCP协议可能会大大危及他们在SIP服务方面的投资 IETF继续进行这项工作 于2001年发布了SIP规范RFC3261 。
RFC3261的发布标志着 SIP的基础已经确立。从那时起 已发布了几个 RFC增补版本充实了安全性和身份验证等领域的内容。例如 RFC3262对临时响应的可靠性作了规定。 RFC3263确立了SIP代理服务器的定位规则。 RFC3264提供了提议/应答模型 RFC3265确定了具体的事件通知。
早在2001年供应商就已开始推出基于SIP的服务。今天 人们对该协议的热情不断高涨。 Sun Microsystems的Java Community Process等组织正在使用通用的Java编程语言定义应用编程接口 (AP I) 以便开发商能够为服务提供商和企业构建
SIP组件和应用程序。最重要的是越来越多的竞争者正在借助前途光明的新服务进入SIP市场。 SIP正在成为自 HTTP和SMTP以来最为重要的协议之一。
不过 SIP 不是万能的。它既不是会话描述协议也不提供会议控制功能。为了描述消息内容的负载情况和特点 SIP使用Internet的会话描述协议(SDP)来描述终端设备的特点。 SIP自身也不提供服务质量(QoS)它与负责语音质量的资源保留设置协议 (RSVP)互操作。它还与若干个其他协议进行协作包括负责定位的轻型目录访问协议(LDAP) 、负责身份验证的远程身份验证拨入用户服务 (RADI US)以及负责实时传输的 RT P等多个协议。
SIP规定了以下基本的通信要求 1 、用户定位服务 2、会话建立 3、会话参与方管理 4、特点的有限确定。
SIP是由 IETF制定的用于会话管理的应用层协议 目前最新的提议标准为RFC3261 。通过SIP人们可以方便地在 IP网络上创建、修改和终止由一个或多个参与者参与的会话。任何具有会话管理特征的应用 比如电话、会议、即时消息、游戏等都可以使用 SIP对会话进行管理。
SIP(会话初始协议)的开发目的是用来帮助提供跨越因特网的高级电话业务。因特网电话 IP电话正在向一种正式的商业电话模式演进 SIP就是用来确保这种演进实现而需要的 NGN 下一代网络系列协议中重要的一员。
SIP是IETF标准进程的一部分它是在诸如 SMTP 简单邮件传送协议和HTTP 超文本传送协议基础之上建立起来的。它用来建立改变和终止基于 IP网络的用户间的呼叫。为了提供电话业务它还需要结合不同的标准和协议特别是需要确保传输 RTP与当前电话网络的信令互连能够确保语音质量 RSVP能够提供目录 LDAP能够鉴权用户 RAD IUS等等。
SIP被描述为用来生成修改和终结一个或多个参与者之间的会话。这些会话
包括因特网多媒体会议 因特网或任何 IP网络电话呼叫和多媒体发布。会话中的成员能够通过多播或单播联系的网络来通信。 SIP支持会话描述它允许参与者在一组兼容媒体类型上达成一致。它同时通过代理和重定向请求到用户当前位置来支持用户移动性。 SIP不与任何特定的会议控制协议捆绑。
基于SIP协议用户代理软件的国内外研究现状
作为一个IMTF提出的标准 SIP协议在很大程度上借鉴了其他各种广泛存在的Internet协议如HTTP(超文本传输协议)、 SMTP(简单邮件传输协议)等和这些协议一样SIP也采用的基于文本的编码方式这也是 SIP协议同视频通讯领域其他现有标准相比最大的特点之一。 SIP协议的提出和发展 是伴随着Internet的发展而发展的到目前为止它走过了以下几个阶段
1996年首先出现了 SIP的概念这时 SIP的主要应用是针对 Internet上的各种文本应用如电子邮件、文字聊天等
1999年3月 ITEF的多方多媒体会话控制工作组提出了 RFC2543建议供各厂商和机构讨论
1999年9月 SIP工作组从MMUSIC中分离并独立出来成立了 SIP工作组并与2000年7月发表了SIP的草案
2002年6月 ITEF的SIP工作组又发表了 RFC3261建议 以取代RFC2543。由于网络环境以及相关多媒体技术的不足在 SIP协议首次提出的时候仅仅针对各种文本应用随着技术的发展并通过和 IETF中IP电话工作组(IPTEL) IP网中电话选路(TRIP)工作组等工作组配合工作在 SIP协议中大大加强了对多媒体通
印象云,成立于2019年3月的商家,公司注册于中国香港,国人运行。目前主要从事美国CERA机房高防VPS以及香港三网CN2直连VPS和美国洛杉矶GIA三网线路服务器销售。印象云香港三网CN2机房,主要是CN2直连大陆,超低延迟!对于美国CERA机房应该不陌生,主要是做高防服务器产品的,并且此机房对中国大陆支持比较友好,印象云美国高防VPS服务器去程是163直连、三网回程CN2优化,单IP默认给20...
之前几个月由于CHIA挖矿导致全球固态硬盘的价格疯涨,如今硬盘挖矿基本上已死,硬盘的价格基本上恢复到常规价位,所以,pacificrack决定对全系Cloud server进行价格调整,降幅较大,“如果您是老用户,请通过续费管理或升级套餐,获取同步到最新的定价”。官方网站:https://pacificrack.com支持PayPal、支付宝等方式付款VPS特征:基于KVM虚拟,纯SSD raid...
buyvm的第四个数据中心上线了,位于美国东南沿海的迈阿密市。迈阿密的VPS依旧和buyvm其他机房的一样,KVM虚拟,Ryzen 9 3900x、DDR4、NVMe、1Gbps带宽、不限流量。目前还没有看见buyvm上架迈阿密的block storage,估计不久也会有的。 官方网站:https://my.frantech.ca/cart.php?gid=48 加密货币、信用卡、PayPal、...