SIP协议标准和实现机制

news/2024/10/17 14:30:06/

1.SIP

       

      SIP论坛具有以下四个工作组:市场工作组、业务提供工作组、认证工作组、SIP设备工作组

       SIP协议是由IETF工作组制定的,用于在IP分组网络上建立、修改以及终止双方或多方的多媒体会话。早期的协议版本是1999年提出的RFC2543oSIP协议经过几年的发展,2002年6月,IETF重新制定并推出了SIP协议的RFC3261,同时也制定了SIP协议的一些相关协议,如:

       • RFC3262(June2002)“ReliabilityofprovisionalresponsesinSessionInitiationProtocol(SIP)”;

       • RFC3263(June2002)KSIP:LocatingSIPServers*1:

       • RFC3264(June2002)"AnOffer/AnswerModelwithSDP”;

       • RFC3265(June2002)"SessionInitiationProtocol(SIP)SpecificEventNotification15。此系列协议对RFC2543进行了废弃,RFC3261也就成为SIP协议的新的标准版本。现在的固定网也正是以这个标准为基础进行开发的。

随后,IETF工作组又制定了一些SIP协议的相关协议,如:

       • RFC3311(September2002)“TheSessionInitiationProtocol(SIP)UPDATEmethod,,;

       • RFC3312(October2002)^IntegrationofresourcemanagementandSessionInitiationProtocol(SIP)”;

       • RFC3313(January2003)"PrivateSessionInitiationProtocol(SIP)ExtensionsforMediaAuthorizatiorT;

       • RFC3320(January2003)''SignalingCompression(SigComp),^;

       • RFC3323(November2002)“APrivacyMechanismfortheSessionInitiationProtocol(SIP)”;

       • RFC3325(November2002)aPrivateExtensionstotheSessionInitiationProtocol(SIP)forNetworkAssertedIdentitywithinTrustedNetworks”;

       • RFC3327(December2002)HSessionInitiationProtocolExtensionHeaderFieldforRegisteriNGNon-AdjacentContacts,,;

       • RFC3515(April2003)"TheSessionInitiationProtocol(SIP)REFERmethod"等。

       目前,多个IETF工作组都在关注SIP协议的发展,如IP电话工作组(IPTEL)、IP网中电话选路(TRIP)工作组、多用途Internet邮件控制(MIME)、呼叫编程语言(CPL)工作组等。

3.3GPP/3GPP2

       移动网在IMS域釆用SIP协议时,SIP已经在固网软交换中得到了比较充分的应用,所以3G组织采用的SIP协议是以IETF的SIP标准为基础的,二者基本一致。

       移动网中直接采用IETFSIP协议标准中的SIP方法(SIPmethods),SIP头部(SIPheaders),SIP选项标签(Option-tags),SIP状态码(Status-code),SIP会话描述类型(Sessiondescriptiontypes)。

4.ITU-T

       SIP已经开始被ITU-TSG11PINT,ITU-TSG16,ETSITIPON(欧洲标准化组织),SIPBOF,IMTE等各种标准化组织所接受,并在这些组织中成立了与SIP相关的工作组。特别是作为ITU-TSG16主要成员,在多年发展H323应用的基础上,针对SIP应用在视频领域的特点,提出了SIP的应用指导,并推出了相应的SIP协议栈,使得ITU的成员实现了这两种协议之间的互通性。

