《SIP协议详解.docx》由会员分享,可在线阅读,更多相关《SIP协议详解.docx(59页珍藏版)》请在第一文库网上搜索。
1、第3章S/尸合同3.1概述基本概念会话启动合同SIP(SessionInitiatioProtoco1)是由IETF提出并主持研究的一种在IP网络上进行多媒体通信的应用层控制合同,它被用来创立、修改、和终结一种或多种参与者参与的会话进程。这些会话涉及Internet多媒体会议、Internet电话、远程教育以及远程医疗等。即所有的因特网上交互式两方或多方多媒体通信活动,统称为多媒体会话。参与会话的成员可以通过组播方式、单播联网方式或者两者结合的方式进行通信。S价合同是一种正在发展和不断研究中的合同。一方面,它借鉴了其他Internet原则和合同的设计思想,在风格上遵循因特网一贯坚持的简洁、开放
2、、兼容和可扩展等原则,并充足注意到因特网开放而复杂的网络环境下的安全问题。另一方面,它也充足考虑了对老式公共电话网的多种业务,涉及IN业务和ISDN业务的支持。运用带有会话描述的S价邀请消息来创立会话,以使参与者可以通过S价交互进行媒体类型协商。它通过代理和重定向祈求顾客目前位置,以支持顾客的移动性。顾客也可以登记它们的目前位置。S庐合同独立于其他会议控制合同,它在设计上独立于下面的传播层合同,因此可以灵活以便地扩展其他附加功能。5/户作为一种应用层的多媒体会话信令合同,可以被用来发起一种会话进程、在会话中邀请其他参与者加入会议,会话自身可以通过基于组播合同的会话告示合同(SAP)、电子邮件、
3、网页告示、以及轻量级号簿访问合同(1DAP)等方式预先告示各个也许的参与者。S肥合同支持别名映射、重定向服务、ISDN和IN业务。它支持个人移动(persona1mobi1ity),即终端顾客可以在任何地方、任何时间祈求和获得已订购的任何电信业务。总时来说,会话启动合同可以支持下列五种多媒体通信的信令功能:顾客定位:拟定参与通信的终端顾客的位置;顾客通信能力协商:拟定通信的媒体类型和参数;顾客意愿交互:拟定被叫与否乐意参与某个通信;建立呼喊:涉及向被叫“振铃”,拟定主叫和被叫时呼喊参数;呼喊解决和控制:涉及呼喊重定向、呼喊转移、终结呼喊等等。5/户合同可以通过MCU(MU1tipointCon
4、tro1Unit)、单播联网方式、或组播方式创立多方会话,支持PSTN和因特网电话之间的网关功能。S庐合同可以与其他用于建立呼喊的信令系统或合同结合使用,它在设计上充足考虑了对其他合同的可扩展性。譬如J价合同支持时主叫可以辨认出H.323合同支持的被叫,通过H.245网关运用合同向被叫发起并建立呼喊;此外,一种S/尸主叫可以辨认出PSTN上的被叫及其电话号码,通过与PSTN相连的网关向被叫发起并建立呼喊。5/户合同不提供发言控制(f1。orContro1)、投票等会议控制功能也不规定如何管理一种会议。但是S价合同可被用来引起这些会议控制合同。S肥合同自身不具有资源预留功能,但可以向被邀请者们传
5、达这方面的信息。有关术语1 .呼喊一种呼喊是由一种公共源端所邀请时在一种会议中的所有参与者构成,由一种全球唯一的Ca1I-ID进行标记。例如:由同一种源邀请的一种会议的所有参与者构成一种呼喊;点到点IP电话会话是一种最简朴的会话,它映射为单一的S价呼喊。一般状况下,呼喊由主叫方创立,但是更一般说来,呼喊可由并不参与媒体通信的第三方创立,此时会话的主叫方和会话的邀请方并不相似。对于多播会议来说,一种顾客可由不同的人邀请参与同一会议,则每一种邀请应视作不同的呼喊。对于基于MCU的会议,每个参与者使用一种呼喊邀请自己加入MCUo2 .事务W尸是一种客户/服务器合同。客户和服务器之间的操作从第1个祈求
6、至最后响应为止的所有消息构成一种S/户事务。一种正常时呼喊一般涉及三个事务。其中,呼喊启动涉及两个操作祈求:邀请(InVite)和证明(ACK),前者需要回送响应,后者只是证明已收到最后响应,不需要回送响应。呼喊终结涉及一种操作祈求:再会(Bye)。3 .SZPUR1为了能对的传送合同消息,S/P还需解决两个重要的问题。一是寻址,即采用什么样的地址形式标记终端顾客;二是顾客定位(下面简介)。S夕沿用WWW技术解决这两个问题。寻址采用5ZPUR1(UniformResource1ocatOrS),按照RFC2396规定的URI导则定义其语法,特别是顾客名字段可以是电话号码,以支持IP电话网关寻址
7、,实现IP电话和PSTN的互通。5/户UR1的一般构造为:M顾客名:口令主机:端口;传送参数;顾客参数;措施参数;生存期参数;服务器地址参数?头部名=头部值uSIPn表达需采用S0合同和所批示的端系统通信。“顾客名”可以由任意字符构成,一般可取类似与E-mai1顾客名形式,也可以是电话号码(Soft3000目前顾客名是电话号码)。“主机”可为主机域名或IPv4地址。“端口”批示祈求消息送往的端标语,其缺省值为5060,即公开的S/尸端标语。“口令”可以置于诉UR1中,但一般不建议这样做,由于其安全性是有问题的。“传送参数”批示采用TCP还是UDP传送,缺省值为UDPo“顾客参数”,StPUR1
8、的一种特定功能是容许主机类型为IP电话网关,此时,顾客名可觉得一般的电话号码。由于BNF语法表达无法辨别电话号码和一般的顾客名,因此,在域名后增长了“顾客参数”字段。该字段有两个可选值:IP和电话,当其设定为“电话”时,表达顾客名为电话号码,相应的端系统为IP电话网关。“措施参数”批示所用的措施(操作)。“生存期参数”批示UDP多播数据包的寿命,仅当传送参数为UDP、服务器地址参数为多播地址时才干使用。“服务器地址参数”批示和该顾客通信的服务器的地址,它覆盖“主机”字段中的地址,一般为多播地址。“传送参数”、“生存期参数”、“服务器地址参数”和“措施参数”均属于UR1参数,只能在重定向地址,即
9、背面所说的Cotct字段中才干使用。下面给出若干个W尸UR1的示例:Sip.;55500200为顾客名,为IP电话网关的IP地址。Sipt55500200127.0.0.1:5061;User=phone;55500200为顾客名,为主机的IP地址,5061为主机端标语。顾客参数为“电话”,表达顾客名为电话号码。Sip:;method=REGISTER;A1iCe为顾客名,为主机域名。措施参数为“登记”。4 .顾客定位顾客定位基于登记。S价顾客终端上电后即向登记服务器(SoftX3000)登记,S肥专门为此定义了一种“登记”(REGISTER)祈求消息,并规定了登记操作过程。5 .定位服务(1
10、ocationService)S/尸重定位服务器或代理服务器用来获得被叫位置的一种服务,可由定位服务器提供,但W户合同不规定SZP服务器如何祈求定位服务。在华为U-SYS解决方案中,SoftX3000兼任定位服务器的角色。6 .代理代理服务器(PrOXy、Proxysever)作为一种逻辑网络实体代表客户端转发祈求或者响应,可以同步作为客户端和服务器端。代理服务器有三种形态:StQte1ess、StQtefU1和CQi1StatefU1,其可以采用分支、循环等方式向多种地址尝试转发祈求。代理服务器的重要功能:路由、认证鉴权、计费监控、呼喊控制、业务提供等。在华为U-SYS解决方案中,SoftX
11、3000兼任代理服务器的角色。7 .重定向服务器(Redirectserver)重定向服务器将祈求中的目的地址映射为零个或多种新的地址,然后返回给客户端,客户端直接再次向这些新的地址发起祈求。重定向服务器并不接受或者回绝呼喊,重要完毕路由功能,与注册过程配合可以支持S/尸终端的移动性。在华为U-SYS解决方案中,SoftX3000兼任重定向服务器的角色。8 .注册员(Registrr)注册员为接受注册祈求的服务器,一般与Proxy或者RC1ieCtSerVer共存。注册员需要将注册祈求中的地址映射关系保存到数据库中,供后续的有关呼喊过程使用,同步可以提供定位服务。在华为U-SYS解决方案中,S
12、。什X3000兼任注册员的角色。9 .顾客助理(USerAgent)用来发起或者接受祈求的逻辑实体称为UserAgento10 .顾客助理客户(USerAgentC1ient)发起祈求时一方称为UAC(UserAgentC1ient),举例SIPPhone就是UAC的一种实际形态。11 .顾客助理服务器(USerAgentServer)接受祈求时一方称为UAS(UserAgentServer),举例SoftX3OOO就是UAS的一种实际形态。注意:UAC和UAS的划分是针对一种事务而言的。合同栈构造S1P合同栈构造如图3-1所示。S/尸合同是IETF多媒体数据和控制体系构造的一部分,与其他合同
13、互相合伙,例如:RSVP(ReSoUrCeReServatioPrOtoCoI)用于预约网络资源,RTP(ReaI-timeTransmitProtOCo1)用于传播实时数据并提供服务质量(QoS)反馈,RTSP(Re1-TimeStreamPrOtOCe)I)用于控制实时媒体流的传播SAP(SessioAnouncemetProtoco1)用于通过组播发布多媒体会话,SDP(SessionDescriptioPrC)toco1)用于描述多媒体会话。但是S射合同的功能和实行并不依赖这些合同。传播层支持:S庐合同承载在IP网,网络层合同为IP,传播层合同可用TCP或UDP,推荐首选UDP。S/9
14、合同时应用SoftX3000通过SH既T与其他软互换系统互通,以及与其他S肥域设备(如SIPPhone,SIPSoftphone等)互通,SP合同在NGN中的典型应用如图3-2所示:图3-2W尸在NGN中的典型应用消息类型S/月消息采用文本方式编码,分为两类:祈求消息和响应消息。1 .祈求消息用于客户端为了激活按特定操作而发给服务器的5/户消息,涉及INVITE,ACK,OPTIONS,BYE,CANCE1和REGISTER消息等,各消息功能如表且二1所示。表3-1祈求消息祈求消息消息含义INVITE发起会话祈求,邀请顾客加入一种会话,会话描述含于消息体中。对于两方呼喊来说,主叫方在会话描述中
15、批示其可以接受的媒体类型及其参数。被叫方必需在成功响应消息的消息体中指明其但愿接受哪些媒体,还可以批示其行将发送的媒体。如果收到的是有关参与会议的邀请,被叫方可以根据CaI1-ID或者会话描述中的标记拟定顾客已经加入该会议,并返回成功响应消息。ACK证明己收到对于INVITE祈求的最后响应。该消息仅和INV1TE消息配套使用。BYE结束会话CANCE1取消尚未完毕的祈求,对于已完毕的祈求(即已收到最后响应的祈求)则没有影响REGISTER注册OPTIONS查询服务器的能力2 .响应消息用于对祈求消息进行响应,批示呼喊的成功或失败状态。不同类的响应消息由状态码来辨别。状态码涉及三位整数,状态码的第一位用于定义响应类型,此外两位用于进一步对响应进行更加具体的阐明。各响应消息分类和含义如表3-2所7Jo表3-2响应消息序号状态码消息功能Ixx信息响应(呼喊进展响应)表达已经接受到祈求消息,正在对其进行解决100试呼喊180振玲181呼喊正在前转序号状态码消息功能182排队2xx成功响应表达祈求已经被成功接受、解决200OK3x重定向响应表达需要采用进一步动作,以完毕该祈求300多重选择301永久迁移302