sip协议呼叫流程详解

您所在的位置:网站首页 业务请求流程 sip协议呼叫流程详解

sip协议呼叫流程详解

#sip协议呼叫流程详解| 来源: 网络整理| 查看: 265

1、SIP业务基本知识 前言

会话发起协议(SIP)是VoIP技术中最常用的协议之一。它是一种应用层协议,与其他应用层协议协同工作,通过Internet控制多媒体通信会话。

1.1 业务介绍

会话初始协议(Session Initiation Protocol)是一种信令协议,用于初始、管理和终止网络中的语音和视频会话,具体地说就是用来生成、修改和终结一个或多个参与者之间的会话。

SIP的业务模式是一个点对点协议,其中有两个要素——SIP用户代理和SIP网络服务器。用户代理是呼叫的终端系统元素,而SIP服务器是处理与多个呼叫相关联信令的网络设备。

用户代理本身具有一客户机元素(用户代理客户机UAC)和一服务器元素(用户代理服务器UAS)。客户机元素初始呼叫而服务器元素应答呼叫。这允许点到点的呼叫通过客户机-服务器协议来完成。

下图是SIP业务的网络结构和各个参与者的关系。

SIP业务的核心特点集中在SIP的设计目标之一是提供类似公用交换电话网(PSTN)中呼叫处理功能的扩展集。在这个扩展集中,实现类似日常电话的操作:拨号,振铃,回铃音或者忙音,只是实现方式和术语有所不同。

SIP也实现了许多信令系统7(SS7)中更高级的呼叫处理功能,尽管这两个协议相差很远。SS7是一个高度集中处理的协议,其特点表现为高复杂度的中心网络结构和无智能的哑终端(传统的电话机)。

SIP则是一个点对点协议,所以它只需要一个相对简单的(因此也高度可扩展的)核心网络,而将处理工作下放给连接在网络边缘的智能端点(装有硬件或软件的终端设备)。SIP的许多功能在端点中实现,这与传统的SS7将其在网络核心设备实现的作法大异其趣。而协议的其他特点还有它是一个文本协议,所以易于调测,结构灵活;而且它是一个中性的底层传输协议,可用TCP或UDP(推荐UDP);同时呼叫和媒体信息同时传送:媒体信息的传送由SDP传送SIP是互联网工程任务组(IETF)多媒体数据和控制体系结构的一个组成部分,因此它与IETF的许多其他协议都有联系,例如RTP(实时传输协议)和SDP协议。SIP与许多其它的协议协同工作,仅仅涉及通信会话的信令部分(control message)。

SIP报文内容传送会话描述协议(SDP),SDP协议描述了会话所使用流媒体细节,如:使用哪个IP端口,采用哪种编解码器等等。SIP的一个典型用途是:SIP“会话”传输一些简单的经过封包的实时传输协议流。RTP本身才是语音或视频的载体。

1.2 业务过程和协议流程

Ø 注册流程:

(1)用户首次试呼时,终端代理A 向代理服务器发送REGISTER 注册请求;(2)代理服务器通过后端认证/计费中心获知用户信息不在数据库中,便向终端代理回送401Unauthorized 质询信息,其中包含安全认证所需的令牌;(3)终端代理提示用户输入其标识和密码后,根据安全认证令牌将其加密后,再次用REGISTER 消息报告给代理服务器;(4)代理服务器将REGISTER 消息中的用户信息解密,通过认证/计费中心验证其合法后,将该用户信息登记到数据库中,并向终端代理A 返回成功响应消息200 OK。

Ø 注销流程:

(1)终端向代理服务器发送register消息注销,其头中expire字段设置为0。(2)代理服务器在收到后送回200OK响应,并将数据库中的用户有关消息注销。

Ø 基本呼叫建立过程:

