首页 >> 通信技术 >> 技术滚动 >> 正文
什么是NGN?
2007年8月31日 16:00    通信世界网    评论()    阅读:
作 者:本网综合

    什么是SIP协议?

    会话初始协议(SIP)是IETF提出的在IP网上进行多媒体通信的应用层控制协议。SIP是IETF标准进程的一部分,它是在诸如SMTP(简单邮件传送协议)和HTTP(超文本传送协议)基础之上建立起来的。它用来建立、改变和终止基于IP网络的用户间的呼叫。为了提供电话业务,它还需要结合不同的标准和协议,特别是需要确保传输(RTP),与当前电话网络的信令互连,能够确保语音质量(RSVP),能够提供目录(LDAP),能够鉴权用户(RADIUS)等等。以Internet协议(HTTP)为基础,遵循Internet的设计原则,基于对等工作模式。利用SIP可实现会话的连接、建立和释放,并支持单播、多播和可移动性。此外,SIP如果与SDP配合使用,可以动态地调整和修改会话属性,如通话带宽、所传输的媒体类型及编解码格式。

    SIP大大优于现有的一些协议,如将PSTN音频信号转换为IP数据包的媒体网关控制协议(MGCP)。因为MGCP是封闭的纯语音标准,所以通过信令功能对其进行增强比较复杂,有时会导致消息被破坏或丢弃,从而妨碍提供商增加新的服务。而使用SIP,编程人员可以在不影响连接的情况下在消息中增加少量新信息。例如,SIP服务提供商可以建立包含语音、视频和聊天内容的全新媒体。如果使用MGCP、H.323 或SS7标准,则提供商必须等待可以支持这种新媒体的协议新版本。而如果使用SIP,尽管网关和设备可能无法识别该媒体,但在两个大陆上设有分支机构的公司可以实现媒体传输。而且,因为SIP的消息构建方式类似于HTTP,开发人员能够更加便捷地使用通用的编程语言(如Java)来创建应用程序。对于等待了数年希望使用SS7和高级智能网络(AIN)部署呼叫等待、主叫号码识别以及其他服务的运营商,现在如果使用SIP,只需数月时间即可实现高级通信服务的部署。

    SIP协议的基本功能

    SIP被描述为用来生成、修改和终结一个或多个参与者之间的会话。这些会话包括因特网多媒体会议,因特网(或任何IP网络)电话呼叫和多媒体发布。会话中的成员能够通过多播或单播联系的网络来通信。SIP支持会话描述,它允许参与者在一组兼容媒体类型上达成一致。它同时通过代理和重定向请求到用户当前位置来支持用户移动性。SIP不与任何特定的会议控制协议捆绑。本质上,SIP提供以下功能。

    名字翻译和用户定位:无论被呼叫方在哪里都确保呼叫达到被呼叫方。执行任何描述信息到定位信息的映射。确保呼叫(会话)的本质细节被支持。

    特征协商:它允许与呼叫有关的组(这可以是多方呼叫)在支持的特征上达成一致(注意:不是所有方都能够支持相同级别的特征)。例如视频可以或不可以被支持。总之,存在很多需要协商的范围。

    呼叫参与者管理:呼叫中参与者能够引入其他用户加入呼叫或取消到其他用户的连接。此外,用户可以被转移或置为呼叫保持。

    呼叫特征改变:用户应该能够改变呼叫过程中的呼叫特征。例如,呼叫可以被设置为“voice-only”,但是在呼叫过程中,用户可以根据需要开启视频功能。也就是说一个加入呼叫的第三方为了加入该呼叫可以开启不同的特征。

    SIP的消息整体描述

    SIP消息用于会话连接的建立及修改。SIP消息有两种:客户机到服务器的请求(Request),服务器到客户机的响应(response)。

    SIP消息包括三个部分:SIP消息由一个起始行(start-line)、一个或多个字段(field)组成的消息头、一个标志消息头结束的空行(CRLF)以及作为可选项的消息体(messagebody)组成,其中描述消息体(messagebody)的头称为实体头(entityheader)。起始行分请求行(Request-Line)和状态行(status-line)两种,其中请求行是请求消息的起始行,状态行是响应消息的起始行,起始行位于消息的最开始。消息头分通用头(general-header)、请求头(request-header)、响应头(response-header)和实体头(entity-header)四种。消息头,描述消息的属性,类似于HTTP消息头的语法和语义,其中某些是完全照搬。消息体,消息体主要是对消息所要建立的会话的描述。典型的消息体为SDP(会话描述协议)格式,用来对所要建立的会话进行描述,例如建立一个多媒体会话的消息体中包含音频、视频编码及取样频率等信息的描述。消息体的类型采用MIME(多目的互联网邮件扩展)所定义的代码进行标识,如SDP的类型标识为application/SDP。除了SDP,消息体也可以是其他各种类型的文本或二进制数据。

    (1)SIP请求消息

    INVITE方法用于邀请用户和服务参加一个会话。在INVITE请求的消息体中可对被叫方被邀请参加的会话作以描述。如主叫方能接收的媒体类型、发出的煤体类型及其一些参数。对INVITE请求的成功响应必须在响应的消息体中说明被叫方愿意接收哪种媒体,或者说明被叫方发出的媒体。服务器可以自动地用200OK响应会议邀请。

    ACK请求用于客户机向服务器证实它已经收到了对INVITE请求的最终响应。ACK只和INVITE请求一起使用。对2xx最终响应的证实由客户机用户代理发出,对其它最终响应的证实由收到响应的第一个代理或第一个客户机用户代理发出。ACK请求的To、From、Call-ID、Cseq字段的值由对应的INIVITE请求的相应字段的值复制而来。

    OPTIONS用于向服务器查询其能力。如果服务器认为它能与用户联系,则可用一个能力集响应OPTIONS请求;OPTIONS的From、To分91包含主被叫的地址信息,对OPTIONS请求的响应中的From、To(可能加上tag参数)、Call-ID字段的值由OPTIONS请求中响应的字段值复制得到。

    BYE用户代理客户机用BYE请求向服务器表明它想释放呼叫。BYE请求可以像INVITE请求那样被转发,可由主叫方发出也可以由被叫方发出。呼叫的一方在释放(挂断)呼叫前必须发出BYE请求,收到BYE请求的这方必须停止发媒体流给发出BYE请求的这方。

    CANCEL请求用于取消一个Call-ID、To、From和Cseq(仅序列号)字段值相同的正在进行的请求,但取消不了已经完成的请求(如果服务器返回一个最终状态响应,则认为请求己完成)。CANCEL请求中的Call-ID、To、Cseq的数字部分及From字段和原请求的对应字段值相同,从而使CANCEL请求与它要取消的请求匹配。

    REGISTER方法用于客户机向SIP服务器注册列在To字段中的地址信息。

    INFO方法是对SIP协议的扩展,用于传递会话中产生的与会话相关的控制信息,如:ISUP和ISDN信令消息,以及DTMF数字等。

    其中INVITE和ACK用于建立呼叫,完成三次握手,或者用于建立以后改变会话属性;BYE用以结束会话;OPTIONS用于查询服务器能力;CANCEL用于取消己经发出但未最终结束的请求;REGISTER用于客户机向注册服务器注册用户位置等消息。

    除了在建立会话时进行各种消息交互外,SIP终端还可以在会话过程中,发出消息改变或添加会话的某些属性。例如,用户在进行语音通话的过程中,想增加视频通信,他可以在不中断通话的情况下,发送新的INVITE消息,打开双方的视频媒体,使通话变成可视电话。这为用户的使用带来很大的灵活性。

    (2)SIP响应消息

    SIP协议中用三位整数的状态码(statuscode)和原因值(reasoncode)来表示对请求做出回答,状态码用于机器识别操作,原因短语(reason-phrase)是对状态码的简单文字描述,用于人工识别操作。状态码的第一个数字定义响应的类别,在SIP/2.0中第一个数字有6个值,定义如下:

    lxx——暂时响应,表示请求已经收到,正继续处理请求。

    2xx——成功地响应,表示行动己经成功地收到,理解和接收。

    3xx——重定位响应,表示为完成呼叫请求,还必须采取进一步的动作。

    4xx——客户机错误,属于请求失败响应,表示请求有语法错误或不能被服务器执行。客户机需要修改请求,然后再重发请求。

    5xx——服务器错误,属于服务器失败响应,表示服务器出错,不能执行合法请求。

    6xx——全局失败响应,表示任何服务器都不能执行请求。

[1]  [2]  [3]  [4]  [5]  [6]  编 辑:张翀
关键字搜索:NGN  软交换  SIP  IMS  
  [ 发 表 评 论 ]     用户昵称:   会员注册
 
 
  推 荐 新 闻
  技 术 动 态
  通 信 圈