SIP协议详解超全超清.doc
《SIP协议详解超全超清.doc》由会员分享,可在线阅读,更多相关《SIP协议详解超全超清.doc(43页珍藏版)》请在三一文库上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除目 录第3章 SIP协议. 3-13.1 概述. 3-13.1.1 基本概念. 3-13.1.2 相关术语. 3-23.1.3 协议栈结构. 3-53.1.4 SIP协议的应用. 3-53.2 协议消息. 3-63.2.1 消息类型. 3-63.2.2 消息结构. 3-93.3 基本消息流程. 3-223.3.1 SIP用户注册流程. 3-223.3.2 成功的SIP用户呼叫流程. 3-253.3.3 成功的SIP中继呼叫流程. 3-333.3.4 成功的SIP-T中继呼叫流程. 3-36第3章 SIP协议3.1 概述3.1.1 基本概念会话启动
2、协议SIP(Session Initiation Protocol)是由IETF提出并主持研究的一个在IP网络上进行多媒体通信的应用层控制协议,它被用来创建、修改、和终结一个或多个参加者参加的会话进程。这些会话包括Internet多媒体会议、Internet电话、远程教育以及远程医疗等。即所有的因特网上交互式两方或多方多媒体通信活动,统称为多媒体会话。参加会话的成员可以通过组播方式、单播联网方式或者两者结合的方式进行通信。SIP协议是一个正在发展和不断研究中的协议。一方面,它借鉴了其他Internet标准和协议的设计思想,在风格上遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,并充分注意到
3、因特网开放而复杂的网络环境下的安全问题。另一方面,它也充分考虑了对传统公共电话网的各种业务,包括IN业务和ISDN业务的支持。利用带有会话描述的SIP邀请消息来创建会话,以使参加者能够通过SIP交互进行媒体类型协商。它通过代理和重定向请求用户当前位置,以支持用户的移动性。用户也可以登记它们的当前位置。SIP协议独立于其他会议控制协议,它在设计上独立于下面的传输层协议,因此可以灵活方便地扩展其他附加功能。SIP作为一个应用层的多媒体会话信令协议,可以被用来发起一个会话进程、在会话中邀请其他参加者加入会议,会话本身可以通过基于组播协议的会话通告协议(SAP)、电子邮件、网页通告、以及轻量级号薄访问
4、协议(LDAP)等方式预先通告各个可能的参加者。SIP协议支持别名映射、重定向服务、ISDN和IN业务。它支持个人移动(personal mobility),即终端用户能够在任何地方、任何时间请求和获得已订购的任何电信业务。总的来说,会话启动协议能够支持下列五种多媒体通信的信令功能:l 用户定位:确定参加通信的终端用户的位置;l 用户通信能力协商:确定通信的媒体类型和参数;l 用户意愿交互:确定被叫是否乐意参加某个通信;l 建立呼叫:包括向被叫“振铃”,确定主叫和被叫的呼叫参数;l 呼叫处理和控制:包括呼叫重定向、呼叫转移、终止呼叫等等。SIP协议可以通过MCU(Multipoint Cont
5、rol Unit)、单播联网方式、或组播方式创建多方会话,支持PSTN和因特网电话之间的网关功能。SIP协议可以与其他用于建立呼叫的信令系统或协议结合使用,它在设计上充分考虑了对其他协议的可扩展性。譬如,SIP协议支持的主叫可以识别出H.323协议支持的被叫,通过H.245网关利用H.225.0协议向被叫发起并建立呼叫;另外,一个SIP主叫可以识别出PSTN上的被叫及其电话号码,通过与PSTN相连的网关向被叫发起并建立呼叫。SIP协议不提供发言控制(floor control)、投票等会议控制功能,也不规定如何管理一个会议。但是SIP协议可被用来引发这些会议控制协议。SIP协议本身不具备资源预
6、留功能,但可以向被邀请者们传达这方面的信息。3.1.2 相关术语1. 呼叫一个呼叫是由一个公共源端所邀请的在一个会议中的所有参加者组成,由一个全球唯一的Call-ID进行标识。例如:由同一个源邀请的一个会议的所有参加者构成一个呼叫;点到点IP电话会话是一种最简单的会话,它映射为单一的SIP呼叫。通常情况下,呼叫由主叫方创建,但是更一般说来,呼叫可由并不参与媒体通信的第三方创建,此时会话的主叫方和会话的邀请方并不相同。对于多播会议来说,一个用户可由不同的人邀请参加同一会议,则每一个邀请应视作不同的呼叫。对于基于MCU的会议,每个参与者使用一个呼叫邀请自己加入MCU。2. 事务SIP是一个客户/服
7、务器协议。客户和服务器之间的操作从第1个请求至最终响应为止的所有消息构成一个SIP事务。一个正常的呼叫一般包含三个事务。其中,呼叫启动包含两个操作请求:邀请(Invite)和证实(ACK),前者需要回送响应,后者只是证实已收到最终响应,不需要回送响应。呼叫终结包含一个操作请求:再见(Bye)。3. SIP URL为了能正确传送协议消息,SIP还需解决两个重要的问题。一是寻址,即采用什么样的地址形式标识终端用户;二是用户定位(下面介绍)。SIP沿用WWW技术解决这两个问题。寻址采用SIP URL(Uniform Resource Locators),按照RFC2396规定的URI导则定义其语法,
8、特别是用户名字段可以是电话号码,以支持IP电话网关寻址,实现IP电话和PSTN的互通。SIP URL的一般结构为:SIP:用户名:口令主机:端口;传送参数;用户参数;方法参数;生存期参数;服务器地址参数?头部名头部值“SIP”表示需采用SIP协议和所指示的端系统通信。“用户名”可以由任意字符组成,一般可取类似与E-mail用户名形式,也可以是电话号码(SoftX3000目前用户名是电话号码)。“主机”可为主机域名或IPv4地址。“端口”指示请求消息送往的端口号,其缺省值为5060,即公开的SIP端口号。“口令”可以置于SIP URL中,但一般不建议这样做,因为其安全性是有问题的。“传送参数”指
9、示采用TCP还是UDP传送,缺省值为UDP。“用户参数”,SIP URL的一个特定功能是允许主机类型为IP电话网关,此时,用户名可以为一般的电话号码。由于BNF语法表示无法区分电话号码和一般的用户名,因此,在域名后增加了“用户参数”字段。该字段有两个可选值:IP和电话,当其设定为“电话”时,表示用户名为电话号码,对应的端系统为IP电话网关。“方法参数”指示所用的方法(操作)。“生存期参数”指示UDP多播数据包的寿命,仅当传送参数为UDP、服务器地址参数为多播地址时才能使用。“服务器地址参数”指示和该用户通信的服务器的地址,它覆盖“主机”字段中的地址,通常为多播地址。“传送参数”、“生存期参数”
10、服务器地址参数”和“方法参数”均属于URL参数,只能在重定向地址,即后面所说的Contact字段中才能使用。下面给出若干个SIP URL的示例:Sip; 55500200191.169.1.112; 55500200为用户名,191.169.1.112为IP电话网关的IP地址。Sip; 55500200127.0.0.1:5061; User=phone;55500200为用户名,127.0.0.1为主机的IP地址,5061为主机端口号。用户参数为“电话”,表示用户名为电话号码。Sip: alice; method=REGISTER;Alice为用户名,为主机域名。方法参数为“登记”。4.
11、 用户定位用户定位基于登记。SIP用户终端上电后即向登记服务器(SoftX3000)登记,SIP专门为此定义了一个“登记”(REGISTER)请求消息,并规定了登记操作过程。5. 定位服务(Location Service)SIP重定位服务器或代理服务器用来获得被叫位置的一种服务,可由定位服务器提供,但SIP协议不规定SIP服务器如何请求定位服务。在华为U-SYS解决方案中,SoftX3000兼任定位服务器的角色。6. 代理,代理服务器(Proxy、Proxy sever)作为一个逻辑网络实体代表客户端转发请求或者响应,可以同时作为客户端和服务器端。代理服务器有三种形态:Stateless、S
12、tateful和Call Stateful,其可以采用分支、循环等方式向多个地址尝试转发请求。代理服务器的主要功能:路由、认证鉴权、计费监控、呼叫控制、业务提供等。在华为U-SYS解决方案中,SoftX3000兼任代理服务器的角色。7. 重定向服务器(Redirect server)重定向服务器将请求中的目的地址映射为零个或多个新的地址,然后返回给客户端,客户端直接再次向这些新的地址发起请求。重定向服务器并不接收或者拒绝呼叫,主要完成路由功能,与注册过程配合可以支持SIP终端的移动性。在华为U-SYS解决方案中,SoftX3000兼任重定向服务器的角色。8. 注册员(Registrar)注册员
13、为接收注册请求的服务器,通常与Proxy或者Redirect Server共存。注册员需要将注册请求中的地址映射关系保存到数据库中,供后续的相关呼叫过程使用,同时可以提供定位服务。在华为U-SYS解决方案中,SoftX3000兼任注册员的角色。9. 用户助理(User Agent)用来发起或者接收请求的逻辑实体称为User Agent。10. 用户助理客户(User Agent Client)发起请求的一方称为UAC(User Agent Client),举例SIP Phone就是UAC的一种实际形态。11. 用户助理服务器(User Agent Server)接收请求的一方称为UAS(Use
14、r Agent Server),举例SoftX3000就是UAS的一种实际形态。注意:UAC和UAS的划分是针对一个事务而言的。3.1.3 协议栈结构SIP协议栈结构如图3-1所示。图3-1 SIP协议栈SIP协议是IETF多媒体数据和控制体系结构的一部分,与其它协议相互合作,例如:RSVP(Resource ReServation Protocol)用于预约网络资源,RTP(Real-time Transmit Protocol)用于传输实时数据并提供服务质量(QoS)反馈,RTSP(Real-Time Stream Protocol)用于控制实时媒体流的传输,SAP(Session Ann
15、ouncement Protocol)用于通过组播发布多媒体会话,SDP(Session Description Protocol)用于描述多媒体会话。但是SIP协议的功能和实施并不依赖这些协议。传输层支持:SIP协议承载在IP网,网络层协议为IP,传输层协议可用TCP或UDP,推荐首选UDP。3.1.4 SIP协议的应用SoftX3000通过SIP/SIP-T与其它软交换系统互通,以及与其它SIP域设备(如SIP Phone,SIP Softphone等)互通,SIP协议在NGN中的典型应用如图3-2所示:图3-2 SIP在NGN中的典型应用3.2 协议消息3.2.1 消息类型SIP消息采用
16、文本方式编码,分为两类:请求消息和响应消息。1. 请求消息用于客户端为了激活按特定操作而发给服务器的SIP消息,包括INVITE, ACK,OPTIONS,BYE,CANCEL和REGISTER消息等,各消息功能如表3-1所示。表3-1 请求消息请求消息消息含义INVITE发起会话请求,邀请用户加入一个会话,会话描述含于消息体中。对于两方呼叫来说,主叫方在会话描述中指示其能够接受的媒体类型及其参数。被叫方必需在成功响应消息的消息体中指明其希望接受哪些媒体,还可以指示其行将发送的媒体。如果收到的是关于参加会议的邀请,被叫方可以根据Call-ID或者会话描述中的标识确定用户已经加入该会议,并返回成
17、功响应消息。ACK证实已收到对于INVITE请求的最终响应。该消息仅和INVITE消息配套使用。BYE结束会话CANCEL取消尚未完成的请求,对于已完成的请求(即已收到最终响应的请求)则没有影响REGISTER注册OPTIONS查询服务器的能力2. 响应消息用于对请求消息进行响应,指示呼叫的成功或失败状态。不同类的响应消息由状态码来区分。状态码包含三位整数,状态码的第一位用于定义响应类型,另外两位用于进一步对响应进行更加详细的说明。各响应消息分类和含义如表3-2所示。表3-2 响应消息序号状态码消息功能1xx信息响应(呼叫进展响应)表示已经接收到请求消息,正在对其进行处理100试呼叫180振铃
18、181呼叫正在前转182排队2xx成功响应表示请求已经被成功接受、处理200OK3xx重定向响应表示需要采取进一步动作,以完成该请求300多重选择301永久迁移302临时迁移303见其它305使用代理380代换服务4xx客户出错表示请求消息中包含语法错误或者SIP服务器不能完成对该请求消息的处理400错误请求401无权402要求付款403禁止404没有发现405不允许的方法406不接受407要求代理权408请求超时410消失413请求实体太大414请求URI太大415 不支持的媒体类型416不支持的URI方案420分机无人接听421要求转机423间隔太短480暂时无人接听481呼叫腿/事务不存
19、在482相环探测483跳频太高484地址不完整485不清楚486线路忙487终止请求488此处不接受491代处理请求493难以辨认5xx服务器出错表示SIP服务器故障不能完成对正确消息的处理500内部服务器错误501没实现的502无效网关503不提供此服务504服务器超时505SIP版本不支持513消息太长6xx全局故障表示请求不能在任何SIP服务器上实现600全忙603拒绝604都不存在606不接受请求消息和响应消息都包括SIP头字段和SIP消息字段。在SIP消息中加入SDP消息正文部分。3.2.2 消息结构1. 请求消息(1) 请求消息结构如图3-3所示是SIP请求命令的格式,由起始行、消
20、息头和消息体组成。通过换行符区分消息头中的每一条参数行。对于不同的请求消息,有些参数可选。图3-3 SIP请求消息结构(2) 请求消息参数下面仅对几个常用的参数字段进行说明。l Call-ID该字段用以唯一标识一个特定的邀请或标识某一客户的所有登记。需要注意的是,一个多媒体会议可能会有多个呼叫,每个呼叫有其自己的Call-ID。例如,某用户可数次邀请某人参加同一历时很长的会议。用户也可能会收到数个参加同一会议或呼叫的邀请,其Call-ID各不相同。用户可以利用会话描述中的标识,例如SDP中的o(源)字段的会话标识和版本号判定这些邀请的重复性。Call-ID的一般格式为:Call-ID:本地标识
21、主机其中,主机应为全局定义域名和全局可选路IP地址,此时,本地标识由在“主机”范围内唯一的URI字符组成。否则,本地标识必须是全局唯一的值,以保证Call-ID的全局唯一性。Call-ID字符需区分大小写。Call-ID示例:Call-Id: call-973636852-4191.169.150.101其中,191.169.150.101为主机的IP地址,call-973636852-4为全局唯一的本地标识。l From所有请求和响应必须包含此字段,以指示请求的发起者。服务器将此字段从请求消息复制到响应消息。该字段的一般格式为:From:显示名;tag=xxxx其中,显示名为用户界面上显示的
22、字符,如果系统不予显示,应置显示名为“匿名(Anonymous)”。显示名为任选字段。tag称为标记,为16进制数字串,中间可带连字符“-”。当两个共享同一SIP地址的用户实例用相同的Call-ID发起呼叫邀请时,就需用此标记予以区分。标记值必须全局唯一。用户在整个呼叫期间应保持相同的Call-ID和标记值。From字段的示例:From: ;tag=1c17691l To该字段指明请求的接收者,其格式和From相同,仅第一个关键词代之以To。所有请求和响应消息必须包含此字段。字段中的标记参数可用于区分由同一SIP URL标识的不同的用户实例。由于代理服务器可以并行分发多个请求,同一请求可能到达
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SIP 协议 详解 超全超清
