您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 传媒/媒体 > SIP协议与多媒体会议系统
SIP协议与多媒体会议系统摘要:SIP协议是IETF提出的在IP网络上进行多媒体通信的应用层控制协议,主要目的是为了解决IP网中的信令控制,以及同SoftSwitch的通信,从而构成下一代的增值业务平台,所以越来越得到业界的重视。本文通过SIP协议的背景、功能、网络元素、实现机制、以及SIP消息的组成等几个方面对SIP协议做的概要性介绍,以及在多媒体会议中是怎么采用SIP协议来实现的。关键字:SIP(SessionInitiationProtocol,起始会话协议);URL(UniformResoureLocator:统一资源定位器);UserAgent(用户代理);ProxyServer(代理服务器);RedirectServer(重定向服务器);RegisterServer(登记服务器);LocationServer(位置服务器);H.323协议;一、SIP简介1.1概述SIP(SessionInitiationProtocol,起始会话协议)是IETF提出的在IP网络上进行多媒体通信的应用层控制协议,SIP是一个客户/服务器协议,可用于建立,修改,终结多媒体会话和呼叫。SIP协议采用基于文本格式的客户-服务器方式,以文本的形式表示消息的语法、语义和编码,客户机发起请求,服务器进行响应。可以承载IP地址、端口信息、媒体能力和编码方式等会话相关的信息。SIP独立于低层协议-TCP或UDP,而采用自己的应用层可靠性机制来保证消息的可靠传送。SIP协议的详细内容可参见IETFRFC2543(1999)。SIP的特点是简单、便于扩展和扩充,而且重要的是SIP概念与Internet的出发点一致,SIP借鉴了许多已有的Internet协议,因而是实现新的增值综合业务的理想手段。SIP协议可以很好地配合Web和Email工作,其原因是:1)SIP消息数据及格式与Web消息数据是同样类型的数据。2)SIP采用URL地址格式来进行消息路由和定位用户,URL可以嵌入Web网页,可以利用任何其它类型的URI,如Web等。3)采用DNS选路技术进行路由选择。由于SIP协议具有上述特点,因此它能够很容易地开发与Web结合的综合应用,可以降低开发成本并缩短开发周期。由于IP网络的发展,SIP将变得愈来愈重要,将来人们可以用SIP来构筑一个基本的框架,在这个框架上用简单且单一的INVITE-ACCEPT消息结构方式来为PC终端、移动终端和固定网终端用户提供语音、多媒体、电子商务的综合业务。目前对SIP协议的更新是RFC2543bis,与原有版本兼容。同样,IETFSIP工作组也制定了一个文档,提出了一个方法可以将ISUP信令消息封装在SIP的消息体内,该方法参照了SIPforTelephony(SIP-T)草案。目前已有众多的包括3COM、Lucent、Level(3)Communication、ERICSSON在内的设备供应商和运营商宣布支持SIP。Microsoft曾经发布过基于H.323的NetMeeting客户机,而最近又宣布将在WindowsXP客户机和服务器平台上增加SIP功能,这将引起SIP客户机数量的迅速增加。目前相关设备供应商和业务供应商联合成立了一个关于SIP的论坛:,为SIP的发展提供一个自由讨论、展现新思维的发展平台。1.2SIP消息总体描述SIP消息由一个起始行(start-line)、一个或多个字段(field)组成的消息头、一个标志消息头结束的空行(CRLF)以及作为可选项的消息体(messagebody)组成,其中描述消息体(messagebody),的头称为实体头entityheader。SIP定义的SIP消息的一般格式为:SIP一般消息=起始行*消息头部(一个或者多个头部)CRLF(空行)[消息体]SIP的消息机制采用了Client/Server请求和响应的应答机制,消息有两种:客户机到服务器的请求(Request),服务器到客户机的响应(Response)。在上述SIP一般消息的格式中,启始行分请求行(Request-Line)和状态行(Status-Line)两种,其中请求行是请求消息的启始行,状态行是响应消息的启始行。在请求行中给出SIP版本、调用的请求操作(方法)、被邀用户的当前地址。在响应行中给出SIP版本、状态码和相关的文字说明。消息头部分为4类:通用头部(general-header)、请求头部(request-header)、响应头部(response-header)和实体头部(entity-header)四种。SIP2.0版本共定义了36种头部消字段。空行表示消息头部字段的结束。消息体主要是SDP会话描述,在响应消息中还可能是原因和进展指示文本。上面描述中的符号*表示该字段可有多个。SIP消息的语法基本上和HTTP相同,头部字段也和HTTP基本相同。但是它可以在UDP上传送。包括头部字段在内的UDP数据包长度不应该超过路径的最大允许传输单元(MTU),如果MTU未知,则最大长度可取为1500字节(以太网MTU典型值)。下面进一步说明SIP请求消息格式和响应消息格式。1.3SIP请求消息格式描述请求消息的格式如下:SIP请求消息=请求起始行*(通用头部|请求头部|实体头部)CRLF(空行)[消息体]请求起始行(Request-Line)以方法(method)标记开始,后面是Request-URI和协议版本(SIP-Version),最后以回车键结束,各个元素间用空格键字符间隔。Request-Line=MethodSPRequest-URISPSIP-VersionCRLF其中SP符号代表空格。方法就是请求执行的操作,SIP用术语method来对方法部分作以描述,Method标识是区分大小写的。SIP定义了以下几种方法。邀请(INVITE)、证实(ACK)、选择(OPTIONS)、再见(BYE)、取消(CANCEL)、登记(REGISTER)、信息(INFO),所有方法必须大写。请求-URI(Request-URI)是被邀请用户的当前地址。SIP版本号现设定为SIP/2.0。方法描述:(1)INVITEINVITE方法用于邀请用户或服务参加一个会话。在INVITE请求的消息体中可对被叫方被邀请参加的会话作以描述,如主叫方能接收的媒体类型、发出的媒体类型及其一些参数;对INVITE请求的成功响应必须在响应的消息体中说明被叫方愿意接收哪种媒体,或者说明被叫方发出的媒体。服务器可以自动地用200(OK)响应响应会议邀请。(2)ACKACK请求用于客户机向服务器证实它已经收到了对INVITE请求的最终响应。ACK只和INVITE请求一起使用。对2xx最终响应的证实由客户机用户代理发出,对其它最终响应的证实由收到响应的第一个代理或第一个客户机用户代理发出。ACK请求的To、From、Call-ID,CSeq字段的值由对应的INVITE请求的相应字段的值复制而来。(3)OPTIONS用于向服务器查询其能力。如果服务器认为它能与用户联系,则可用一个能力集响应OPTIONS请求;对于代理和重定向服务器只要转发此请求,不用显示其能力。OPTIONS的From、To分别包含主被叫的地址信息,对OPTIONS请求的响应中的From、To(可能加上tag参数)、Call-ID字段的值由OPTIONS请求中相应的字段值复制得到。(4)BYE用户代理客户机用BYE请求向服务器表明它想释放呼叫。BYE请求可以象INVITE请求那样被转发,可由主叫方发出也可由被叫方发出。呼叫的一方在释放(挂断)呼叫前必须发出BYE请求,收到BYE请求的这方必须停止发媒体流给发出BYE请求的这方。(5)CANCELCANCEL请求用于取消一个Call-ID,TO,From和Cseq(仅序列号)字段值相同的正在进行的请求,但取消不了已经完成的请求(如果服务器返回一个最终状态响应则认为请求已完成)。CANCEL请求中的Call-ID,To,Cseq的数字部分及From字段和原请求的对应字段值相同,从而使CANCEL请求与它要取消的请求匹配。(6)REGISTERREGISTER方法用于客户机向SIP服务器注册列在列在To字段中的地址信息。REGISTER请求消息头中各个字段的含义定义如下:To:含要创建或更新的注册的地址记录。From:含提出注册的人的地址记录。Request-URI:注册请求的目的地址,地址的域部分的值即为主管注册者所在的域,而主机部分必须为空。一般,Request-URI中的地址的域部分的值和To中的地址的域部分的值相同。Call-ID:用于标识特定客户机的注册请求。来自同个客户机的注册请求至少在相同重启周期内Call-ID字段值应该相同;用户可用不同的Call-ID值注册不同的地址,后面的注册请求将替换前面的所有请求。Cseq:Call-ID字段值相同的注册请求的CSeq字段值必须是递增的,但次序无关系,服务器并不拒绝无序请求。Contact:此字段是可选项;用于把以后发送到TO字段中的URI的非-注册请求转到Contact字段给出的位置那里。如果请求中没有Contact字段,那么注册保持不变。Expires:表示注册的截止期。(7)INFOINFO方法是对SIP协议的扩展,用于传递会话中产生的与会话相关的控制信息,如ISUP和ISDN信令消息,有关此方法的使用还有待标准化,详细内容参见IETFRFC2976。有关消息头和消息头各个字段的说明在下面章节将进一步描述。1.4SIP响应消息格式描述响应消息的格式如下:SIP响应消息=状态起始行*(通用头部|响应头部|实体头部)CRLF(空行)[消息体]状态行(Status-Line)以协议版本开始,接下来是用数字表示的状态码(Status-Code)及相关的文本说明,最后以回车键结束,各个元素间用空格字符(SP)间隔,除了在最后的CRLF序列中,这一行别的地方不许使用回车或换行字符。Status-Line=SIP-versionSPStatus-CodeSPReason-PhraseCRLF其中SP符号代表空格。SIP协议中用三位整数的状态码(StatusCode)和原因值(ReasonCode)来表示对请求的作出的回答,状态码用于机器识别操作,原因短语(Reason-Phrase)是对状态码的简单文字描述用于人工识别操作,便于使用者理解。在SIP/2.0中状态码共分为6类,其中第一位数字指示响应类别,后两位数字表示该类中的具体响应。Status-Code=1xx(Informational)|2xx(Success)|3xx(Redirection)|4xx(Client-Error)|5xx(Server-Error)|6xx(Global-Failure)|extension-code(1)1xx:信息响应,即呼叫进展响应。表示请求已经收到,继续处理请求。100:试呼中180:振铃181:呼叫正在前转182:排队(2)2xx:成功响应,表示行动已经成功地收到,理解和并接受。200:OK(3)3xx:重定向响应,表示为完成呼叫请求还须采取进一步的动作。300:多重选择301:永久迁移302:临时迁移303:见其他305:使用代理380:替换服务(4)4xx:客户出错,表示请求有语法错误或不能被服务器执行。客户机需修改请求,然后再重发请求。(5)5xx:服务器出错,表示服务器出错不能执行合法请求。(6)6xx:全局故障,表示任何服务器都不能执行请求。其中1xx响应为暂时响应,其它响应为最终响应。SIP响应码是可扩展的。不要求SIP应用程序理解所有已经注册响应码的含义,但是它必须理解所有响应码的类别。不能识别的响应码则作为x00处理,此时,用户代理应向用户显示该响应的消息体,该消息体一般含有能解释该异常状态的可读信息。上面我们介绍了SIP协议的消息头分为通用头部、请求头部、响应头部和实体头部四种、下面我们介绍一下SIP协议的消息头。1.5
本文标题:SIP协议与多媒体会议系统
链接地址:https://www.777doc.com/doc-7009123 .html