首页 >> 新闻

SIP破语音之局

郑惠荣 2004/10/19

  即使你还没有在你的IP网络中加入语音功能,你也应该听说过SIP(Session Initiation Protocol,会话发起协议)。SIP是一种信号发送协议,用于在IP网络上建立、改变和结束多媒体会话,它还是定位和连接音频-视频多媒体终端用户的VoIP(语音IP)电话标准。

  与HTTP一样,SIP灵活多变且简单易用,它能够支持具有语音功能的商业性多媒体会议。虽然目前几乎所有提供VoIP的通信服务提供商都很想把用户锁定在自己所能提供的信号发送方案中,但SIP仍有望在近两年内成为VoIP实现的标准。IETF(Internet工程任务组)早在1999年就推出了第一版(SIP,RFC 2543),并于去年6月推出了最新版本(RFC 3261)。

  SIP最适用于VoIP,和以往传统的VoIP协议相比,SIP用跨越Internet的会议方式代替点对点的语音传送方式,因为SIP开发目的本身就是用来帮助提供跨越因特网的高级电话业务。而ITU(国际电信联盟)提出的多媒体标准H.323,以及一些VoIP电话使用的都是这种方式。生产实际产品的VoIP服务提供商早在SIP出现以前就已经接受了H.323。但是SIP的实现比H.323 简单,且协议头文件比H.323小。

  但是,SIP不仅仅是传统电话联系方式的标准化替代,而且和以往的VoIP协议相比,SIP将通信系统的可扩容性和可协作性提高到了一个新的水准,在它之上,可以更容易地建立起很多新的服务。这些服务包括,可以很快确定是否能够并且愿意接收来自特殊电话或者电视,甚至是紧急会议的消息,用户还能通过VoIP电话同时与多个联系人通信。

  IP电话正在向一种正式的商业电话模式演进,SIP就是用来确保这种演进实现而需要的NGN(下一代网络)系列协议中重要的一员。因此,SIP也袭击了商业界。微软公司将要嵌入XP 操作系统的WinMessenger IM计划是基于SIP的。WinMessenger还通过SIP实现Internet电话。将来3G无线WANs也将使用SIP建立和撤销电话联系。

  到目前为止,仍然有很多人对于SIP到底能干些什么有所误解。事实上,SIP不能传输数字化语音,这项工作是RTP (Real-Time Transport Protocol,实时传输协议)要完成的工作,它在SIP建立呼叫后传送语音。在SIP使用多种多媒体数字信号编解码器以及相应技术设立语音功能、传输文本信息和视频会议之前,用户需要决定会议中的设备需要具备哪些特性。SIP依照SDP(Session Description Protocol,会议描述协议)处理会议中两个终端可能具有的能力问题,这就是会议描述协议的由来。

  SIP通信的实现

   SIP使用UDP (User Datagram Protocol,用户数据包协议) 或 TCP作为传输器,但在默认情况下,它在端口5060上使用UDP。如果SIP信息包被不可靠的协议(如UDP)截获,SIP等待一段时间后得不到回应,它会将命令转发。

  SIP最常发给另一个终端的命令是“invite”。当一个SIP电话机或UA(User agent, 用户代理)想与另一个SIP电话机或UA建立联系时,它会发出一个邀请。如果邀请成功,则发出邀请的用户代理会收到一个“200”的回应,这就意味着一切正常,会谈关系已经建立。

  与HTTP 和 SMTP一样,SIP格式很简单,使得命令很容易分析。因此任何一个协议分析器都能在一个简单的ASCII转换后显示其实际命令并做出反应。

  与E_mail一样,在邀请中SIP头文件包含发源地和目的地的地址。每一个这样的地址都与E_mail中的地址一样,它们被称为URI(Uniform Resource Identifier,唯一的源标识符),例如sip:peter@nwc.com。URI中目的地区域包含一个标准电话号码。SIP头文件中还包含一个“call ID”,它是用来鉴别SIP处理状况的独特号码,所有的来自一个客户机的邀请都是用相同的Call-ID。除此以外,头文件中还包含一个“via”区域,当建立初始连接后这个区域的信息告诉用户代理往哪个IP地址发送回馈信息。

  一旦会话联系建立,包含用户代理的IP地址的“contact”区域就派上用场了。这是接收用户代理发送给目的用户代理的通话的目的地。当配置了NAT(Network Address Translation,网络地址转换协议)时,一个使用不可到达的NAT地址的终端被插入SIP层作为返回地址。但是SIP提供者可以使用多种方式予以避免,例如SIP器件可以使用IP信息包的源地址,而不是SIP头文件中的IP地址。SIP-预警防火墙可以使用NAT改变SIP头文件中的IP地址。

  邀请请求使用SDP语法告诉接收用户代理呼叫方的媒体接受力。当被叫方做出回应时会给出一个OK信息,其中包含了所能支持的媒体接受力。

  SIP中服务器的

  分类和功能

  SIP中有两个要素,即上文介绍过的SIP用户代理和马上要介绍的SIP网络服务器。用户代理是呼叫的终端系统元素,而SIP服务器是处理与多个呼叫相关联信令的网络设备。SIP服务器能够保持地址路径信息和被叫用户的位置信息。一共有好几种SIP服务器,他们都能工作在同一服务器上,也能工作在各自不同的硬件平台上。

  SIP代理服务器处理SIP电话和用户代理的请求,它在维护发送者利益的前提下尽力与接收者建立联系,在没有收到200 OK响应之前它一直停留在循环回路里等候。代理服务器将自己的IP地址放在“via”区域以便目的客户发回他们的响应。当目的客户发出响应后,代理使响应通过,并送回发送者处。而“contact”区域中的地址是用户代理们用来直接联系的。

  当代理服务器通过了一项邀请申请,它会立即回一个叫“100”或“尝试中(trying)”的状态信息。这就让呼叫方知道对方正在处理请求。在代理服务器查找到目的用户代理的位置信息并将申请发送给它时,它会同时发送一个“呼叫(ring)”信息给接受方。

  在发送方接收到“200”后,它会发送一个“ack”信号提示接收方信号已收到。这样,客户间的进一步交流开始了,RTP接管工作,开始在用户代理之间传送数字化信息。当通信结束时,一方发送“bye”到另一方,另一方回应“200”。

  SIP协议凭借其简单、易于扩展、便于实现等诸多优点越来越得到业界的青睐,它正逐步成为NGN(下一代网络)和3G多媒体子系统域中的重要协议,并且市场上出现越来越多的支持SIP的客户端软件和智能多媒体终端,以及用SIP协议实现的服务器和软交换设备。虽然SIP协议目前还不成熟,但可以预见,SIP必定是将来网络多媒体通信中的明星。

赛迪网 中国信息化(industry.ccidnet.com)
分类信息:     文摘