当前位置:网站首页>SIP协议标准和实现机制
SIP协议标准和实现机制
2022-07-31 03:07:00 【[email pro】
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:[email protected])。因为它与E-mail地址的相似性,SIPURL容易与用户的E-mail地址关联。
SIP提供它自己的可靠性机制从而独立于分组层,并且只需要不可靠的数据包服务即可。SIP可典型地用于UDP或TCP之上。
SIP提供必要的协议机制以保证终端系统和代理服务器提供以下业务:
• 用户定位;
• 用户能力;
• 用户可用性;
• 呼叫建立;
• 呼叫处理;
• 呼叫前转,包括等效800类型的呼叫、无应答呼叫前转、遇忙呼叫前转、无条件呼叫前转;
• 呼叫号码传递,该号码可以是任何命名机制;
• 个人移动性,例如,通过一个单一的、位置无关的地址来到达被呼叫方,即使被呼叫方改变终端;
• 终端类型的协商和选择。呼叫者可以给出选择如何到达对方,例如,通过Internet电话、移动电话或应答业务等;
• 终端能力协商;
• 呼叫者和被呼叫者鉴权;
• 不知情和指导式的呼叫转移;
• 多播会议的邀请。
当一用户希望呼叫另一用户,呼叫者用INVITE请求初始呼叫,请求包含足够的信息用以被呼叫方参与会话。如果客户机知道另一方的位置,则它能够直接将请求发送到另一方的IP地址。如果不知道,客户机将请求发送到本地配置的SIP网络服务器。如果服务器是代理服务器,则它将解析被呼叫用户的位置并且将请求发送给它们。可以通过很多方法完成上步,例如,搜索DNS或访问数据库。服务器也可以重定向服务器,它可以返回被呼叫用户的位置到呼叫客户机,以便直接与用户联系。在定位用户的过程中,SIP网络服务器当然能够代理或重定向呼叫到其他的服务器,直到到达一个明确的知道被呼叫用户IP地址的服务器。
一旦发现用户地址,请求就发送给该用户,此时将产生几种选择。在最简单的情况下,用户电话客户机接收请求,也就是用户的电话振铃。如果用户接受呼叫,则客户机用客户机软件的指定能力响应请求并且建立连接。如果用户拒绝呼叫,则会话将被重定向到语音邮箱服务器或另一用户。“指定能力”参照用户想启用的功能。例如,客户机软件可以支持视频会议,但用户只想使用音频会议,则只会启用音频功能。
SIP还具有另外两个有重要意义的特征。第一个特征是有状态SIP代理服务器具有分割入呼叫或复制入呼叫的能力,从而可以同时运行几个扩展分支。第一个应答的分支接受呼叫。该特征在用户工作在两个位置之间(例如,实验室和办公室)或者同时对经理和其秘书振铃时是非常便利的。
第二个特征是SIP独特的返回不同媒体类型的能力。例如,当SIP服务器接收到客户机的连接请求时,它能够通过Web交互式语音响应页面来提供列表上的用户。单击适当的链接后将发送一请求到所选择的新用户,从而建立起呼叫。
版权声明
本文为[[email protected]]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_49543223/article/details/126078394
边栏推荐
- YOLOV5学习笔记(二)——环境安装+运行+训练
- Multilingual settings of php website (IP address distinguishes domestic and foreign)
- Mysql 45讲学习笔记(二十三)MYSQL怎么保证数据不丢
- 接口测试关键技术
- 【C语言】表达式求值的一般方法
- 15. Website Statistics
- VS QT——ui不显示新添加成员(控件)||代码无提示
- YOLOV5 study notes (3) - detailed explanation of network module
- 品牌广告投放平台的中台化应用与实践
- False positives and false negatives in testing are equally worthy of repeated corrections
猜你喜欢
Mysql 45讲学习笔记(二十五)MYSQL保证高可用
JS function this context runtime syntax parentheses array IIFE timer delay self.backup context call apply
YOLOV5 study notes (3) - detailed explanation of network module
11. Redis implements follow, unfollow, and follow and follower lists
工程(五)——小目标检测tph-yolov5
mycat的主从关系 垂直分库 水平分表 以及mycat分片联表查询的配置详解(mysql5.7系列)
Recursive query single table - single table tree structure - (self-use)
4. Sensitive word filtering (prefix tree)
Compile Hudi
Installation of mysql5.7.37 under CentOS7 [perfect solution]
随机推荐
大小端模式
C# remote debugging
8、统一处理异常(控制器通知@ControllerAdvice全局配置类、@ExceptionHandler统一处理异常)
PMP微信群日常习题
注解用法含义
Point Cloud DBSCAN Clustering (MATLAB, not built-in function)
2022 Nioke Multi-School League Game 4 Solution
JetPack组件Databinding
11、Redis实现关注、取消关注以及关注和粉丝列表
SQALE 是什么
11. Redis implements follow, unfollow, and follow and follower lists
StringJoiner in detail
【C语言】预处理操作
SQL注入 Less54(限制次数的SQL注入+union注入)
IDEA 注释报红解决
php 网站的多语言设置(IP地址区分国内国外)
解析小结—自用
Installation of mysql5.7.37 under CentOS7 [perfect solution]
Use of QML
观察者模式