(1)用户摘机发起一路呼叫,终端代理A向该区域的代理服务器发起Invite请求;(2)代理服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答;若没有问题,代理服务器在请求消息的Via头域插入自身地址,并向Invite消息的To域所指示的被叫终端代理B传送Invite请求。(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。(5)终端代理B指示被叫用户振铃,用户振铃后向代理服务器发送180Ringing振铃信息。(6)代理服务器向终端代理A转发被叫用户振铃信息。(7)被叫用户摘机,终端代理B向代理服务器返回表示连接成功的应答(200OK)(8)代理服务器向终端代理A转发该成功指示(200OK)(9)终端代理A收到信息后,向代理服务器发ACK信息进行确认(10)代理服务器将ACK确认消息转发给终端代理B。(11)主被叫用户之间建立通信连接,开始通话。

Ø 正常呼叫释放过程:

(1) 正常呼叫(2) 用户通话结束后,被叫用户挂机,终端代理B向代理服务器发送Bye消息。(3) 代理服务器转发Bye消息至终端代理A,同时向认证、计费中心发送用户通话的详细信息,请求计费。(4) 主叫用户挂机后,终端代理A向代理服务器发送确认挂断响应信息200OK。(5) 代理服务器转发响应信息200OK。

Ø 会话更改流程:(1)用户代理服务端和代理客户端正常通话。(2)用户代理服务端向用户代理客户端发送Invite信息,带有新的SDP协商信息。(3)用户处理客户端回复200OK,并将协商后的SDP信息带回。(4)用户代理服务端发送ACK给用户代理客户端进行确认。

Ø 被叫忙呼叫释放:

(1)用户摘机发起一路呼叫,终端代理A向该区域代理服务器发起Invite请求;(2)代理服务器向被叫终端代理B传送Invite请求。(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。(5)呼叫请求送到被叫终端代理B后,被叫忙,终端代理B向代理服务器送486被叫忙响应。(6)代理服务器向终端代理A转发该响应消息。(7)终端代理A向代理服务器回送ACK确认消息。(8)代理服务器向终端代理B送ACK确认信息。

Ø 被叫无应答流程一:

(1)用户摘机发起一路呼叫,终端代理A向该区域代理服务器发起Invite请求;(2)代理服务器向被叫终端代理B传送Invite请求。(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。(5)被叫用户振铃,终端代理B向代理服务器送180Ring响应。(6)代理服务器向终端代理A转发该响应信息。(7)被叫久振铃无应答,终端代理A判断超时后向代理服务器送Cancel消息放弃该呼叫。(8)代理服务器收到Cancel消息后,向终端代理A回送200OK响应。(9)代理服务器将Cancel消息转发给终端代理B。(10)终端代理B向代理服务器回送200OK响应。(11)终端代理B向代理服务器送487请求已撤销的响应信息。(12)代理服务器收到后回送ACK确认。(13)代理服务器向终端代理A送487请求已撤销消息。(14)终端代理A向代理服务器回送ACK确认。注:以上步骤中的(10)到(12)无严格顺序关系。

Ø 被叫无应答流程二:

(1)用户摘机发起一路呼叫,终端代理A向该区域代理服务器发起Invite请求;(2)代理服务器向被叫终端代理B传送Invite请求。(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。(5)被叫用户振铃,终端代理B向代理服务器送180Ring响应。(6)代理服务器向终端代理A转发该响应信息。(7)被叫久振铃无应答,终端代理B判断超时后向代理服务器送408Requesttimeout消息放弃该呼叫。(8)代理服务器收到408Requesttimeout消息后,转发该消息给终端代理A。(9)代理服务器回送ACK确认给终端代理B。(10)终端代理A向代理服务器回送ACK确认。注:以上步骤中的(9)到(10)无严格顺序关系。

Ø 遇忙呼叫前转:

(1)用户摘机发起一路呼叫,终端代理A向该区域代理服务器发起Invite请求;(2)代理服务器向被叫终端代理B传送Invite请求。(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。(5)终端代理B忙线中,B向代理服务器发送486Busy Here响应。(6)代理服务器向终端代理B发送ACK确认消息。(7)代理服务器对此呼叫进行前转,向代理服务器C发送Invite请求消息。(8)代理终端C收到后指示用户振铃,同时向代理服务器发送180Ringing响应。(9)代理服务器向A转发收到的180Ringing响应。(10)被叫用户C摘机接听电话,终端代理C向代理服务器返回表示连接成功的应答(200OK)(11)代理服务器向终端代理A转发该成功指示(200OK)(12)终端代理A收到信息后,向代理服务器发ACK信息进行确认(13)代理服务器将ACK确认消息转发给终端代理B。建立通信连接,开始通话。(14)主叫用户挂机,终端代理A向代理服务器发送Bye消息,请求挂机。(15)代理服务器转发Bye消息至终端代理C,指示C挂机。(16)终端代理C向代理服务器发送确认挂断响应信息200OK。(17)代理服务器转发响应信息200OK至A。

Ø 无应答呼叫前转流程:

(1)用户A摘机发起一路呼叫,终端代理A向该区域代理服务器发起Invite请求;(2)代理服务器向被叫终端代理B传送Invite请求。(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。(5)被叫用户振铃,终端代理B向代理服务器送180Ring响应。(6)代理服务器向终端代理A转发该响应信息。(7)被叫久振铃无应答,代理服务器判断超时后向代理终端B送Cancel消息放弃该呼叫。(8)代理终端B收到Cancel消息后,向代理服务器回送200OK响应。(9)终端代理B向代理服务器送487请求已撤销的响应信息。(10)代理服务器向终端代理B回送200OK响应。(11)代理服务器对此呼叫进行前转,向代理服务器C发送Invite请求消息。(12)代理终端C收到后指示用户振铃,同时向代理服务器发送180Ringing响应。(13)代理服务器向A转发收到的180Ringing响应。(14)被叫用户C摘机接听电话,终端代理C向代理服务器返回表示连接成功的应答(200OK)(15)代理服务器向终端代理A转发该成功指示(200OK)(16)终端代理A收到信息后,向代理服务器发ACK信息进行确认(17)代理服务器将ACK确认消息转发给终端代理C。建立通信连接,开始通话。(18)主叫用户挂机,终端代理A向代理服务器发送Bye消息,请求挂机。(19)代理服务器转发Bye消息至终端代理C,指示C挂机。(20)终端代理C向代理服务器发送确认挂断响应信息200OK。(21)代理服务器转发响应信息200OK至A。

Ø 呼叫保持:

(1)用户摘机发起一路呼叫,终端代理A向该区域的代理服务器发起Invite请求;(2)代理服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答;若没有问题,代理服务器在请求消息的Via头域插入自身地址,并向Invite消息的To域所指示的被叫终端代理B传送Invite请求。(3)代理服务器向终端代理A发送呼叫处理中的应答信息:100Trying。(4)终端代理B向代理服务器送呼叫处理中的应答信息:100Trying。(5)终端代理B指示被叫用户振铃,用户振铃后向代理服务器发送180Ringing振铃信息。(6)代理服务器向终端代理A转发被叫用户振铃信息。(7)被叫用户摘机,终端代理B向代理服务器返回表示连接成功的应答(200OK)(8)代理服务器向终端代理A转发该成功指示(200OK)(9)终端代理A收到信息后,向代理服务器发ACK信息进行确认(10)代理服务器将ACK确认消息转发给终端代理B。(11)主被叫用户之间建立通信连接,开始通话。(12)代理终端B向代理服务器发送Reinvite消息,SDP的c域等于0,0,0,0。(13)代理服务器转发此信息给代理终端A。(14)代理终端A收到Reinvite后回应200OK响应。表示接受会话更改,同事根据协商结果修改会话方式。(15)代理服务器转发200OK给代理终端B。(16)代理终端B收到消息后向代理服务器发送ACK消息进行确认。(17)代理服务器将ACK确认消息转发到代理终端A。

Ø 呼叫等待:

(1)AB正常通话。(2)在AB通话的阶段,用户C向A发起呼叫,终端代理C发送Invite消息给代理服务器。(3)代理服务器向终端C回送100Trying响应,表示呼叫已在处理中。(4)代理服务器把Invite消息转发给A。(5)用户A振铃,并且终端A向代理服务器发送180Ring响应。(6)代理服务器向终端C转发该响应信息。(7)用户A按下呼叫保持键,代理终端A向代理服务器发送Invite消息,请求与代理终端C呼叫保持。(8)代理服务器转发此消息给终端代理B。(9)代理服务器向终端A回送100Trying响应,表示呼叫已在处理中。(10)终端B收到呼叫保持请求后,发送200OK给代理服务器,表示接受呼叫保持。(11)代理服务器转发200OK响应给终端代理A。(12)代理终端A收到消息后向代理服务器发送ACK消息进行确认。(13)代理服务器将ACK确认消息转发到代理终端B。(14)终端代理A发送200OK给代理服务器,表示接受C的呼叫。(15)代理服务器转发200OK给终端代理C。(16)终端代理C向代理服务器回送ACK确认。(17)代理服务器向代理终端A转发收到的ACK确认。A、C之间开始通话。(18)用户A挂机,终端代理A向代理服务器发送Bye请求消息。(19)代理服务器转发Bye消息给终端代理B。(20)终端代理C发送200OK给代理服务器,表示接受请求。(21)代理服务器转发200OK响应给终端代理A。(22)终端代理C重新发送Invite请求给代理服务器,请求和终端代理B恢复通话。(23)代理服务器向代理终端B转发收到的Invite请求。

2、SIP通信过程报文抓取实例分析

l 实验环境:Linux2.6+Asterisk1.4(开源IPPBX)l 实验地点:北京邮电大学信息与通信工程学院创新实验室l SIP代理服务器IP:59.64.135.22  SIP电话号码:825002(59.64.135.22)l SIP代理终端IP:59.64.135.67l 软终端:X-litel 抓包分析工具:WireShark注:由于过程太多,以下仅仅抓取“成功注册”,“呼叫--通话” ,“挂断”“注销”四种情况做典型包的分析。Ø 注册流程:

以上是REGISTER包。我们可以看到在注册的时候,终端会向代理服务器59.64.135.22发送REGISTER请求注册。以上是REGISTEROK包。服务器返回200 OK,表示注册成功。

Ø 基本呼叫建立过程:

以上是INVITE包。我们可以看到在发起呼叫初期,终端向825002发出Invite的呼叫请求。以上是Trying包,说明终端825003正在试着连通服务器,进一步转接到825002.由于设置了自动接听,所以此次通话没有振铃的包。这是ACK包,代表确认信号。

Ø 正常呼叫释放过程:

以上是BYE包。这是825002挂断后服务器向825003发送的释放呼叫信号。Ø 注销流程:以上是825003注销的包,我们注意到expires=0这说明是注销。

3.总结

SIP协议凭借其简单、易于扩展、便于实现等诸多优点越来越得到业界的青睐,它正逐步成为NGN(下一代网络)和3G多媒体子系统域中的重要协议,并且市场上出现越来越多的支持SIP的客户端软件和智能多媒体终端,以及用SIP协议实现的服务器和软交换设备。

------------------------------------------------------------------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------------------------------

 

SIP协议 

会话发起协议(SIP)是VoIP技术中最常用的协议之一。它是一种应用层协议,与其他应用层协议协同工作,通过Internet控制多媒体通信会话。

SIP - 概述

以下是有关SIP的几点注意事项 -

SIP是用于通过因特网协议创建,修改和终止多媒体会话的信令协议。会话只不过是两个端点之间的简单调用。端点可以是智能电话,笔记本电脑或可以通过因特网接收和发送多媒体内容的任何设备。

SIP是由IETF(Internet Engineering Task Force)标准定义的应用层协议。它在RFC 3261中定义。

SIP体现了客户端 - 服务器体系结构,以及使用HTTP和URL的URL和URI 以及SMTP的文本编码方案和头样式。

SIP采用SDP(会话描述协议)的帮助,它描述了用于通过IP网络传送语音和视频的会话和RTP(实时传输协议)。

SIP可用于双方(单播)或多方(多播)会话。

其他SIP应用包括文件传输,即时通讯,视频会议,网络游戏,以及流多媒体分发。

下图说明了SIP在一般方案中的适用性 -

通常,SIP协议用于两个或多个端点之间的互联网电话和多媒体分发。例如,一个人可以使用SIP发起对另一个人的电话呼叫,或者有人可以与许多参与者建立电话会议。

SIP协议的设计非常简单,配置有限的命令。它也是基于文本的,所以任何人都可以读取SIP会话中的端点之间传递的SIP消息。

有一些实体帮助SIP创建其网络。在SIP中,每个网元由SIP URI(统一资源标识符)来标识,它像一个地址。以下是网络元素 -

用户代理 代理服务器 注册服务器 重定向服务器 位置服务器 用户代理

它是SIP网络的端点和最重要的网络元素之一。端点可以启动,修改或终止会话。用户代理是SIP网络中最智能的设备或网络元件。它可以是软电话,手机或笔记本电脑。

用户代理在逻辑上分为两部分 -

用户代理客户端(UAC) - 发送请求并接收响应的实体。

用户代理服务器(UAS) - 接收请求并发送响应的实体。

SIP基于客户机 - 服务器架构,其中呼叫者的电话充当发起呼叫的客户端,被叫方的电话充当响应呼叫的服务器。

代理服务器

网络元素接收来自用户代理的请求并将其转发给另一个用户。

基本上代理服务器的作用就像一个路由器。

它有一些智慧来了解SIP请求,并在URI的帮助下发送它。

代理服务器位于两个用户代理之间。

源和目的地之间最多可以有70个代理服务器。

有两种类型的代理服务器 -

无状态代理服务器 - 它只是转发收到的消息。这种类型的服务器不存储任何呼叫或交易的信息。

有状态代理服务器 - 这种类型的代理服务器可以跟踪收到的每个请求和响应,并且如果需要,可以将来使用它。如果对方没有响应,它可以重新发送请求。

注册服务器

注册服务器接受用户代理的注册请求。它可以帮助用户在网络中进行身份验证。它将URI和用户的位置存储在数据库中,以帮助同一域内的其他SIP服务器。

看看下面的示例,显示SIP注册的过程。

这里呼叫者想要向TMC域注册。因此,它向TMC的Registrar服务器发送REGISTER请求,并且服务器在授权客户端时返回200 OK响应。

重定向服务器

重定向服务器接收请求,并在注册器创建的位置数据库中查找请求的预期收件人。

重定向服务器使用数据库获取位置信息,并以3xx(重定向响应)响应给用户。我们将在本教程的后面讨论响应代码。

位置服务器

位置服务器提供有关呼叫者可能的位置到重定向和代理服务器的信息。

只有代理服务器或重定向服务器可以联系位置服务器。

下图描绘了每个网络元素在建立会话中所扮演的角色。

SIP - 系统架构

SIP被构造为分层协议,这意味着其行为根据一组相当独立的处理阶段来描述,只有每个阶段之间的松散耦合。

SIP的最低层是其语法和编码。其编码使用增强的Backus-Naur表格语法(BNF)来指定。

第二层是传输层。它定义客户端如何发送请求并接收响应,以及服务器如何接收请求并通过网络发送响应。所有SIP元素都包含传输层。

接下来是事务层。事务是由客户端事务(使用传输层)发送到服务器事务的请求,以及从服务器事务发送回客户端的对该请求的所有响应。用户代理客户端(UAC)完成的任何任务都将使用一系列事务进行。无状态代理不包含事务层。

事务层上面的层称为事务用户。除了无状态代理之外,每个SIP实体都是一个事务用户。

下图显示了SIP会话的基本呼叫流程。

以下是对上述呼叫流程的逐步说明 -

发送到代理服务器的INVITE请求负责启动会话。

代理服务器发送100 尝试立即响应呼叫者(Alice)以停止INVITE请求的重新发送。

代理服务器在位置服务器中搜索Bob的地址。获取地址后,进一步转发INVITE请求。

此后,Bob手机生成的180 振铃(临时响应)返回给爱丽丝。

鲍勃拿起手机后一个200 OK响应很快产生。

一旦200 OK到达Alice,Bob 从Alice 收到一个ACK。

同时,会话建立,RTP数据包(会话)从两端开始流动。

会话结束后,任何参与者(Alice或Bob)都可以发送一个BYE请求来终止会话。

BYE直接从Alice到Bob绕过代理服务器。

最后,Bob发送200 OK响应来确认BYE,会话终止。

在上述基本呼叫流程中,可以使用三个事务(标记为1,2,3)。

完整的呼叫(从INVITE到200 OK)称为对话Dialog。

SIP梯形

代理如何帮助一个用户与另一个用户连接?让我们在下图的帮助下找出。 

图中所示的拓扑结构称为SIP梯形图。该过程发生如下 -

当呼叫方发起呼叫时,将向代理服务器发送INVITE消息。代理服务器收到INVITE后,尝试借助DNS服务器解析受理者的地址。

在获得下一个路由之后,呼叫者的代理服务器(代理1,也称为出站代理服务器)将INVITE请求转发给作为被呼叫者的入站代理服务器(代理服务器2)的被呼叫者的代理服务器。

入站代理服务器联系位置服务器以获取用户注册的被叫方地址信息。

从位置服务器获取信息后,将呼叫转发到其目的地。

一旦用户代理知道他们的地址,他们可以绕过呼叫,即直接通话。

SIP消息有两种类型 - 请求和响应。

请求的开始行包含定义请求的方法,以及定义要发送请求的请求URI。

类似地,响应的开始行包含响应代码。

请求方式

SIP请求是用于建立通信的代码。为了补充它们,SIP响应通常指示请求是成功还是失败。

这些被称为METHODS的SIP请求使SIP消息可行。

方法可以被认为是SIP请求,因为它们请求由另一用户代理或服务器采取的特定动作。

方法被分为两种类型 -

核心方法

扩展方法

核心方法

有六种核心方法,如下所述。

邀请

INVITE用于启动与用户代理的会话。换句话说,INVITE方法用于在用户代理之间建立媒体会话。

INVITE可以在邮件正文中包含主叫方的媒体信息。

如果INVITE已经接收到成功响应(2xx)或已经发送ACK,则会话被认为是建立的。

成功的INVITE请求在两个用户代理之间建立对话,直到发送BYE才能终止会话。

在已建立的对话框内发送的INVITE被称为re-INVITE。

Re-INVITE用于更改会话特性或刷新对话框的状态。

邀请示例

以下代码显示了INVITE如何使用。

复制代码 复制代码 INVITE sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9 Max-Forwards: 70 From: Alice;tag = 1234567 To: Bob Call-ID: [email protected] CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v = 0 o = Alice 2890844526 2890844526 IN IP4 client.ANC.com s = Session SDP c = IN IP4 client.ANC.com t = 3034423619 0 m = audio 49170 RTP/AVP 0 a = rtpmap:0 PCMU/8000 复制代码 复制代码 BYE

BYE是用于终止既定会话的方法。这是SIP请求,可以由呼叫者或被叫方发送以终止会话。

它不能由代理服务器发送。

BYE请求通常路由端到端,绕过代理服务器。

BYE不能发送到待处理的INVITE或未建立的会话。

注册

REGISTER请求执行用户代理的注册。该请求由用户代理发送到注册服务器。

REGISTER请求可以转发或代理,直到它到达指定域的权威注册商。

它在正在注册的用户的To头中携带AOR(记录地址)。

REGISTER请求包含时间段(3600sec)。

一个用户代理可以代表另一个用户代理发送REGISTER请求。这被称为第三方注册。这里,From标签包含代表To标题中标识的方提交注册的方的URI 。

取消

CANCEL用于终止未建立的会话。用户代理使用此请求取消之前发起的未决呼叫尝试。

它可以由用户代理或代理服务器发送。

CANCEL是逐跳请求,即它通过用户代理之间的元素,并接收下一个有状态元素生成的响应。

ACK

ACK用于确认对INVITE方法的最终响应。如果INVITE不可用,则ACK始终沿着INVITE.ACK的方向包含SDP主体(媒体特性)。 

ACK可能不会用于修改已经在初始INVITE中发送的媒体描述。

接收ACK的有状态代理必须确定ACK应该向下游转发到另一个代理或用户代理。

对于2xx响应,ACK是端到端的,但对于所有其他最终响应,它在涉及有状态代理时基于逐跳的工作。

OPTIONS

OPTIONS方法用于向用户代理或代理服务器询问其功能并发现其当前的可用性。对请求的响应列出了用户代理或服务器的功能。代理从不生成OPTIONS请求。

扩展方法 订阅

用户代理使用SUBSCRIBE建​​立订阅,以获取有关特定事件的通知。

它包含一个Expires头字段,指示订阅的持续时间。

期限过后,订阅将自动终止。

订阅在用户代理之间建立一个对话。

您可以在到期时间之前通过在对话框内发送另一个SUBSCRIBE来重新订阅。

用户订阅将收到200 OK。

用户可以使用Expires值0(零)发送另一个SUBSCRIBE方法来取消订阅。

通知

用户代理使用NOTIFY来获取特定事件的发生。通常,当订户和通知程序之间存在订阅时,NOTIFY将在对话框内触发。

如果通知程序接收到,每个NOTIFY将获得200 OK响应。

NOTIFY包含指示事件的事件头字段和指示订阅的当前状态的subscriptionstate头字段。

始终在订阅的开始和结束时发送NOTIFY。

发布

PUBLISH被用户代理用于向服务器发送事件状态信息。

当有多个来源的事件信息时,PUBLISH是非常有用的。

PUBLISH请求类似于NOTIFY,除了它不在对话框中发送。

PUBLISH请求必须包含Expires头字段和Min-Expires头字段。

参考

REFER由用户代理用于引用另一个用户代理来访问对话框的URI。

REFER必须包含Refer-To标题。这是REFER的强制标题。

REFER可以在对话框内部或外部发送。

A 202 Accepted将触发REFER请求,指示其他用户代理已经接受引用。

信息

INFO由用户代理使用,以向其已经建立媒体会话的另一用户代理发送呼叫信令信息。

这是一个端到端的请求。

代理将始终转发INFO请求。

UPDATE

如果会话未建立,则UPDATE用于修改会话的状态。用户可以使用UPDATE更改编解码器。

如果会话建立,则使用重新邀请来更改/更新会话。

PRACK

PRACK用于确认接收到可靠的临时响应转移(1XX)。

一般来说,PRACK在接收到包含RSeq可靠序列号和supported:100rel 头的临时响应时由客户端生成。

PRACK在race头部中包含(RSeq + CSeq)值。

PRACK方法适用于所有临时响应,除了100尝试响应,这是永远不可靠的运输。

PRACK可能包含消息体; 它可以用于提供/答复交换。

信息

它用于使用SIP发送即时消息。IM通常由参与文字会话的参与者实时交换的短消息。

MESSAGE可以在对话框内或对话框外发送。

MESSAGE的内容作为MIME附件在邮件正文中载入。

一个200 OK被正常接收响应,以指示该消息已在其目的地被递送



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3