RFC3261中文版

会话发起协议
Session Initiation Protocol
IETF RFC 3261
摘要:
本文档描述了会话发起协议(SIP),即有一个或多个参与者的用于创建、修改和终止会话的应用层控制(信令)协议。这些会话包括Internet电话呼叫、多媒体分发和多媒体会议。沈星离婚
用于创建会话的SIP邀请携带允许参与者进行兼容的媒体类型协商的会话描述。SIP使用称作代理服务器的元素帮助将请求路由到用户的当前位置,认证并授权用户访问服务,实现提供商呼叫路由策略,并为用户提供功能。SIP同时提供注册功能,允许用户上载其当前的位置信息,以便代理服务器使用。SIP运行在多个不同的传输协议上。
1介绍
Internet上许多应用需要创建和管理会话,会话被认为是相关参与者之间的数据交换。这些应用的实现由于参与者的实践而复杂化:用户可能在端点间移动,他们可通过多个名称寻址,他们可以在多种不同的
媒体上通信,甚至是同时的。已开发了多种用于携带各种实时多媒体会话数据(如语音、视频或文本消息)格式的协议。通过使Internet端点(称为用户代理)能够发现他人并协商可能共享的会话特征,会话发起协议(SIP)能与其它协议很好地协作。为了定位预期的会话参与者以及其他功能,SIP允许创建网络主机(称为代理服务器)基础设施,用户代理能向代理服务器发送注册信息、会话邀请以及其它请求。SIP是用于创建、修改和终止会话的灵活的、通用的工具。它独立于潜在的传输协议,并且不依赖于所建立的会话类型。
2SIP功能概要
SIP是一个应用层控制协议,它能建立、修改和终止多媒体会话(会议),如Internet 电话呼叫。SIP也能邀请参与者到已建立的会话中,如多播会议。能从已建立的会议中增加(和删除)媒体。SIP透明地支持名字映射和重定向服务,重定向服务支持个人移动性——用户可以维持一个外部可视的标识符,而不管其位置。
SIP支持建立和终止多媒体通信的5个方面:
用户位置:确定用于通信的终端系统;
用户可用性:确定被呼叫者参加通信的意愿;
用户能力:确定使用的媒体和媒体参数;
会话建立:“响铃”,在呼叫和被呼叫者建立会话参数;
会话管理:包括传输和终止会话、修改会话参数以及调用服务。
SIP不是一个垂直集成的通信系统。SIP更像一个组件,它能与其他IETF协议一起使用,
创建一个完整的多媒体架构。典型的,该体系包括一些协议,如用于传输实时数据和提供QoS反馈的实时传输协议(RTP)(RFC1889[28])、用于控制流媒体传输的实时流协议(RTSP)(RFC 2326[29])、用于控制公共交换电话网络(PSTN)网关的媒体网关控制协议(MEGACO)(RFC 3015[30])和用于描述多媒体会话的会话描述协议(SDP)(RFC 2327[1])。因此,为向用户提供完整的服务,SIP必须与其它协议一起使用。但是,SIP的基本功能和操作不依赖于任何协议。
SIP不提供服务,但是,SIP提供能够实现不同服务的原语。例如,SIP能够定位用户,并向其当前位置传输一个不透明对象。如果一个原语用来传输SDP格式的会话描述,例如,端点可以协商会话参数。如果同一原语用来传输呼叫者的图像和会话描述,就很容易实现“呼叫者ID”服务。因此,典型的,一个原语可用来提供多种不同的服务。
SIP不提供会议控制服务,如现场管制和投票,SIP也没有描述如果管理会议。SIP可以使用其它会议
控制协议来初始化一个会话。建立的SIP消息和会话能在不同的网络上传输。因此SIP不提供任何网络资源预留能力。
提供服务的特性使得安全尤为重要。最后,SIP提供安全服务套件,包括防止服务否认、认证(用户到用户的认证和代理到用户的认证)、完整性保护、加密和隐私服务。
SIP能与IPv4和IPv6兼容。
3术语
本文档中的关键词MUST、MUST NOT、REQUIRED、SHALL、SHALL NOT、SHOULD、SHOULD NOT、RECOMMENDED、NOT RECOMMENDED、MAY和OPTIONAL 的解释与BCP14 RFC2119[2]中的相同,指明了兼容的SIP实现的需求级别。
4操作概要
本章用简单实例介绍了SIP的基本操作。本章仅作为指南,不包含任何标准化声明。
第一个实例说明了SIP的基本功能:端点的定位、想要通信的信号、为建立会话协商会话参数、拆除已建立的会话。
图1是在两个用户间(Alice和Bob)交换SIP消息的典型实例。(每个消息以文本形式的字母F和一个数字标记。)本例中,Alice用PC上的SIP应用(称为软电话)呼叫Internet 上Bob的SIP电话。图中有两个SIP代理服务器,它们分别代表Alice和Bob建立会话。
中国图书馆学会Alice使用Bob的SIP身份,一个称为SIP URI的统一资源描述符(URI)“呼叫”Bob。URI的定义见第19.1节。SIP URI的格式与email地址类似,典型的包含一个用户名和一个主机名。本例中为sip:**************,其中biloxi是Bob的SIP服务提供商的域。Alice的SIP URI为sip:*****************。Alice可能是键入Bob的URI、或点击超级链接、或地址簿中的一个条目来发起呼叫。SIP也提供安全的URI,称为SIPS URI,如sips:**************。对SIPS URI的呼叫保证了在呼叫者和被呼叫者域之间的所有SIP 消息都是安全、加密传输的(即TLS)。其中,请求安全地发送给被呼叫者,但是,安全机制依赖于被呼叫者的域策略。
SIP是基于与HTTP类似的请求/响应事务模型。每个事务包含一个请求和至少一个响应,该请求调用服务器上特殊的方法和功能。本例中,事务开始于Alice用软电话向Bob的SIP URI发送一个INVITE请求。INVITE是SIP的一个方法,它指出了请求者(Alice)希望服务
器(Bob)采取的行为。INVITE请求包含许多头字段。头字段称为属性,它提供消息的附加信息。INVITE中包括呼叫的唯一标识符、目的地址、Alice的地址、Alice希望与Bob建立会话类型的相关信息。
图1:SIP会话建立
INVITE(图1中的消息F1)的内容可能如下:
INVITEsip:*****************/2.0
Via: SIP/2.0/UDP pc33.atlanta;branch=z9hG4bK776asdhds
Max-Forwards: 70
To:Bob<sip:**************>
From:Alice<sip:*****************>;tag=1928301774
Call-ID:***************************
CSeq: 314159 INVITE
Contact:<sip:******************>
Content-Type: application/sdp
Content-Length: 142
马兰士cd6003
(Alice’s SDP not shown)
以上文本消息的第一行包含方法名(INVITE)。第二行是头字段。本例是所需的最简设置。头字段简要描述如下:
Via包含地址信息(pc33.atlanta),Alice希望从该地址接收请求的响应。Via也包含一个标识事务的分支参数。
售检票系统To包含一个显示名称(Bob)和SIP或SIPSURI(sip:**************),它是请求的目的地址。显示名称在RFC2822[3]中描述。
From也包含一个显示名称(Alice)和SIP或SIPS URI(sip:*****************),它是请求的源地址。本头字段有个标签(tag)参数,它包含一个随机串,软电话将该串加到URI中。它用于身份鉴别。
Call-ID包含呼叫的全球唯一标识符,由随机串、软电话主机名或IP地址连接而成。To标签、From标签和Call-ID一起定义Alice和Bob间对等的SIP关系,称为对话。
CSeq或命令序列包含一个整数和一个方法名。在一个对话内,CSeq号随着新请求增加,传统上它是一个序列号。
Contact包含一个SIP或SIPS URI,它表示联系Alice的直接路由,它由绝对域名称(FQDN)中的用户名组成。选用FQDN的时候,许多终端系统没有注册域名,因此允许IP 地址。Via头字段告诉其它元素向哪里发送响应,而Contact头字段告诉其它元素以后向哪里发送请求。
Max-Forwards限制请求在达到其目的地过程中的跳跃点数。它包含一个整数,该整数在每一个跳跃点增加。
Content-Type包含消息体的描述。
Content-Length包含计算消息体长度的八位位组(字节)。
SIP头字段的完整定义见第20章。
北京工业大学学报会话细节,如媒体类型、多媒体数字信号编码解码器或采样率没有使用SIP来定义。此外,SIP消息体包含用其它协议格式编码的会话描述。会话描述协议(SDP)(RFC 2327[1])就是这种协议格式之一。SIP消息携带SDP的方式类似于email消息中携带文档附件,或HTTP 消息中携带Web页面。
由于软电话不知道Bob和biloxi域中SIP 服务器的位置,软电话向Alice域的SIP 服务器发送INVITE。可能已经在Alice的软电话中设置了atlanta SIP服务器地址,例如,该地址已被DHCP发现。
SIP服务器是一个代理服务器。代理服务器接收SIP请求,并代替请求者转发请求。本例中,代理服务器接收INVITE请求,并向Alice的软电话返回一个100(Trying)响应。该100(Trying)响应表明代理服务器已接收到INVITE,并向目的地址转发了INVITE。SIP 的响应由三位数字编码+描述短语组成。响应包含与INVITE中Via相同的To、From、Call-ID、Cseq和分支参数,从而允许Alice的软电话将该响应与已发送的INVITE相关联。atlanta代理服务器定位biloxi代理服务器,其方法可能是通过执行特定类型的DNS(域名服务)查询来查biloxi域的SIP服务器。具体描述见[4]。然后,它获得biloxi代理服务器的IP地址,并向该服务器转发INVITE请求。在转发请求前,代理服务器增加包含自身地址(INVITE的Via中已包含Alice的地址)的一个附加Via头字段值。biloxi代理服务器接收到INVITE后,向atlanta代理服务器返回一个100(Trying)响应,表明已接收到INVITE,正在处理该请求。代理服务器查询称为位置服务的数据库,该数据库包含Bob的当前IP地址。(下一节中我们将看到如何操作此数据库)。biloxi代理服务器向INVITE中增加一个带自身地址的Via头字段值,并将其发送到Bob 的SIP电话。
Bob的SIP电话接收到INVITE,提醒Bob有来自Alice的电话,从而让Bob作出是否回话的决定,即Bob的电话响铃。Bob的SIP电话在180(Ringing)响应中表明这一点,该180(Ringing)响应是通过两个代理在不同的方向路由返回。每个代理使用Via头字段决定向哪里发送响应,并从顶端移除其地址。尽管为了路由初始的INVITE需要查询DNS和位置服务,但在向呼叫者返回180(Ringing)响应时既不需
要查询,也不需要在代理中保存状态。这里也有期望的特性,即每个能看到INVITE的代理服务器也能看到该INVITE的所有响应。
当Alice的软电话接收到180(Ringing)响应,软电话通过回铃音或在Alice屏幕上显示消息的方式将信息传递给Alice。
本例中,Bob决定回话。当Bob拿起手持设备时,他的SIP电话发送一个200(OK)响应,表明电话已接。200(OK)包含一个Bob愿意与Alice建立的会话类型的SDP媒体描述的消息体。因此,这里有两个阶段的SDP消息交换:Alice向Bob发送一个消息,Bob向Alice 返回一个消息。这两个阶段的交换提供了基本的协商能力,它是基于SDP交换的简单呼叫/应答模型。如果Bob不愿回话,或者正忙于另一个呼叫,那么发送的将不是200(OK)而是一个错误响应,也就不会建立媒体会话。第21章描述了SIP响应代码的完整列表。200(OK)的形式如图1消息F9:
SIP/2.0 200 OK
Via: SIP/2.0/UDP server10.biloxi
;branch=z9hG4bKnashds8;received=192.0.2.3
Via: SIP/2.0/UDP bigbox3.site3.atlanta
;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2
Via: SIP/2.0/UDP pc33.atlanta
;branch=z9hG4bK776asdhds ;received=192.0.2.1
To:Bob<sip:**************>;tag=a6c85cf
From:Alice<sip:*****************>;tag=1928301774
Call-ID:***************************
CSeq: 314159 INVITE
Contact:<sip:*********.2.4>
Content-Type: application/sdp
Content-Length: 131
宝莱坞歌舞精粹
(Bob’s SDP not shown)
响应的第一行包含响应代码(200)和原因分析(OK)。剩余行包含头字段。Via、To、From、Call-ID和Cseq头字段都是从INVITE请求中拷贝的。(这里有三个Via头字段值——一个是Alice的SIP电话增加的,一个是代理服务器增加的,一个是biloxi代理增加的。)Bob的SIP电话向To头字段中增加了一个标签参数。对话的两个终端都会包含该标签,并且在本呼叫的后续请求和响应中也会包含该标签。Contact头字段中包含Bob的SIP 电话可直接到达的URI。Content-Type和Content-Length是指包含Bob SDP媒体信息的消息体。
除本例中DNS和位置服务查询外,代理服务器也可作出灵活的“路由选择决定”,决定向哪里发送请求。例如,如果Bob的SIP电话返回一个486(Busy here)响应,biloxi

本文发布于:2024-09-22 05:29:42,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/161665.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:包含   请求   消息   用户   服务   代理服务器   会话   响应
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议