SIP培训 PPT素材

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

RFC2543:SIP协议目录SIP介绍SIPURLSIP消息请求和响应头域定义状态码定义SIP消息体与紧凑模式SIPclients和SIPserversSIPUserAgentsSIPproxy和redirectservers安全性SIP概要1、定义:SIP(SessionInitiationProtocol)是一种用来建立、更新和终止多媒体会话或呼叫的应用层控制协议,可用来初始化会话,然后邀请成员加入这些已建立和广播的会话。SIP明确地支持名字映射和重定向服务,支持ISDN操作和智能网电话(IntelligentNetworktelephony)用户服务。2、SIP支持五种建立和终止多媒体通信的方式:Userlocation:决定通信的终端;Usercapabilities:决定使用的媒体和媒体参数;Useravailability:决定被叫方加入通信的意愿(willingness);Callsetup:ringing,在被叫方和呼叫方建立呼叫参数;Callhandling:包括传输和中断呼叫.3、名词解释:CallCalllegClientConferenceDownstreamFinalresponseInitiator,callingparty,callerInvitationInvitee,inviteduser,calledparty,calleeIsomorphicrequestorresponseLocationserverLocationserviceParalledsearchProvisionalresponseProxy,proxyserverRedirectserverRegistrarRingbackServerSessionTransactionupstreamURL-encodedUseragentclientUseragentserverUseragentSIP概要--SIPSERVER不同类型的SIPserver的特征总结:propertyredirectserverproxyserveruseragentserverregistrar_______________________________________________________________________alsoactsasaSIPclientnoyesnonoreturns1xxstatusyesyesyesyesreturns2xxstatusnoyesyesyesreturns3xxstatusyesyesyesyesreturns4xxstatusyesyesyesyesreturns5xxstatusyesyesyesyesreturns6xxstatusnoyesyesyesinsertsViaheadernoyesnonoacceptsACKyesyesyesnoSIP基本功能和操作主叫方和被叫方由SIP地址标定;当进行一个SIP呼叫时,主叫方首先定位合适的server;然后发送一个SIP请求,最普通的SIP操作是邀请invitation;SIP请求不是直接到达被叫方,而是可以被重定向或者可以在proxy引发一系列新的SIP请求;users可以在SIPservers注册它们的位置。SIPAddressingSIP地址所标记的是主机上的使用者。SIPURL的格式类似与telnetURL,例如,user@host,user部分是一个用户名或一个电话号码,host部分要么是个域名,要么是个数字形式的网络地址。被叫方在REGISTER时将自己绑定到这个地址上;呼叫方使用SIP地址与被叫方建立实时通信。SIP地址必须包括主机名,可以包括用户名、端口号和参数等。采用与mailto:、http:等类似的格式,是为了扩展在网页、邮件等的应用。LocatingaSIPServer一个client希望发送请求时,它要么发送请求到一个本地配置好的与Request-URI无关SIPproxyserver上,要么将请求发送到Request-URI中定义的IP地址和端口上。对于后一种情况,client必须决定协议和将请求发送到哪个端口和IP地址。Client可以通过DNS来查找server,除非另外标明,否则client都应该按照Request-URI中列出的端口号来访问server。如果没有提供端口号,则使用默认值5060。如果Request-URI指明了协议(TCP或者UDP),client就使用指定的协议,如果没有提供协议,则使用UDP,如果失败,或者client不支持UDP,则使用TCP。Client应该能够解析明确的网络提示(例如ICMP消息),而不是只能依赖超时信息。例如,如果client发现server不可到达,它应该按照接到请求返回400类的错误来处理。SIPTransaction一旦SIPserver能够确定,client就可以向其发送SIP请求或收到响应。一个请求(包括重发的请求)和相关的响应合起来称做一个SIP事务。对于一个请求的所有响应都包含相同的Call-ID,CSeq,To,和From头域的值(但可能在to头域中添加了tag参数),这种机制可以区分出不同的事务。接在INVITE请求后的ACK请求不包括在同一个事务中,因为ACK在传送时可能会经过不同的路径。如果使用TCP协议,同一个事务的请求和响应会在同一个TCP连接中被传送,同一个client发给同一个server的不同SIP请求可以使用同一个TCP连接,也可以使用新的TCP连接。SIP消息体的格式和操作与传输协议无关。SIPInvitation一个成功的SIP邀请(INVITATION)包括两个请求:INVITE请求和其后的ACK请求。INVITE请求被叫者加入到一个指定的会议中或建立双方通话,被叫方同意加入呼叫后,主叫方发送ACK确认它收到了对方的同意信息。如果主叫方不再希望加入通话,就会不发送ACK,而是发送BYE。一个典型的INVITE请求包含了一个会话描述(sessiondescription),给被叫者提供了加入会话的足够的信息,对于多方通话来说,SD列举了媒体的类型和格式和媒体数据的返回地址。如果被叫方希望加入会话,它就会返回一个包含了同样SD的响应,在多方会话中,被叫者应该只返回一个SD如果它不能接受呼叫者提出的媒体类型或者它希望加入单方呼叫。图1Figure1:ExampleofSIPproxyservercs.columbia.eduLocationserverWorkLabcs.tu-berlin.decz@cs.tu-berlin.de1:INVITEhenning@cs.col2henninghgs@lab34:INVITE5:ring6:200OK7:200OK8:ACK9:ACKSIPrequestSIPresponsenon-SIPprotocols图2cs.columbia.eduLocationserverWorkLabcs.tu-berlin.decz@cs.tu-berlin.de1:INVITEhenning@cs.col2henninghgs@lab34:302Movedhgs@lab5:ACKSIPrequestSIPresponsenon-SIPprotocols6:INVITEhgs@lab.cs.columbia.edu7:200OK8:ACKFigure2:ExampleofSIPredirectserverLocatingaUser被叫者可能会有几个不同的终端号码,这些不同的定位可以动态地向SIPserver注册,一个locationserver也可以使用一个或多个协议算法来决定可能会在哪个终端找到被叫用户。因为用户可能同时注册了多个主机信息或者locationserver没有准确的信息,在这些情况下,locationserver可以返回多个定位。对于多个定位的处理方式:SIPredirectserver:返回给client一个Contact头域,包含了定位的列表;SIPproxyserver:连续地或并发地向这些地址发送请求,直到返回了一个2xx响应,表示呼叫成功,或者一个6xx响应,表示被叫者拒绝。如果一个proxyserver向前传递SIP请求,它必须将它自己的地址加入到via头域的最上方,via头域保证了响应能够沿相同的路径返回呼叫方,从而保证了呼叫能够穿透防火墙,并避免了请求环路。在响应回来的路上,每一个主机都必须从via头域中删除自己的地址。一个SIP呼叫请求可能会经过多个SIPproxy,如果一个proxy向多个定位发送了请求,那么UA可能会接到多个相同Call-ID的请求,那么UA必须返回相同状态码的响应。ChanginganExistingSession在某些环境中,可能会需要改变已存在的会话的参数,这就需要在再次发送相同的Call-ID,单消息体不同或头域不同的INVITE过程中实现。这个重发的INVITE必须有更高的序列号。例如,双方已经在通话,然后希望加入第三方,转换成多方通话,那么已经在通话的一方用新的多播地址邀请第三方,并且同时要用新的多播SD和旧的Call-ID向第二方重新发INVITE消息。RegistrationServicesREGISTER请求允许client让proxy或redirectserver知道用什么地址可以找到它。在注册时,client就将自己的SIP地址和自己的IP地址绑定到一起。SIP协议特点最小限度的状态保存一个会议会话或呼叫会涉及到一个或多个SIP请求-响应事务。Proxyservers不需要为呼叫保存状态,然而,它们可以保存SIP事务的状态。为了提高效率,server可以保存locationserver请求的结果。底层协议不限定Lower-Layer-ProtocolNeutralSIP对其下面的传输层和网络层协议只做了最小限度的假定,底层可以提供数据包或者字节流、可靠服务或不可靠服务。在网络传输中,SIP可以用UDP和TCP传输协议。使用UDP的应用程序可以更精确地控制信息和重传定时;可以提供并行的搜索,而不需要使用每一个传出的请求的TCP连接状态;可以使用多播。而TCP使得信息可以更方便地穿透防火墙。当使用TCP时,SIP可以使用一个或多个连接来访问用户或更新现存会议的参数。同一个SIP呼叫的不同SIP请求可以根据需要使用不同的TCP连接或使用一个持久的连接。SIP也可以直接使用ATMAAL5,IPX,framerelay或X.25协议。UA应该SHOULD可以使用UDP和TCP传输,而Proxy,registrar,和redirectservers必须MUST使用UDP和TCP。基于文本SIP是基于文本的,全部使用ISO10646的UTF-8编码,这样就可以很容易地使用Java,Tcl和Perl等语言,调试起来也很方便,而且更重要的是,增强了SIP的灵活性和可扩展性。由于SIP是用来初始化多媒体会议,而不是传输媒体数据的,因此一般认为在基于文本的协议上增加其他的开销是没有什么意义的。目录SIP介绍SIPURLSIP消息请求和响应头域定义状态码定义SIP消息体与紧凑模式SIPclients和SIPserversSIPUserAgentsSIPproxy和redirectservers安全性SIPURL在SIP消息中SIPURLs可以指明SIP请求的发起者originator(From),,当前目的地址currentdestination(Request-URI)和最终接收者finalrecipient(To),并且可以指定重定向地址redirectionaddresses(Contact)。SIP-URL=sip:[userinfo@]hostporturl-parameters[headers]userinfo=user[:password]user=*(unre

1 / 52
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功