以下定义对SIP协议非常主要。
Address-of-Record: 一个 address-of-record (AOR) 是一个SIP或者SIPS URI地址,它指到了一个域,同时它支持定位做事。定位做事可以映射这个URL到其他的URL,其他的URL可能绑定了用户的有效性和可用性。范例的示例是定位做事通过注册来实现。AOR 常常被认为是一个用户的“公开地址”。
Back-to-Back User Agent: 背靠背用户代理(B2BUA)是一个逻辑实体,它作为一个UAS来吸收一个要求,处理这个要求。为了决定如何应答这个要求,它的事情办法又类似于一个user agent client (UAC)来天生要求。不像代理做事器,它会保持dialog状态,并且必须参与到全体它所创建的dialogs中发送的所有要求。由于,它自己本身便是一个UAC和UAS的结合体,本身并不须要特殊明确的定义来定义它的行为。
Call: 呼叫是一个非正式的名称,它指的是介于终端之间的通信,常日情形下创建呼叫的目的是为了多媒体的沟通。
Call Leg: dialog其余的名称[31];已不在此规定中利用。
Call Stateful: 一个代理是有状态呼叫,它具有这样的特色。如果它保持dialog全体状态,这个状态一贯持续从初始化INVITE开始到BYE要求结束。一个call stateful 代理总是一个事务状态,但是事务状态不一定是一个有状态呼叫代理。
Client: 终端用户是任何一个网络的要素,它发送SIP要乞降吸收SIP相应。用户端可能,或不可能直接和真人用户进行互动。用户代理终端和代理是终端。
Conference: 一个对媒体会话,它包含了多个参与方。
Core: Core 指定了某些功能,这些功能专门针对某些SIP实体的参与方类型。例如,详细指定了是一个状态或者非状态代理,用户代理或者注册。除了某些非状态代理以外,所有的core功能都是事务用户。
Dialog: dialog是一种端对真个SIP关系,它介于两个UA之间,这两个UA在一定韶光内坚持着某种绑定关系。一个dialog的创建是通过SIP,例如对INVITE要求的2xx 相应。一个Dialog是通过一个call identifier, local tag,和一个remote tag来定义的。Dialog以前称之为一个call leg,call leg在RFC2543定义。
Downstream: 在事务内的一个前转的,它涉及到了一个要求流程,这个要求流程是从用户代理客户端到用户代理做事器真个处理方向。
Final Response: 是一个相应,它结束SIP事务,相反的,一个provisional response(临时相应)则不会结束事务。所有All 2xx,3xx,4xx,5xx 和 6xx responses 都是终极相应。
Header: 头是SIP的组件,它通报的信息。它由一系列的头域值构成。
Header Field: 头是SIP的组件。一个头域可以表现为一个或多个头域值。每一行头域值包含头域值名称和一个或者多个头域值。如果有多个头域值的话,可以通过逗号分开。一些头域值仅有单行头域,它总是以单行头域涌现。
Header Field Value: 一个头域是一个单个数值;它由零个或多个头域值构成。
Home Domain: 主机域对SIP用户供应做事。范例的阐明是,这是一个域名,它涌如今注册AOR的URL中。
Informational Response: 类似于一个临时相应。
Initiator, Calling Party, Caller: 一方发起一个会话(和dialog),它带着一个INVITE要求。一个呼叫方始终保持一个角色,这个角色从它开始发送这个初始的INVITE开始打算,这个INVITE创建了一个dialog,一贯到结束这个dialog。
Invitation: 一个INVITE要求。
Invitee, Invited User, Called Party, Callee: 一方吸收一个INVITE要求,这个要求的目的是为了创建一个新的会话。被呼叫方始终保持这个角色,这个角色从它开始吸收这个INVITE开始打算,一贯到dialog结束,这个dialog是由那个INVITE创建。
Location Service: 定位做事用来支持一个 SIP 重定位或代理做事器来得到关于被呼叫方可能存在的地址信息。它包含一个绑定的address-of-record列表数值,这些从从零个到多个contact 地址。这个绑定关系可以通过多种办法来创建或者删除;此协议细节中定义了一个REGISTER method来更新绑定关系。
Loop: 一个已到达代理的要求,经由前转往后,后来又返回到同样的代理。当这个要求第二次到达代理时,这个要求的Request-URI确认是第一次的要求,并且其他影响代理操作的头域值不会改变,因此代理会在这个要求中做出和第一次同样的处理决定。回环的要求是一种缺点,流程会检测回环要求,通过协议本身来处理这种回环要求。
Loose Routing: 如果代理遵守本规范来处理路由头域,代理会被奉告是一个疏松路由。这些流程从一系列的代理等分开了目的地要求(涌如今Request-URL中),代理所遵守的机制被称之为疏松路由。
Message: 是在SIP要素之间发送的数据,它是协议的一部分。SIP可以是要求或者相应。
Method: method是一个基本功能,一个要求在做事器端被激活。Method在要求自己的中传输。常见的methods是INVITE和BYE。
Outbound Proxy: 它是一个代理,卖力吸收从客户端发出的要求,纵然它可能不是一个通过Request-URI解析度做事器。 常日情形下,一个UA 可以通过outbound proxy手动配置,或通过自动配置协议进行学习。
Parallel Search: 在并行查询中,一个代理会对可能存在的用户位置发送几个要求,这些可能存在的用户位置用来吸收要求。而且,并行查询也不是发送一个要求,然后等待收到这个要求的末了相应,然后发送接下来的要求。它不会等到前面的要求相应收到往后再发送下一个要求。
Provisional Response: 它是临时相应,临时相应表示做事器真个处理进程,但是临时相应不会结束SIP事务。1xx是临时相应,其他的相应是终极相应。
Proxy, Proxy Server: 代理是一个中间实体,它的事情办法既是一个做事器端,又是一个客户端,作为客户真个浸染是支持其他客户端发起要求。代理做事器基本功能是扮演路由的角色,它的事情便是确保要求被发送到比较靠近目标用户的其他实体。代理也可以实行一些逼迫的策略(例如,确保用户被许可呼叫)。代理可以解析要求的部分内容,如果必要的话,在一个要求被前转之前,代理可以重写要求的部分参数内容。
Recursion:递归处理。当用户在相应中的Contact 头域中产生一个或多个URLS的新要求时,用户会在3xx相应中产生递归。
Redirect Server: 重定向做事器是一个用户代理做事器,它会对吸收的要求产生3xx 相应,重新定向用户,让用户联系其他可选的URL列表中的URI地址。
Registrar: 注册做事是一个注册做事器,它用来接管REGISTER要求,卖力把注册做事器接管的信息保存到定位做事所支持的domain,这个domain是注册做事器卖力。
Regular Transaction: 正常事务是任何带method的事务,带INVITE, ACK,或者CANCEL的method的除外。
Request: 要求是一个由用户端发送到做事器的SIP,要求的目的是触发一个特殊的操作。
Response: 相应是一个由做事器端发送到用户真个SIP,其目的是解释要求发送后做事器端回答的状态。
Ringback: 回铃是一种信令音(回铃音),它是由呼叫方运用程序天生,用来表示被呼叫方已经被提示(被呼叫方正在振铃状态)。
Route Set:路由集是一组有序SIP或者SIPS URI的集和,它用来表示当发送一个特殊的要求时所经由的代理列表。路由集通过路由头,例如Record-Route或者经由配置后得到。
Server: 做事器是网络中的一个要素,它用来吸收要求,然后对其进行做事支持,并且对其要求返回相应。做事器的实例包括代理,用户终端做事器,重定位做事器和注册做事器。
Sequential Search: 在顺序查询中,代理做事器按照顺序考试测验查询每个contact地址,并且,只有当上一个查询返回终极相应后才进行下一个查询的新的处理。 2xx或者6xx 的终极相应总是结束顺序查询处理。
Session: 在SDP规范中:\公众一个媒体会话是一系列媒体发送方和媒体吸收方,以及从发送方到吸收方之间的媒体数据流。一个媒体会议便是一个媒体会话的举例。\公众 (RFC 2327[1]) (对SDP定义的会话来说,一个会话由一个或多个RTP 会话构成)。就像定义中的那样,对付同一会话来说,一个被呼叫方可以被不同的呼叫方多次约请。如果利用了SDP,会话通过SDP 用户名称,会话ID,网络类型,地址类型和在地址单元中的原始值域构成。
SIP Transaction: 一个SIP 事务会发生在客户端和做事器端之间,它由第一个由客户端发出的要求开始到做事器端终极相应的所有构成(非1xx)。如果要求是INVITE,并且终极相应是一个非-2xx的话,这个事务也会对这个相应包括一个ACK。这个对付200 OK(INVITE的相应)的ACK来说,它是一个独立的事务处理。
关于SIP事务的定义,除了rfc3261中定义以外,笔者为了帮助读者能够比较完全地理解事务的真正观点,除了在老师文档中有过先容以外,特殊添加了图例来进一步解释什么是SIP的事务,其余,读者一定要把稳官方定义中的加粗部分内容的阐明。
SIP Transaction: A SIP transaction occurs between a client and a server and comprises all messages from the first request sent from the client to the server up to a final (non-1xx) response sent from the server
to the client. If the request is INVITE and the final response is a non-2xx, the transaction also includes an ACK to the response. The ACK for a 2xx response to an INVITE request is a separate transaction
其余,事务有分为客户端事务和做事器端事务处理办法。在不同的环境中扮演不同的角色。
合营rfc3261对事务的定义,我们通过以下图例详细解释一下事务的定义。通过rfc的定义,我们看出,以下呼叫流程包括了三个事务处理的流程。这里大家该当把稳到是,如果要求是INVITE情形下的问题。第一个是INNITE到200 OK的流程,它是一个非200 OK的情形。因此,第二个是ACK,它是一个独立分离的事务处理。第三个事务是一个非INVITE要求,客户端发送到是BYE,然后回答200 OK。因此,从大略的流程中可以看出,这个dialog 包括了三个事务处理。
当然,每个事务都有各自的ID和其他属性来差异于其他的事务。每个事务的ID包括以下几个方面的属性:
通过Via-header 添加到branch IDCseg headerrfc 3261定义的branch ID 起始前缀“z9hG4bK”以下是一个INVITE中的定义示例:
参考资料:
https://www.rfc-editor.org/rfc/pdfrfc/rfc3262.txt.pdf
http://www.aboutsip.com/aboutsip-intro_transactions_and_dialogs.pdf
关注微信"大众年夜众号:asterisk-cn,得到有代价的Asterisk行业分享
Asterisk freepbx 中文官方论坛:http://bbs.freepbx.cn/forum.php
Asterisk freepbx技能文档: www.freepbx.org.cn
领悟通信商业办理方案,协同办理方案首选产品:www.hiastar.com
Asterisk/FreePBX中国互助伙伴,官方qq技能分享群(3000千人):589995817