基于SIP协议软交换模型的设计与实现

  摘要:本文提出了软交换出现的背景以及软交换技术相关的协议。以面向对象的方法在Cisco的VOCAL软交换系统的基础上开发了一个企业级应用的软交换模型,系统是按照下一代网络(NGN)以及软交换的思想和技术路线来设计和实现的。
  关键词:下一代网络(NGN);软交换;SIP协议
  
  引言
  
  目前传统的公众交换电话网(PSTN)上传送着许多数据业务,由于快速增长的数据业务给并不适合传送数据业务的电话网造成了很大的压力。因此,基于分组技术的数据网与电路交换网最终必将走向融合,产生下一代由业务驱动的网络。软交换是下一代网络交换的核心,如果说传统电信网络是基于程控交换机的网络,而下一代网络则是基于软交换的网络。
  
  1系统开发的技术基础
  
  1.1软交换的概念
  我国信息产业部电信传输研究所对软交换的定义是:“软交换是网络演进以及下一代分组网络的核心设备之一,它独立于传送网络,主要完成呼叫控制、资源分配、协议处理、路由、认证、计费等主要功能,同时可以向用户提供现有电路交换机所能提供的所有业务,并向第三方提供可编程能力。”
  1.2 SIP协议介绍
  会话初始化协议SIP(Session Initiation Protocol)是一个面向Internet 会议和电话的简单信令协议,SIP最初由IETF MMUSIC (Multiparty Multimedia Session Control) 工作组提出。它的主要目的是为了解决IP网中的
  信令控制,以及同软交换机的通信,从而构成新一代的通信平台。
  
  2 系统的总体设计和实现
  
  2.1系统的层次结构
  软交换采用业务与交换分离的设计思想,在系统设计结构上将软交换技术应用设计为三层结构,底层为用户接入层,中间为交换支撑层,最上面是业务实现层。系统的层次结构如图1所示。
  
  2.2呼叫管理服务器的设计与实现
  呼叫管理服务器处于该体系结构中的网络控制层,它是软交换系统的核心部分。呼叫管理服务器除了完成呼叫控制、连接控制和协议处理功能外,还将提供原来由网守设备提供的资源管理、路由以及认证、计费等功能。

  软交换系统的运行需要SIP协议栈和SDP协议栈。客户端应该能够产生INVITE和ACK请求,能够产生和解析Call-ID,Content-Length,Content-Type,Cseq,From和To头部字段。呼叫管理服务器应该能够接收INVITE,ACK,BYE,CANCEL和REGISTER请求,应该能够产生和解析Call-ID,Content-Length,Content-Type,Cseq,Expires,From,Max-Forwards,Via和To头部字段。为了能够使客户端和服务端能够使用RTP传输语音流,SDP协议应该能够产生和解析v,o,s,c,t,m和a头部字段。
  本系统以面向对象的方法设计了一个满足系统要求的最小SIP和SDP协议栈。SIP协议栈支持INVITE,ACK,BYE,REGISTER和CANCEL请求,支持100,180,200,300,400,500和600状态应答,支持Subject,Contact,Call-ID,Content-Length,Content-Type,Cseq,Expires,From,Max-Forwards,Via和To头部字段。SDP协议栈支持v,o,s,c,t,m和a头部字段。SIP和SDP中的头部字段都是以类的形式实现的,所支持的头部字段都是从一个抽象类Header继承而来。抽象类Header的定义如下:
  class Header
  {
  public:
  Header();
  virtual ~Header() = 0;
  virtual string encode() const = 0;

基于SIP协议软交换模型的设计与实现相关推荐