SIP实现机制

       sip是一个分层结构的协议,这意味着它的行为根据一组平等独立的处理阶段来描述,每一阶段之间只是松耦合。协议分层描述是为了允许功能的描述可在一个部分跨越几个元素,它不指定任何方式的实现。通常所说的某元素包含某层是指它顺从该层定义的规则集。

       不是协议规定的每个元素都包含各层。而且,由SIP规定的元素是逻辑元素,不是物理元素。一个物理实现可以选择作为不同的逻辑元素,甚至可能在一个个事务的基础上。SIP的最低层是语法和编码。它的编码使用增强BNF形式语法来规定。

       第二层是传输层。它定义了网络上一个客户机如何发送请求和接收响应,以及一个服务器如何接收请求和发送响应。所有的SIP元素都包含传输层。

       第三层是事务层。事务是SIP的基本元素。一个事务是由客户机事务发送给服务器事务的请求(使用传输层),以及对应该请求的从服务器事务发送回客户机的所有响应组成。事务层处理应用层重传,匹配响应到请求,以及应用层超时。事务层具有客户机组成部分(称为客户机事务)和服务器组成部分(称为服务器事务),每个代表有限的状态机,它被构造来处理特定的请求。

      事务层之上的层称为事务用户(TU)。每个SIP实体,除了无状态代理,都是事务用户。当一个TU希望发送请求,它将生成一个客户机事务实例并且向TU传递请求和IP地址、端口和用来发送请求的传输机制。一个TU既生成客户机事务也能够删除它。当客户机取消一个事务时,它请求服务器停止进一步的处理,将状态恢复到事务初始化之前,并且生成特定的错误响应到该事务。这由CANCEL请求完成。

       SIP通过E-mail形式的地址来标明用户地址。每一用户通过URL来标识,它通过诸如用户电话号码或主机名等元素来构造(例如:SIP:user@company.com)。因为它与E-mail地址的相似性,SIPURL容易与用户的E-mail地址关联。

       SIP提供它自己的可靠性机制从而独立于分组层,并且只需要不可靠的数据包服务即可。SIP可典型地用于UDP或TCP之上。

       SIP提供必要的协议机制以保证终端系统和代理服务器提供以下业务:

     • 用户定位;

     • 用户能力;

     • 用户可用性;

     • 呼叫建立;

     • 呼叫处理;

     • 呼叫前转,包括等效800类型的呼叫、无应答呼叫前转、遇忙呼叫前转、无条件呼叫前转;

     • 呼叫号码传递,该号码可以是任何命名机制;

     • 个人移动性,例如,通过一个单一的、位置无关的地址来到达被呼叫方,即使被呼叫方改变终端;

     • 终端类型的协商和选择。呼叫者可以给出选择如何到达对方,例如,通过Internet电话、移动电话或应答业务等;

     • 终端能力协商;

     • 呼叫者和被呼叫者鉴权;

     • 不知情和指导式的呼叫转移;

     • 多播会议的邀请。

        当一用户希望呼叫另一用户,呼叫者用INVITE请求初始呼叫,请求包含足够的信息用以被呼叫方参与会话。如果客户机知道另一方的位置,则它能够直接将请求发送到另一方的IP地址。如果不知道,客户机将请求发送到本地配置的SIP网络服务器。如果服务器是代理服务器,则它将解析被呼叫用户的位置并且将请求发送给它们。可以通过很多方法完成上步,例如,搜索DNS或访问数据库。服务器也可以重定向服务器,它可以返回被呼叫用户的位置到呼叫客户机,以便直接与用户联系。在定位用户的过程中,SIP网络服务器当然能够代理或重定向呼叫到其他的服务器,直到到达一个明确的知道被呼叫用户IP地址的服务器。

       一旦发现用户地址,请求就发送给该用户,此时将产生几种选择。在最简单的情况下,用户电话客户机接收请求,也就是用户的电话振铃。如果用户接受呼叫,则客户机用客户机软件的指定能力响应请求并且建立连接。如果用户拒绝呼叫,则会话将被重定向到语音邮箱服务器或另一用户。“指定能力”参照用户想启用的功能。例如,客户机软件可以支持视频会议,但用户只想使用音频会议,则只会启用音频功能。

       SIP还具有另外两个有重要意义的特征。第一个特征是有状态SIP代理服务器具有分割入呼叫或复制入呼叫的能力,从而可以同时运行几个扩展分支。第一个应答的分支接受呼叫。该特征在用户工作在两个位置之间(例如,实验室和办公室)或者同时对经理和其秘书振铃时是非常便利的。

       第二个特征是SIP独特的返回不同媒体类型的能力。例如,当SIP服务器接收到客户机的连接请求时,它能够通过Web交互式语音响应页面来提供列表上的用户。单击适当的链接后将发送一请求到所选择的新用户,从而建立起呼叫。

 


http://www.ppmy.cn/news/790953.html

相关文章

一篇关于串口的经典文章

MODEM是用户接入互联网的重要设备。 虽然网络干线上已经普及宽带光纤传输,但是在拥有庞大用户群的最后一公里路段上,目前最现实的接入方式还是铜线连接(电话线,双绞线、电缆)。 另外,随着无线技术的发展,采用无线接入的…

谈谈语音通信中的各种tone

今天谈的这个主题(tone)存在于我们的日常打电话过程中。先举两个场景:1,你拿起固话话筒准备打电话,按电话号码前先从话筒里听到“嗡”的连续音,这叫dial tone(拨号音,表示你可以拨电话号码了)&a…

Freeswitch 180与183

SIP消息当中的180和183是通知invite消息的发起方,告知对方已振铃或者说你可以听振铃音了。 早期媒体:简单的可以理解为回铃音或者彩铃,但为了与真正的媒体相区分,所以称回铃音或者彩铃为早期媒体。 一般180不带SDP(仅限…

【FreeSwitch开发实践】外呼线路电话收不到回铃音问题的解决

✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:FreeSwitch开发实践 ✨ 专栏介绍:主要介绍博主在实际项目中使用FreeSwitch开发外呼类项目的一些经验心得,主要涉及FreeSwitch的基本安装编译、基本配置、ESL、WSS、录音、自定义模块、m…

ESFramework的最简化应用案例(控制台服务端和客户端,支持文本,振铃提醒,文件传输)

问:ESFramework是什么? 答:.NET通信框架. 问:能做什么? 答:分布式通信的系统如:即时通讯,多人在线游戏、在线网页游戏、文件传送、数据采集、分布式OA系统、远程教育系统等。 问:平台要求? 答:直接构建在.NET Framework 2.0上. 问:具体怎么写? 答:引擎初始化…

40. 同时在线最多的人数

文章目录 题目需求思路一实现一题目来源 题目需求 根据用户登录明细表(user_login_detail),求出平台同时在线最多的人数。 期望结果如下(截取部分): cn7 需要用到的表: 用户登录明细表&…

如何使用python删除文件或文件夹,根据提供的文件夹或文件路径列表删除对应的文件或文件夹

先上代码: def remove_file_or_dir(base_path, file_or_dir_names, log_tagcommon):print(f"{log_tag} Start deleting files: {file_or_dir_names} - {base_path}")for name in file_or_dir_names:full_file_path f"{base_path}/{name}"try:…

x264的一些编码参数

原文地址:http://blog.csdn.net/vblittleboy/article/details/8982857 x264是一个 H.264/MPEG4 AVC 编码器,本指南将指导新手如何创建高质量的H.264视频。 对于普通用户通常有两种码率控制模式:crf(Constant Rate Factor)和Two p…