[信息与通信]SIP协议原理及应用.doc_第1页
[信息与通信]SIP协议原理及应用.doc_第2页
[信息与通信]SIP协议原理及应用.doc_第3页
[信息与通信]SIP协议原理及应用.doc_第4页
[信息与通信]SIP协议原理及应用.doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NGN_SP001_C1 SIP协议原理及应用课程目标:l 掌握SIP协议的基本概念l 掌握SIP协议消息结构和类型l 掌握SIP基本消息流程l 掌握SIP协议的跟踪,分析47目 录第1章 SIP协议概述11.1 SIP的提出和发起11.1.1 什么是SIP11.1.2 SIP的应用21.1.3 SIP的结构图31.1.4 SIP在SS中的软件结构41.2 SIP网络基本构成-分布式架构41.2.1 用户代理61.2.2 代理服务器71.2.3 重定向服务器81.2.4 注册服务器91.2.5 登记服务器91.3 SIP 网络特征101.4 SIP协议基本网络模型121.5 SIP协议在ZXSS10体系中的作用13第2章 SIP消息结构和类型152.1 SIP消息基本模式152.1.1 SIP请求消息162.1.2 SIP响应消息192.2 SIP消息支持的基本功能212.2.1 用户定位功能-SIP URL结构222.2.2 媒体协商功能-SDP协议简介222.3 SIP协议的主要消息头字段242.3.1 各字段说明242.3.2 SIP协议消息头实例272.4 SIP协议消息的格式282.4.1 SIP协议传送方式282.4.2 SIP的消息结构282.4.3 SIP请求消息格式302.4.4 SIP响应消息格式32第3章 SIP基本消息流程333.1 SIP 建立通讯的过程333.2 Registration - 登记343.3 注册注销流程353.4 SIP 呼叫建立和释放消息交互36第4章 SIP消息实例分析394.1 SIP协议应用实例394.2 SIP协议分析404.2.1 SIP协议跟踪INVITE404.2.2 SIP协议跟踪180 Ring434.2.3 SIP协议跟踪ACK454.2.5 SIP协议跟踪200 OK474.3 SIP协议小结48第4章 SIP消息实例分析第1章 SIP协议概述1.1 SIP的提出和发起1.1.1 什么是SIPSIP(Session Initiation Protocol,会话发起协议)是由IETF(Interne工程任务组) 提出的多媒体会话控制协议。协议采用文本形式传送,处于OSI七层网络模型的应用层位置,它的主要目的是提供IP网中的多媒体会话的信令控制功能。1.1.2 SIP的应用SIP协议当前的主要应用有即时消息、呈现业务、同时振铃、依次振铃业务、用户漫游、用户号码可携带、第三方控制业务等多种业务。即时消息:通过SIP实现该业务时,消息的内容可以通过文字表现出来,实现文字聊天业务。呈现业务:用户的在线显示功能。SIP的功能非常的强大,支持用户的漫游,位置定位(确定参加通信的终端用户的位置,如用户的IP地址,注册的服务器的位置等),是未来的IMS(IP multi-media subsystem)网络的主流应用协议。1.1.3 SIP的结构图图 1.11 SIP结构图各功能模块说明如下:SoftSwitch: 主要实现呼叫控制,计费,是NGN网络的呼叫控制中心。Media Gateway: 提供电路交换网(即传统的PSTN网)与包交换网(即IP,ATM网)中信息转换(包括语音压缩、数据检测等)。Signaling Gateway: 提供PSTN网同IP网间的协议的转换。Application Server:增值业务平台,与SoftSwitch用SIP进行通信。Media Server: 提供媒体和语音资源的平台,同时与Media Gateway进行RTP流的传输。使用SIP作为SoftSwitch和Application Server之间的接口,可以实现智能业务的功能。同时SIP已被SoftSwitch接受为通用的接口标准,从而可以实现SoftSwitch之间的互连。1.1.4 SIP在SS中的软件结构如下图所示,SIP Adapter在SoftSwitch的软件模块结构中处于与SS7、H.248、H.323相同的L2/L3层内,都需要通过Internal Protocol与Call Server进行消息交互。图 1.12 SIP在SS中的软件结构从Call Server 的角度来看,SIP Adapter 的功能主要有两部分:(1)将其他SoftSwitch交换机发来的SIP消息转换成统一的内部呼叫协议;(2)将Call Server产生的呼叫消息转换成标准的SIP协议消息,发送给其他SoftSwitch;1.2 SIP网络基本构成-分布式架构 SIP协议是一个Client/Sever协议。SIP端系统包括用户代理客户机(UAC)和用户代理服务器(UAS),其中UAC的功能是向UAS发起SIP请求消息,UAS的功能是对UAC发来的SIP请求返回相应的应答。按逻辑功能区分,SIP系统由5种元素组成:用户代理、代理服务器、重定向服务器、位置服务器以及注册服务器,如下图所示。图 1.21 SIP系统组成理论上,SIP呼叫可以只有双方的用户代理参与,而不需要网络服务器。设置服务器,主要是服务提供者的运营需要。运营商通过服务器可以实现用户认证、管理和计费等功能,并根据策略对用户呼叫进行有效的控制。同时可以引入一系列应用服务器,提供丰富的智能业务。SIP的组网很灵活,可根据情况定制。在网络服务器的分工方面:位于网络核心的服务器,处理大量请求,负责重定向等工作,是无状态的,它个别地处理每个消息,而不必跟踪纪录一个会话的全过程;网络边缘的服务器,处理局部有限数量的用户呼叫,是有状态的,负责对每个会话进行管理和计费,需要跟踪一个会话的全过程。这样的协调工作,既保证了对用户和会话的可管理性,又使网络核心负担大大减轻,实现可伸缩性,基本可以接入无限量用户。SIP网络具有很强的重路由选择能力,具有很好的弹性和健壮性。1.2.1 用户代理用户代理(UserAgent)分为两个部分:客户端(User Agent Client),负责发起呼叫;用户代理服务器(UserAgent Server),负责接受呼叫并做出响应。二者组成用户代理存在于用户终端中。常用的用户代理有:安装在计算机里面的客户端软件如softphone;具有IP接口的video phone 或者IP phone。1.2.2 代理服务器代理服务器(Proxy Server),负责接收用户代理发来的请求,根据网络策略将请求发给相应的服务器,并根据收到的应答对用户做出响应。它可以根据需要对收到的消息改写后再发出。1.2.3 重定向服务器重定向服务器务器(Redirect Server),接收用户请求,把请求中的原地址映射为零个或多个地址,返回给客户机,客户机根据此地址重新发送请求。用于在需要的时候将用户新的位置返回给呼叫方,呼叫方可以根据得到的新位置重新呼叫。1.2.4 注册服务器注册服务器(Registrar)用于接收和处理用户端的注册请求,完成用户地址的注册。1.2.5 登记服务器当用户上电或者到达某个新域时,需要将当前位置登记到网络中的某一个服务器上,以便其他用户找到该用户,完成该功能的服务器在SIP网络中成为注册服务器。1.3 SIP 网络特征SIP可分为三大逻辑实体: SIP PROXY、SIP SERVER、 UA;SIP PROXY:从逻辑上来讲,代理最主要的功能是将SIP信息包转发给目的用户。它最低限度要包括UA功能。在具体实现中,它还应该实现以下功能:呼叫计费。包括强制路由选择。防火墙。(可选)通过查询DNS,选择SIP服务器。检测环路。在路径上包含Fork Proxy服务器,可能会有环路产生,必须检测。非SIP URI解释功能:传递SIP包到适当的目的地址中去。丢弃via header中最上面一个不是自己地址的SIP包。特定的Proxy将实现IP到PSTN之间的网关。提供IP、电话、Email之间的交互。根据传递要求,对VIA和Record Route进行相应修改。根据收到的Cancel,立即发送200应答。(快速应答)通过查询Location server和redirect server,查找目的用户的地址;SIP SERVER:主要作为信息数据库,对Proxy提供服务。Server主要分为三类:Location Server:存储了SIP地址对一个或多个IP地址的映射,主要面向Proxy和Redirect server。Redirect server: 接收查询请求,通过Location Server中找到对应的地址列 表,把结果返回给用户。Registrar:接收SIP终端的Register请求,将SIP地址和IP地址组对写入Location Server的数据库中。以上各种服务器可共存于一个设备,也可以分布在不同的物理实体中。SIP UA:UA是SIP协议中一个逻辑实体,它包括了UAC/UAS。UAC/UAS角色只在同一个事务中保持不变。UA的主要功能是通过发送SIP请求发起一个新的事务,发送SIP Final answer或者SIP ACK请求结束当前事务。实现中,应包含以下功能:生成record_set。UAS按一定规则接受、拒绝或重定向SIP请求。UA能够选择适当的protocol/port接收应答和发送请求。重发和重发终止,实现通信的可靠性。能够解释ICMP,收到ICMP差错报文误之后,将它映射到相似的status code处理过程。1.4 SIP协议基本网络模型 1SIP 用户代理也即主叫发起呼叫后,首先去找代理服务器(Proxy Server),其负责接收用户代理发来的请求,根据网络策略将请求发给相应的服务器,并根据收到的应答对用户做出响应。代理服务器可以根据需要对收到的消息改写后再发出。2当主叫用户找不到被叫用户,也即被叫用户发生了位置更新后,代理服务器向重定向服务器发送更新的位置请求,定向服务器收到请求后,把请求中的原地址映射为零个或多个地址(一号多机),会直接返回被叫用户的新位置(号码存在重定向服务器中)或通过位置服务器将被叫新的位置返回给呼叫方(号码存在位置服务器中,位置服务器存储量大),呼叫方可以根据得到的新地址位置重新呼叫。3主叫成功找到被叫后直接通过主叫的策略服务器与被叫的策略服务器建立连接从而实现双方成功呼叫1.5 SIP协议在ZXSS10体系中的作用此时SIP的各种服务器功能集中于SS统一完成。Soft-phone与SS间使用SIP协议进行通信,两SS之间使用SIP-I协议进行通信。媒体流通过IP承载网进行交付。第2章 SIP消息结构和类型SIP协议虽然主要为IP网络设计的,仅它并不关心承载网络,也可以在ATM、帧中继等承载网中工作,它是应用层协议,可以运行于TCP,UDP,SCTP等各种传输层协议之上。2.1 SIP消息基本模式(1)SIP是一个客户/服务器协议。协议消息分为两类:请求和响应;协议消息的目的是:建立或终结会话了;(2)“邀请”是SIP协议的核心机制;(3)响应消息分为两类:中间响应和最终响应;2.1.1 SIP请求消息SIP定义了以下几种方法(methods)。INVITEINVITE方法用于邀请用户或服务参加一个会话。在INVITE请求的消息体中可对被叫方被邀请参加的会话加以描述,如主叫方能接收购媒体类型、发出的媒体类型及其一些参数;对INVITE请求的成功响应必须在响应的消息体中说明被叫方愿意接收哪种媒体,或者说明被叫方发出的媒体。 服务器可以自动地用200(0K)响应响应会议邀请。ACKACK请求用于客户机向服务器证实它已经收到了对INVITE请求的最终响应。ACK只和INIVITE请求一起使用。对2xx最终响应的证实由客户机用户代理发出,对其他最终响应的证实由收到响应的第一个代理或第一个客户机用户代理发出*。ACK请求的To,From,Call-ID,Cseq字段的值由对应的INVITE请求的相应字段的值复制而来。OPTIONS对于代理和重定向服务器只要转发此请求,不用显示其能力。SIP IP电话系统还提供了一种让用户在不打扰对方用户的情况下查询对方通信能力的手段。可查询的内容包括:对方支持的请求方法(methods)、支持的内容类型、支持的扩展项、支持的编码等。能力查询通过OPTION请求消息来实现。当用户代理想要查询对方的能力时,它构造一个OPTION请求消息,发送给对方。对方收到该请求消息后,将自己支持的能力通过响应消息回送给查询者。如果此时自己可以接收呼叫,就发送成功响应(状态码为200),如果此的自己忙,就发送自身忙响应(状态码为486)。因此,能力查询过程也可以用于查询对方的忙闲状态,看是否能够接受呼叫。对于代理和重定向服务器只要转发此请求,不用显示其能力。OPTIONS的From、To分别包含主被叫的地址信息,对OPTIONS请求的响应中的From、To(可能加上tag参数)、Call-ID字段的值由OPTIONS请求中相应的字段值复制得到。BYE用户代理客户机用BYE请求向服务器表明它想释放呼叫。BYE请求可以像INVITE请求那样被转发,可由主叫方发出也可由被叫方发出。呼叫的一方在释放(挂断)呼叫前必须发出DYE请求,收到BYE请求的这方必须停止发送媒体流给发出BYE请求的一方。CANCELCANCEL请求用于取消一个Call-ID,To,From和Cseq字段值相同的正在进行的请求,但取消不了已经完成的请求(如果服务器返回一个最终状态响应,则认为请求己完成)。CANCEL请求中的Call-ID、To、Cseq的数字部分及From字段和原请求的对应字段值相同,从而使CANCEL请求与它要取消的请求匹配。BEGISTERREGISTER方法用于客户机向SIP服务器注册列在To字段中的地址信息。REGISTER请求消息头中各个字段的含义定义如下:To:含有要创建或更新的注册的地址记录。From:含有提出注册的人的地址记录。Request-URI:注册请求的目的地址,地址的域部分的值即为主管注册者所在的域,而主机部分必须为空,一般,Request-URI中的地址的域部分的值和To中的地址的域部分的值相同。Call-ID:用于标识特定客户机的注册请求。来自同一个客户机的注册请求至少在相同重启周期内Call-ID字段值应该相同;用户可用不同的Call-ID值注册不同的地址,后面的注册请求将替提前面的所有请求。Cseq:callID字段值相同的注册请求的CSeq字段值必须是递增的,但次序无关系,服务器并不拒绝无序请求。Contact:此字段是可选项;用于把以后发送到TO字段中的URI的非注册请求转到Contact字段给出的位置。如果请求中没有Contact字段,那么注册保持不变Expires:表示注册的截止期。INFOINFO方法是对SIP协议的扩展,用于传递会话个产生的与会话相关的控制信息,如ISUP和ISDN信令消息,有关此方法的使用还有待标准化,详细内容参见IETF RFC 2976其他扩展其他扩展的含义如下;re-INVITE:用来改变参数;PRACK:与ACK作用相同,但又是用于临时响应;SUBSCRIBE:该方法用来向远端端点预定其状态变化的通知;NOTIFY:该方法发送消息以通知预定者它所预定的状态的变化;UPDATE:允许客户更新一个会话的参数而不影响该会话的当前状态;MESSAGE:通过在其请求体中承载即时消息内容实现即时淋色;REFER:其功能是指示接受方通过使用在请求中提供的联系地址信息联系第三方2.1.2 SIP响应消息SIP协议中用三位整数的状态码(Status code)和原因码(Reason code)来表示对请求做出的回答。状态码用于机器识别操作,原因短语(ReasonPhrase)是对状态码的简单文字描述,用于人工识别操作。其格式如下;Status-Code = 1xx(Informational) |2xx(Success) |3xx(Redirection) |4xx(Client-Error) |5xx(Server-Error) |6xx(Global-Failure)状态码的第个数字定义响应的类别,在SIP2.0中第一个数字有6个值,定义如下:1xx(Informational):请求已经收到、继续处理请求。2xx(Success):行动已经成功地收到,理解和接受。3xx(Redirection):为完成呼叫请求,还须采取进一步的动作。4xx(Client Error:请求有语法错误或不能被服务器执行。客户机需修改请求,然后再重发请求。5xx(Server Error):服务器出错,不能执行合法请求。6xx(Global Failure):任何服务器都不能执行请求。其中,1xx响应为暂时响应(Provisional response),其他响应为最终响应(Final Response)。SIP响应消息状态码举例:100 Trying181 Call Is Being Forwarded182 Queued200 OK301 Moved Permanently302 Moved Temporarily400 Bad Request404 Not Found405 Not Allowed500 Internal Server Error504 Gateway Time-out600 Busy Everywhere2.2 SIP消息支持的基本功能(1)采用SIP URL的寻址方式,特别地,其用户名字段可以是电话号码,以支持IP电话网关寻址,实现IP电话和PSTN的互通(2)媒体类型、编码格式、收发地址等信息由SDP协议(会话描述协议)来描述,并作为SIP消息的消息体和头部一起传送,因此,支持SIP的网元和终端必须支持SDP。(3)SIP的最强大之处就是用户定位功能,用户定位基于登记和DNS机制(4)SIP独立于低层协议,可采用不同的传送层协议,若采用UDP传送,要求响应消息沿请求消息发送的同样路径回送;若采用TCP传送,则同一事务的请求和响应需在同一TCP连接上传送总之,SIP主要支持以下5个方面的功能:用户定位:确定通信所用的端系统位置。用户能力交换:确定所用的媒体类型和媒体参数。用户可用性判定:确定被叫方是否空闲和是否愿意加入通信。呼叫建立:邀请和提示被叫,在主被叫之间传递呼叫参数。呼叫处理:包括呼叫终结和呼叫转交。2.2.1 用户定位功能-SIP URL结构SIP用户是通过类似于e-mail地址的URL标识,例如:sip:,通过这种方式可以用一个统一名字标识不同的终端和通信方式,为网络服务和用户使用提供充分的灵活性。2.2.2 媒体协商功能-SDP协议简介描述会话信息的协议,包括会话的地址、时间、媒体和建立等信息。1SDP(Session Description Protocol)描述的内容:会话名和目的会话激活的时间段构成会话的媒体接收这些媒体所需的信息(地址、端口、格式)会话所用的带宽信息(任选)会话负责人的联系信息(任选)2SDP的会话描述格式格式: = 规则: type为单个字符,区分大小写value为结构化文本 =两侧无空格 一个会话级描述,从v=开始 若干媒体级描述, 从m=开始3SDP的会话级描述: v= (protocol version) o= (owner/creator and session identifier). s= (session name) i= * (session information) u= * (URI of description) e= * (email address) p= * (phone number) c= * (connection information - not required if included in all media) b= * (bandwidth information) z= * (time zone adjustments) k= * (encryption key) a= * (zero or more session attribute lines)4SDP的媒体级描述: m= (media name and transport address) i= * (media title) c= * (connection information - optional if included at session-level) b= * (bandwidth information) k= * (encryption key) a= * (zero or more media attribute lines)总之,SDP有如下的特点:描述会话信息的协议与具体的传输协议无关文本形式,格式要求严格包含会话级描述和媒体级描述可扩展2.3 SIP协议的主要消息头字段2.3.1 各字段说明该字段用以唯一标识一个特定的邀请或标识某一客户的所有登记。用户可能会收到数个参加同一会议或呼叫的邀请,其Call ID各不相同,用户可以利用会话描述中的标识,例如SDP中的o(源)字段的会话标识和版本号判定这些邀请的重复性。2.3.2 SIP协议消息头实例如上图方框中所示内容即为SIP协议消息头。VIA:SIP/2.0/UDP 36:5060 /通过36:5060发出请求To: 0755526778086/0755526778086为被叫的用户,sip:0755526778086是被叫用户的逻辑地址。From: #0*109316;tag=884a420a-7062206315162668/#0*109316主叫的用户的标识,sip:#0*109316是主叫用户的逻辑地址Call-ID: 244b577919265a-884a420a36 /对本次呼叫的唯一标识,由主叫产生。CSeq:23939 INVITE /命令序号,标识一个事件Contact: sip:#0*10931636:5060 /主叫SIP用户通信的地址,被叫可以直接通过此地址与主叫通信,但由于涉及计费问题,由PROXY进行转接并计费。0*10931636是主叫用户的联系地址Max-Forwards: 70 /消息允许被转发的次数,即最多经过代理服务器的个数User-Agent: ZTE Softswitch/1.0.0Content-Type: application/sdp /消息体:SDPContent-Lenth:288 /消息体的字节长度2.4 SIP协议消息的格式2.4.1 SIP协议传送方式SIP是IETF提出的在IP网络上进行多媒体通信的应用层控制协议,可用于建立、修改、终结多媒体会话和呼叫,号称通信技术中的“TCP/IP”,SIP协议采用基于文本格式的客户服务器方式,以文本的形式表示消息的语法、语义和编码,客户机发起请求,服务器进行响应。SIP独立于底层协议TCP、UDP、SCTP,采用自己的应用层可靠性机制来保证消息的可靠传送。有关SIP协议的详细内容参见IETF RFC3261。2.4.2 SIP的消息结构SIP消息有两种:客户机到服务器的请求(Request),服务器到客户机的响应(Response)。图 2.41 SIP的消息结构SIP消息由一个起始行(start-line)、一个或多个字段(field)组成的消息头、一个标志消息头结束的空行(CRLF)以及作为可选项的消息体(message body)组成。 SIP消息起始行请求行/状态行*消息头部(1个或多个头部)CRLF(空行)消息体起始行分请求行(RequestLine)和状态行(StatusLine)两种,其中请求行是请求消息的起始行,状态行是响应消息的起始行。 2.4.3 SIP请求消息格式SIP请求消息由起始行(start-line)、消息头、标志消息头结束的空行(CRLF)以及可选消息体(message body)组成。请求消息的格式如下:Request = Request-Line *(general-header |request-header |entiy-header message body请求行(Request-Line)以方法(method)标记开始,后面是Requst-URI和协议版本(SIPVersion),最后以回车键结束,各个元素间用空格键字符间隔:RequesLUne Mehod SP Request-URI SP SIP-Verison CRLFSIP用术语“method”来对说明部分加以描述,Method标识是区分大小写的。Mehod INVITE|ACK|OPTION|BYE |CANCEL|REGISTER|INFOSDP描述部分即消息体解释说明:v=0 (版本为0)o= CiscoSystemsSIP-IPPhone-UserAgent 17052 15931 IN IP4 (会话源:用户名CiscoSystemsSIP-IPPhone-UserAgent,会话标识17052,版本15931,网络类型internet,地址类型Ipv4,地址)s=SIP Call (会话名:SIP Call)c=IN IP4 (连接数据:网络类型internet, 地址类型Ipv4, 连接地址)t=0 0 (起始时间:无,终止时间:无)m=audio 17522 RTP/AVP 0 101(媒体格式:媒体类型audio, 端口号17522,传送层协议RTP/AVP,编码格式列表为0 101)a=rtpmap:0 PCMU/8000 (净荷类型0,编码名PCMU,抽样速度为8kHZ)a=rtpmap:101 telephone-event/8000(净荷类型101,编码名telephone-event,抽样速度为8kHZ)2.4.4 SIP响应消息格式响应消息的组成也由起始行、消息头、空行及消息体(message body)四部分组成,其中第四部分消息体可有可无,如上图,没有第四部分。响应消息格式如下:Response = Status-Line*(general-header|response-header|entiy-headerCRLFmessage-body状态行(Status-Line)以协议版本开始,接下来是用数字表示的状态码(Status-Code)及相关的文本说明,最后以回车键结束,各个元素间用空格字符(SP)间隔,除了在最后的CRLF序列中,这一行别的地方不许使用回车或换行字符。Status-Line = SIP-version SP Status-Code SP Reason-Phrese CRLF第3章 SIP基本消息流程3.1 SIP 建立通讯的过程通讯建立主要是终端注册、呼叫建立、释放呼叫几部分。3.2 Registration - 登记登记即为注册。当用户代理要向注册服务器PROXY添加一个地址映射记录时,Contact 域包含要增加的联系地址信息,通过Expires 头部域或该地址信息的expires 参数来声明该联系地址的生命期。用户可通过一个REGISTER 请求消息同时增加多个地址映射记录。刷新: 当要刷新一个地址映射记录时,Contact 域包含要刷新的联系地址信息, 通过Expires 头部域或该地址信息的expires 参数声明该注册地址的生命期来对映射记录进行刷新。用户可以对某个特定的记录进行刷新, 也可以同时刷新多个映射记录。获取地址映射: 注册服务器每次成功处理完REGISTER 请求消息后, 它将返回一个状态码为200 的成功响应。该响应的Contact 头部将包含本用户注册的所有联系地址信息。用户可以从响应消息来获取用户的所有地址映射记录。用户代理在注册服务器成功注册后, 就可以接收呼叫了。其入向代理在接收到对该用户代理的呼叫请求时, 根据对该用户地址映射信息的查询结果, 将呼叫请求消息转发到用户代理的当前联系地址。如果不进行注册, 入向代理将无法得知用户代理的当前位置。3.3 注册注销流程SIP为用户定义了注册和注销过程,其目的是可以动态建立用户的逻辑地址和其当前联系地址之间的对应关系,以便实现呼叫路由和对用户移动性的支持。逻辑地址和联系地址的分离也方便了用户,它不论在何处、使用何种设备,都可以通过惟一的逻辑地址进行通信。逻辑地址用于标识用户, 而联系地址表明用户的当前位置。注册/注销过程是通过REGISTER消息和200成功响应来实现的。在注册/注销时,用户将其逻辑地址和当前联系地址通过REFGISTER消息发送给其注册服务器,注册服务器对该请求消息进行处理,并以200成功响应消息通知用户注册注销成功。图 3.31 SIP注册注销流程1SIP用户向其所属的注册服务器发起REGISTER注册请求。在该请求消息中,Request-URI表明了注册服务器的域名地址,To头域包含了注册所准备生成、查询或修改的地址记录,Contact头域表明该注册用户在此次注册中欲绑定的地址,Contact头域中的Expires参数或者Expires头域表示了绑定在多长时间内有效。2注册服务器返回401响应,要求用户进行鉴权。3SIP用户发送带有鉴权信息的注册请求。4注册成功。SIP用户的注销和注册更新流程基本与注册流程一致,只是在注销时Contact头域中的Expires参数或Expires头域值为0,即删除一个映射记录。如果将Contact 域设为“*”, 且Expires 头部域设为0,将会删除该用户的所有联系地址映射记录。3.4 SIP 呼叫建立和释放消息交互SIP IP电话系统中的呼叫是通过INVITE邀请请求、成功响应和ACK确认请求的三次握手来实现的,即当主叫用户代理要发起呼叫时,它构造一个INVITE消息,并发送给被叫。被叫收到邀请后决定接受该呼叫,就回送一个成功响应(状态码为200)。主叫方收到成功响应后,向对方发送ACK请求。被叫收到ACK请求后,呼叫成功建立。呼叫的终止通过BYE请求消息来实现。当参与呼叫的任一方要终止呼叫时,它就构造一个BYE请求消息,并发送给对方。对方收到BYE请求后,释放与此呼叫相关的资源,回送一个成功响应,表示呼叫已经终止。当主、被叫双方已建立呼叫,如果任一方想要修改当前的通信参数(通信类型、编码等),可以通过发送一个对话内的INVITE请求消息(称为re-INVITE)来实现。图 3.41 代理方式的SIP正常呼叫流程1用户A向其所属的区域代理服务器(软交换)PROXY1发起INVITE请求消息,在该消息的消息体中带有用户A的媒体属性SDP描述;2PROXY1向用户A发送确认消息”100 TRYING”,表示正在对收到的请求进行处理;3经过路由分析,PROXY1将请求转发到PROXY2;4PROXY2向PROXY1发送确认消息”100 TRYING”5PROXY2将INVITE请求转发到用户B;6用户B向PROXY2发送确认消息”100 TRYING”7终端B振铃,向其归属的代理服务器(软交换)PROXY2返回”180 RINGING”响应。8PROXY2向PROXY1转发” 180 RINGING”;9PROXY1向用户A转发” 180 RINGING”,用户A所属的终端播放回铃音;10用户B摘机,终端B向其归属的代理服务器(软交换)PROXY2返回对INVITE请求的”200 OK”响应,在该消息中的消息体中带有用户B的媒体属性SDP描述;11PROXY2向PROXY1转发”200 OK”;12PROXY1向用户A转发”200 OK”;13用户A向PROXY1发送针对200响应的ACK确认请求消息;14PROXY1向PROXY2转发ACK确认请求消息;15PROXY2向用户B转发ACK请求消息,用户A与B之间建立双向RTP媒体流;16PROXY2向PROXY1发送能力查询请求。17PROXY1此时可以接收呼叫,向PROXY2发送成功响应状态码200。如果此时状态忙,就发送自身忙响应状态码为486。因此,能力查询过程也可以用于查询对方的忙闲状态,看是否能够接受呼叫。18用户B挂机,用户B向归属的代理服务器(软交换)PROXY2发送BYE请求消息;19PROXY2向PROXY1转发BYE请求消息;20PROXY1向用户A转发BYE请求消息;21用户A返回对BYE请求的200 OK响应消息;22PROXY1向PROXY2转发200 OK响应消息;23PROXY2向用户B转发200 OK响应消息,通话结束。第4章 SIP消息实例分析& 知识点l 本章主要是在上一章介绍会叫流程的基础上给出部分典型户交流程的具体消息结构。4.1 SIP协议应用实例如图中所示:SIP软终端设备拨打PSTN电话。软交换域通过I704设备和PSTN交换机通讯。4.2 SIP协议分析4.2.1 SIP协议跟踪INVITE起始行:请求消息INVITE sip:0755526778086 SIP/2.0/向sip: 075526778086发起呼叫,协议版本号2.0消息头:Via: SIP/2.0/UDP 36:5060;branch=z9hG4bK3af571e7266a/通过36:5060发出请求To: 0755526778086sip:075552677808610.41.6.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论