微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > SIP协议在VoIP中的应用

SIP协议在VoIP中的应用

时间:07-10 来源:c114 点击:

用户的连接。此外,用户可以被转移或置为呼叫保持。


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


  2.3 SIP的消息整体描述


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


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


  (1)SIP请求消息


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


  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协议中用三位整数的状态码(status code)和原因值(reason code)来表示对请求做出回答,状态码用于机器识别操作,原因短语(reason-phrase)是对状态码的简单文字描述,用于人工识别操作。状态码的第一个数字定义响应的类别,在SIP/2. 0中第一个数字有6个值,定义如下:[Page]


  lxx--暂时响应,表示请求已经收到,正继续处理请求。
  2xx--成功地响应,表示行动己经成功地收到,理解和接收。
  3xx--重定位响应,表示为完成呼叫请求,还必须采取进一步的动作。
  4xx--客户机错误,属于请求失败响应,表示请求有语法错误或不能被服务器执行。客户机需要修改请求,然后再重发请求。
  5xx--服务器错误,属于服务器失败响应,表示服务器出错,不能执行合法请求。
  6xx--全局失败响应,表示任何服务器都不能执行请求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top