tceic.com
学霸学习网 这下你爽了
赞助商链接
当前位置:首页 >> 信息与通信 >>

SIP协议及基于SIP的NGN业务技术研究



密级

908700

分类号

学校代码!Q5QQ

诹{|11|I工繁失潦
硕士学位论文


目S!!垃.选区茎王!!!盥!型些箜塑盔班窒

英文题只!!堕!!!i!!!!!!趔!!!!曼璺!堂!!赶Q£

研究生姓名(箍幸_i)

堑】查
职称熬攫

指导教师姓名(签名)担i塞.z 指导教师姓名(签名):b g么.z


职称熬攫.一
裾,2哆

申请学位学科名称过矗盘垒墅{纽学科代码

学院负责人(签名)湖
论文答辩日期耋QQ鱼:墨:呈Q 评阅人姓名

学位授予日期——
, 评阅人姓名

奎腊匹

董塞捏

_零零六年五月二l目

湖北工业大学硕士学位论文





随着近几年P技术的迅速发展,传统电信网络将逐步成为分组骨干网的边缘 部分。与此同时,为了支持新的多媒体商业应用,传统电信网络将越来越开放, 并引入许多新的功能和业务。因此,有必要开发新的网络结构。在这种背景下, NGN(下一代网络)成为目前讨论的热点技术。NGN是一个广义的概念,一般而言, 下一代网络是:可以提供包括话音、数据和多媒体等各种业务在内的综合开放的 网络构架。而软交换(sof【switch)是下一代网络的核心技术,它是一种基于软件的 分布式交换和控制平台。在NGN的网络体系中一般采用IP网作为承载网,因此 如何实现基于IP网的多媒体业务也成为研究的热点。

sIP协议作为新兴的多媒体通信协议,具有实现简单,功能强大,适合IP网
等优点;通过SIP协议在扩展方面的两个特点:灵活的可扩展性以及开放的业务 开发环境,可以很容易地实现基于口网的丰富多彩的多媒体增值业务。 sⅢ是一个应用层的信令控制协议,用来创建、修改和终结一个或多个参加者 参加的会话进程。这些会话包括IP电话、Intemet多媒体发布、hltemet多媒体会 议、远程教育以及远程医疗等。 本论文首先介绍了sIP协议在当前通信行业背景下的研究及发展现状,细致 研究了S口协议理论,包括SIP协议的功能、消息、实体和优良特性。随后设计了 一套sIP协议栈软件,着重阐述了自己的设计思想,包括协议栈的系统构架设计, 对象类(接口)设计,多线程的并发处理设计。接下来文章也系统研究了基于s1P 协议的NGN,IMs业务技术,包括阐述NGN/软交换佃Ⅵs的基础知识及关键技术, 分析了S口协议灵活的扩展机制、开放的业务开发环境和基于SIP协议的业务创建 技术。

关键词:SIP,NGN,软交换,IMS,多媒体业务

湖北工业大学硕士学位论文
Abstract
With
traditional the rapid development of IP technology in the passed several years. telecom networks are becoming the edge part of the packet backbone

network.At也e same time.in order to support new multimedia commercial applications. traditional telecom networks have become more and more open.It is necessary to design a new network structure.NGN(Next Generation Network)was introduced and
has been ardently studied.NGN is open network structure,which


general concept.In
support

one

WOrd,it is

an

Can

voice,data,multimedia

integrated and other

applications.Soft switch iS the core ofNGN。n is a distributed switch platform based on soRware.It is preferred to using IP networks as the trailsport layer in NGN.HOW to realize the multimedia applications in IP networks has turned to one of the hot spots in research. SIP,a new multimedia communication protocol,has several advantages:easy to realize,powerful functions,suitable for IP networks.agile patulous mechanism and open development environm‘;nt.BY the last two and realize abundant multimedia applications in IP sIP is

advantages,we

call

easily introduce

networks. creating,modi蜘ng,and

an

terminating sessions with one or more participants.The sessions include、,oIP. multimedia distribution,multimedia conferences,remote education and medical treatment. TIliS paper studies the function and specialty of SIP.In the next.this paper deeply discuses the reliability,expansibility and security of SIP.At the same time.the design
plan,fralnework with introducing

application-layer signaling-control protocol for

and implement

NGN/So删tch佃MS.we

mode of SIP stack and

are

studied and
several

discussed.Further, of

study the methods of extension of the SIP diSCUSS

and

open development envkonment development of SIP.based applications.

technologies

the

Keywords:SIP,NGN,Softswitch,IMS,Multimedia Service

ll

主薹苫妻室蓁雾蠹蓁薹萎≥
茎毛圣i三主一重量量茎三三 三主薹i耋重一薹藿辜兰

薹!=;;;!;;茎:蓄li;:主重薹霎茎霎;;iiii耄茎蓁霍一三主三主;圣;;. 重茎薹薹薹墓荸蠡垦匡霎;鍪薹雾蓁錾茎薹季耋ii!圣攀囊囊一囊~翼薹薹薹; 萋蠢薹霎至摹蠹霎薹雾一姜莲蒌;萋羹冀羹霎嘉薹錾羹璧羹冀薹耋耋霪誊r冬垩 }i茹薯犁未譬∽£到御g是。卒A琶基师篓漕:苄南*孵豁赫鹁的胛i所取得 ~的砩煮前墨醛等舍占i斟亳洲托孙排蒜蠹和莱孤等宋奋葶屉持导孺;术^l!《《 霖签暑鬃摩i笳弦誉尊持矧芸供凿孬掣2签则錾j艟刚强。裂鞠。眇lJ※灏露糕; 占羟|导舍m笛琵掣备#甜; i;i击明酾溪 .酢轸蛩朔蚓㈡葫封奏||意8熙滋裂强弦二翠姜摹而~薹蠢委蒴姜象和}蠹妻一 冀茎萎薯:蒌要篓圣:摹蠢鬻囊ljjlii霪要;霎霎薹蓄篓东睾倍莎奇簇箬彝答妻 ㈤≯匆董屿濡湿: ;!i渊垣墨出 嘴澎~憾毽耩拦!鲁竖弧鞔礁掳刊兆担醴朝薅鞭儿碑聊珊妻葛=讴专简奏耗 赫H羚j≥≥||||删啦于岔《嘲莹鹫i

湖北工业大学硕士学位论文

第1章引言
1.1引言
近十年来,信息产业以前所未有的速度高速增长,同时也经历着历史上最为 深刻的技术变革。随着通信网络技术的日益完善,特别是近年来IP技术的日益成 熟,通过分组网络实现端到端融合语音、数据、视频的应用已经表现出在未来市 场越来越强的竞争力。人们意识到将分离的语音、数据、视频网络逐渐融合成集 多种业务予一体的、基于IP分组的、开放的一体化网络已经成为网络发展的大趋 势,我们称这种一体化的网络为下一代网(Next
Generation

Network,NGN)。

NGN是集话音、数据和多媒体业务于一体的全新网络。它基于软交换技术和 IP技术构建出分层开放的体系架构。运营商可以在业务的驱动下利用这个开放的 体系架构灵活实现自己的网络解决方案,并通过业务和网络的不断融合提高企业 的竞争能力。 随着下一代网络技术的不断发展,作为NGN的核心层,软交换(SoftSwitch) 并不仅仅将PSTN网络移植到IP网,实现voIP(Voice
over

IP),它向电信运营

商提供一个优秀的体系架构,将话音业务、视频业务、新兴的互联网业务整合到 一个统一的框架中。SIP协议就是其中的关键纽带“3。 SIP(Session
Initiation

Protocol,会话初始协议)在软交换中正扮演着越

来越重要的角色。SIP协议被应用于软交换与SIP终端之间,也被应用在不同软交 换网络互通中,还被应用于软交换与应用服务器之间,提供基于SIP协议实现的 增值业务。 第三代移动网络(3G)是移动通信领域的下一代网络。在这个网络的发展中, 软交换技术和IP技术得到了充分的体现。3GPP—R5版本采用了软交换技术和全IP 架构,并基于sIP开发出IMS(IP
Multimedia

Subsystem,IP多媒体子系统)体系,

用以适应移动多媒体通信网,SIP协议被作为IMS的信令控制协议。SIP协议将是 今后全IP多媒体通信网络和移动因特网业务结构体系的核心跚。

SIP协议最早由MMUSIC IETF工作组在1995年研究,由IETF组织在1999年
提议成为标准。sIP协议以其可读性、灵活性、良好的可扩展性和强健性在互联网 应用中得到越来越多的重视。

湖北工业大学硕士学位论文
1.2

sIP协议发展历史和研究现状

1.2.1发展历史
SIP最初作为多播骨干网(Mbone)设施和协议集中的一部分,在1996年被提出, 它是两个Internet草稿一一会话邀请协议(SIPVl)和简单会议邀请协议(SCIP)的 结合,SIP最初的Internet草稿由MarkHanley,Schulzrine和Scho—oler完成。 sIP最终在1999年2月被批准为标准协议,即RFC
254301。

由于网络环境以及相关多媒体技术的不足,在SIP协议首次提出的时候,仅 仅针对各种文本应用,随着技术的发展,并通过和IETF中IP电话工作组、IP网 中电话选路工作组等兄弟工作组配合工作,在sIP协议中大大加强了对多媒体通 讯的支持01。 sIP协议第一次得到商用是作为VoIP技术的信令控制协议。在巨大的市场需 求下,VoIP技术快速发展,展示了其在经济效益和服务发展上的巨大潜力。 如上节所述,如今,sIP在软交换、IMS中都扮演着关键角色,并为未来固定 和移动网络的融合提供了契机。

1.2.2研究现状
近几年来,sIP协议在北美及欧洲得到了迅速发展,已经开始为许多标准化组 织所接受和支持,如ITUSGI的PINT,SGl6的SIP-H.323互通组织、欧洲标准化 组织ETSITIPON的SIPBOF等,IMTE也成立了SIP工作组。 VoIP技术是NGN业务的开路先锋。目前己经许多家公司在开发生产支持sIP 的VoIP设备,SIEMENS、思科、微软等厂商都推出了基于SIP的解决方案,部分 厂商己推出基于sIP的VoIP服务器““。 目前支持SIP的产品,值得关注的、比较有代表性的SIP产品不少,有代表 性的有: (1)siemens:sieⅢens已经正式向业界推出了采用sIP协议的IP电话。该产 品完全符合SIP的要求,呼叫可以从PSTN、Intranet或者Internet发起。此类 电话产品,包括电话机、客户程序和通信服务器、网关都可应用于企业通信系统 和电信规模的IP电话系统。 (2)Cisco:Cisco将SIP功能嵌入了其接入服务器和系列路由器,这些嵌入 功能负责IP网络上语音和多媒体呼叫的信令控制。Cisco的SIP软件具备sIP协 议的固有优势,在个人移动服务上功能强大。



湖北工业大学硕士学位论文
(3)Lucent:Lucent实现了一套供第三方开发者采用sIP的可编程软件平台, 支持SIP全部标准服务和组成元素。 (4)Intelligence Interactive:美国13公司的第四代呼叫中心CIC/EIC是 目前世界上为数不多的全面支持sIP协议的厂商之一。 目前我国的IP电话体系采用的是H.323,国内如华为、中兴、uTStarcom、中 国电信研究院等通信设备商和运营商由于引入技术较晚,相应的产品应用很少。 但正在加大对SIP服务器设各的研发工作。 目前SIP产品的种类大致有以下四类:sIP网关、SIP组件(用户代理、服务 器)、sIP业务/服务、sIP安全(防火墙及NAT)。在与PSTN以及IN(智能网)互 通方面,国外的发展证明SIP网关、SIP组件(用户代理、服务器)产品已经具备 商用运行能为““;而后两者则处于研讨和试验阶段。随着NGN软交换和IMs的高 速发展,sIP也将面I临前所未有的发展契机。

1.3课题背景
本论文是从攻读硕士学位期间承担的郑州地税call center、BTTB(孟加拉国 家电信局)call center项目中得到启发所作的工作。两项目均是基于H.323的 VoIP技术构架的第三代callcenter系统,它的优点即是使用了分组交换,降低了 语音业务成本。但是,由于H.323业务承载能力单一,客户旺盛的业务需求让我 们不断遇到难题。这给我很深地触动。 SIP协议以其灵活、可扩展、开放的特点激发了Internet以及固定和移动IP 网络推出新一代服务的威力,具有强大的市场潜力,加之SIP协议由于其推出时 间不长,技术还不太成熟,因此很有必要对其进行理论和应用方面的研究。 尤为重要的是,目前在IP与现有智能网(IN)的互通体系架构以及在NGN的软

交换互通、3G全IP网络体系架构中,均需要采用sIP协议。sIP提供了一个开发
框架,可以开发大量应用于NGN领域的语言、数据、多媒体等综合业务。 sIP协议正处在一种不断扩充、发展和完善的过程中。也正因为如此,其中蕴 含了许多技术创新的机会。因此我们对其进行深入研究具有重大的现实意义。

1.4本文主要工作及组织结构
本文重点研究了sIP协议栈的设计和实现以及基于SIP协议的NGN/IMS业务 技术,其篇章组织结构如下: 第一章是对sIP协议在当前通信行业背景下的研究及发展现状的概述。 第二章重点研究了SIP协议理论。包括:SIP协议的功能、消息、实体和优良

湖北工业大学硕士学位藿曩
蓖∞剥匿薛礴蛀趔翩,芒管m蹬;F{艮基驯澜m嘲潲潇!廊雨群P;;一;窭;埘丽嗡甜 甜j浏葡蚀甥阿滢丛词荡谚哩蠢刚露面=吲紧i渤囔!i;÷=!耋晷器犁少o;S 娃扎虬墅静烂;憨裴驷葩H蚰甄雾疆符握岩襻矬识;蓦“霹钠麓慰鳓鐾鲢潍骑鲥
铂若z:

i|l}二目;.自i}}《}Il笔;墨T笪硒暾计思路和接鬻藩墩蔫追耋疆坶4:i㈡羹l轰 “替姓抛姥裂辱必融翟塑业鲳静耪钳;{§萼《≤iiii棼士癣协议的嚣撑髂业务{iii 釜弹坦哩l£d蛀N,‘§|≮二il|i|;2 d“K≤l兰搿;涔涂瑙鬈函增兽羁程掣;!争÷乓羽 叫霹重程一幺嚣娑:往纱吞徊嚣M确雾鞭懂瞄顷酿慨萄擂坩怖闭;升放的业务开 嚣拯臻瓮祈和比錾著茔蠢娃鞑醚聪。
ili

g;l—g:§§;封术翳差il:琴奶鼍∞鳕n|JM鞋对j禾来的工作讲行工展

望在爨!剿别嶷要静F窘《吾刺翻烈?稠骺蚰羹”撼捣蓥争。稿∞靠H≥||}|iii 珏墓篓@雅强建瓣珑擗;稚翦囊莩袭罂器釜女§主熟葡埔景j移纠引雕匪壤掣争∽ 霎啤舞翳瓣锱#楼j穗冀

湖北工业大学硕士学位论文

第2章s I P协议分析
本章主要对SIP协议知识体系进行深入介绍,包括:sIP协议的功能、消息、 实体和优良特性。 2.1 SI

P协议简介

sIP(session Initiation Protocol,会话初始协议)是IETF(Internet工程

任务组)提出的IP网络信令协议。sIP是应用层的协议,用来描述生成、修改和终 结多个参与者之间的会话“3。这些会话包括因特网多媒体会议,因特网(或任何IP 网络)电话呼叫和多媒体发布等。会话中的成员能够通过组播或单播联系的网络来 通信。SIP支持会话描述,它允许参与者在一组兼容媒体类型上达成一致。它同时 通过代理和重定向请求到用户当前位置来支持用户移动性。在具体实现上sIP协 议往往需要与RSVP、SDP、ISuP等一系列协议联合使用。 SIP协议在实际网络协议应用体系中的位置,如图2.1所示“1。

ALave7

丰媳寺幸章
TCP UDP


ILaver LLaver

I i

南【H兰。l南
图2.1 SIP协议栈的网络层次结构





PI丑ver

由上图可以看出,IP层屏蔽了底层的网络细节。SIP能提供自己的可靠性机 制从而独立于分组层,并且只需不可靠的数据包服务即可。SIP可典型地应用于

湖北工业大学硕士学位论文
UDP或TCP之上,通常使用5060的端口号。音视频媒体流一般由RTP(实时传送协 议)和RTCP协议负责实时可靠的传送。 2.2 SI

P协议功能

本质上,sIP提供以下功能“1: (1)名字翻译和用户定位:无论被呼叫方在哪里都能确保呼叫到达被叫方: sIP本身含有向注册服务器注册的功能,也可以利用其它定位服务器如DNS,LDAP 等提供的定位服务器来增强其定位功能。 (2)特征协商:SIP允许与呼叫有关的组(如多方呼叫)在支持的特征上达成交 集上的一致。例如每一方均支持G.711的语音编码,但视频编码不能取得一致, 则视频功能可以或不可以被支持。 (3)呼叫参与者管理:呼叫中参与者能够引入其它用户加入呼叫或取消到其 它用户的连接。此外,用户可以被转移或设置为呼叫保持。 (4)呼叫特征改变:用户应该能够改变呼叫过程中的呼叫特征。例如,一呼 叫可以被设置为“voice—only”,但是在呼叫过程中,用户可以按需要开启视频功 能。也就是说一个加入呼叫的第三方为了加入该呼叫可以开启不同的特征。 SIP在设计上充分考虑了对其他协议的扩展适应性。它支持多种地址描述和寻 址,包括EMAIL的形式用户名@主机地址,被叫号码@PSTN网关地址,以及普通电 话号码的形式(如:Tel:027—88437670)等。因为它与电子邮件地址的相似性,SIP uRLs容易与用户的电子邮件地址关联。 2.3 Sl

P协议消息

sIP采用和HTTP类似的“请求一响应”协议过程和消息结构。也就是说,sIP 也是一个请求/应答协议。当两个用户代理交换SIP消息时,发送请求的用户代理 (uA)就是用户代理客户端(uAc),而返回应答的用户代理则是用户代理服务器 (UAS)。SIP请求连同一个所触发的应答被叫做一个SIP事务。 SIP协议消息分为两类:请求消息和响应消息。 消息格式由一个起始行、若干个头字段,以及一个可选的消息体组成。 起始行用来标识消息类型和目标地址;头部用来携带消息参数:消息体用来 承载任意附加信息。其中消息体时可选项,一般采用sDP协议来描述。头字段与 消息体之间用空行进行分割。请求和响应消息格式如下: sIP消息=起始行[请求行l状态行]



湖北工业大学硕士学位论文
¥消息头部(一个或多个头部) CRLF(空行) [消息体]

在以上消息格式定义中,“{”表示该消息头部可包含一个或多个;“[]”表示
该参数可选;以上消息的每一行都必须使用回车换行字符(cRLF)来表示行终结, 并规定即使消息中未包含消息体可选项,空行也不能省略。 下面我们具体分析格式与类型。

2.3.1起始行请求/响应消息
在起始行中标识了消息类型,消息分为请求消息和响应消息。 2.3.1.1请求 sIP请求的开始行的格式包括三部分:方法名、一请求URI、协议版本,三者 通过一个空格分开,结束是回车(用cR表示)换行(用LF表示)。除了一句话结束 的CRLF,不允许有CR或者LF。下面是请求行的表示方法:
Request—Line=Method SP Request—URI SP SIP—Version CRLF

例如:INVITE sip:bob@biloxi.comSIP/2.0 Method:RFc3261”1版本的SIP协议定义了六种方法: 表2.1 SIP请求方法 SIP请求方法
INVITE ACK BYE OPTIONS CANCEL REGISTER

说明 请求发起一个会话 确认一个会话已经启动 请求终止一个会话 向一台主机查询它的处理能力 取消一个悬着的请求 将用户的当前位置告诉一个重定向服务器

INVITE:该方法邀请其他用户加入会话,相应的消息体是对会话的描述,通 常是采取与sIP配套的sDP协议。描述的内容包括主叫可以接收的媒体类型,可 以发送的媒体类型以及相关参数。INvITE也可以修改一个已经存在的会话参数。 BYE:当UA客户机准备结束一个呼叫时可以向服务器发送BYE请求。主叫被 叫双方都可以发送请求,相当于电话系统中的挂机操作。

湖北工业大学硕士学位论文
AcK:AcK是【jAc在接收到lNVITE的最终响应之后发出的确认,并且ACK只与 INVITE捆绑使用。ACK请求消息也可以包含消息体。 cANCEL:cANCEL请求可以取消一个尚未完成的请求,此时邀请cANcE请求消 息与将被取消的消息具有相同的ca卜lD,To,From,Cseq标题字段.uAC和大量服务 器都可以发出cANcEL请求。虽然cANcEL请求可以取消ACK和CANcEL以外的其他 请求类型,但是通常只是用来请求INVITE请求。 REGIsTER:UAc利用REGIsTER请求消息将To标题字段的地址登记到定位服务 器中。UAc在开机启动以后将REGISTER请求以组播方式发出。登记服务器的每个 登记记录都有一个对应的有效期,一旦到期,记录就被删除。另外,一般登记请 求需要鉴权。 OPTIONS:OPTIoNS请求用于查询用户代理服务器(User
Agent

Server,uAS)

的能力。UAS在响应消息的Allow标题字段中指明它能支持的方法。代理服务器和 重定向服务器只将该请求消息前转而不是指示它们自己的能力。 其他SIP扩展请求方法见相关RFC文档。
Request—uRI:The

Request—URI是SIP或者SIPs URI或者一般URI(RFc2396)。

它指示用户或者服务器地址。它不可以包含保留的或者控制字符,也不可以使用 “<>’包括。sIP组件也可以支持其他的Request~uRI方案(除了sIP和SIPS), 如“tel”uRI方案(在RFC2806)。SIP组件可以把非sIPURI翻译成SIP uRI,或者其他。 SIP—version:请求和响应的消息包括正在使用的sIP版本,当前的版本是2.0,
URI,sIPs

用SIP/2.O表示,依照协议,应用发送SIP消息必须包括SIP—Version是“sIP/2.O”。
SIP-version字符串是大小写不敏感的,但是最好是大写。
2.3

1.2响应 SIP响应开始行也是状态行,其格式包括协议版本,一数字状态码(其后有文

本短语描述),三者分别通过一个空格分开,结束是CRLF。除了一句结束为CRLF, 不允许有CR或者LF。
Status—Line=SIP—Version SP Status—Code SP Reason—Phrase CRLF

例如:SIP/2.O

10 Trying

状态码Status~Code是一个三位整数,说明尝试理解和处理请求的结果。 Reason—Phrase是对状态码的一简单的文本描述。Status—Code是自动操作的,而 Reason—Phrase是为用户服务的,客户端不需要检测或者显示Reason—Phrase。 当然,Reas。n—Phrase也可以自己设定,在请求的Accept—Language的标题字

湖北工业大学硕士学位论文
表2.3 SIP消息头 消息头字段 阡∞ % ∞u
CSeq Max—Forwards Via Contact m

描述 指示请求发起方的逻辑标识,可能是用户的注册地址 请求消息的目标地址,指定请求消息的逻辑接收者 用来将消息分组的唯一性标识 用于标识事务,并对事物进行排序 限定一个请求消息在到达目的地之前允许经过的最大跳数 存储所有处理请求的代理地址,包含了请求所选用的路径 指定一个sIP URL,后续请求可以用它来联系到当前uA

2.3.3消息体
请求可能包含消息体信息,除非特别指出,消息体的解释取决于请求方法。 对子响应消息,请求方法和响应状态码决定于消息体的类型和解释。所有的响应 都有可能包含消息体。 消息体是用来描述将要启动的会话的(如:在多媒体会话中用这种方式可以确 定音频和视频的编码类型,抽样率等),或者说是用来包含在会话中所相关的不透 明的文本或者二进制信息。一般的消息主体使用SDP协议,其细节见RFc
2.3.3.1 SDP 2327。3。

Mbone是互联网的一部分,支持IP多播,并因此允许高效的多对多通信。它 被广泛应用于多媒体会议中。这样的会议通常有这样的属性:会议成员间紧密的 协调并发是非常必要的:用户只需要指定会议的多播组地址和会议数据流的uDP
端口‘蚓。

会话目录帮助公告会议的会话,并且传达相应的会议建立信息到可能的参与 者。SDP就是被设计来传达这样的信息给参与者的。SDP纯粹只是会话描述的一种 格式一一它并不结合到传输协议中去,只是为了适当地使用不同的传输协议而已, 包括会话通告协议(Session
Announcement

Protoc01.SAP),SIP,RTSP,电子邮

件使用的MI淝扩展以及HTTPⅢ.
sDP是为通用的目的而设计的,所以可以在更广阔的网络环境和应用中使用, 而不仅仅是多播会话目录中。但是,它不是为支持会话内容或媒体编码的协商而 准备的一一这被看作是会话描述之外的范围了”1。

湖北工业大学硕士学位论文
sDP是适用于描述多媒体会话的协议。用法的一个普通方式是:用户使用sAP 协议,周期地多播一个宣告数据包到一个知名的多播地址和端口,以宣告一个会 议会话。 SAP包是如下格式的UDP包:
SAP header Text payIOad

头结构是sAP的头。Text payload是一个sDP会话描述.它总长不能大于1Kb。 如果由sAP来宣告的,单个包中只允许放一个会话宣告。 传达会话描述的两种方法包括电子邮件和万维网。不管是电邮还是wWW,都要 用到MIME的内容模型“aplication/sdp”。这就使得会话的加入的应用可以通过 www用户或邮件读者,以一种标准的方式字段启动。 2.4 sI

P协议实体

SIP中有两类实体,SIP uA(用户代理)和SIP网络服务器。UA是呼叫的终 端系统组件,而sIP服务器是处理与多个呼叫相关联信令的网络设备。它们共同 来实现多媒体通信的信令控制功能。
SIP UA

是呼叫的终端系统元素,本身包含一个用户代理客户端(UAc:User Client)和一个用户代理服务器(uAS:User 发送,UAS负责呼叫的接收。 SIP服务器主要包括代理服务器、重定向服务器和注册服务器等。 (2)代理服务器(SIP Proxy)
Agent

Agent

Server)。其中UAC负责呼叫的

负责接收请求,并将其转发给下一跳服务器或者是被叫的用户代理服务器。 在网络中SIP请求可以经由多个代理服务器。 (3)重定向服务器(Redirect server) 用来从uAc接收请求,并将请求中的sIP uRL映射到零或者多个下一跳服务 器的地址,并将这些地址以响应消息的方式告诉UAC。UAC根据收到的新地址,重 新向下一条服务器发送请求消息。值得注意的是,重定向服务器不能发送任何请 求,同时也不能接收通话请求。 (4)注册服务器(Registrar) 负责接收客户机的注册请求,完成用户地址信息的注册。

湖北工业大学硕士学位论文
代理服务器,sIP代理会先接收uAl的请求消息,并立即向主叫返回状态码为100 的临时响应消息,说明该请求正在处理中。请求消息到达被叫uA2后,UA2并也会 向SIP代理返回100Trying的临时响应,表明消息正在处理。接下来uA2经过sIP 代理向主叫uAl回送180临时响应消息,表示已找到了一个被叫目前可达的地址, 并且振铃提示被叫用户;同时主叫侧也可听到回铃音。如果被叫摘机,uA2会向 UAl返回状态码为200的响应,表示被叫己经同意加入该会话。而uAl会向UA2发 送一个AcK确认消息,表明uAl已收到uA2对Invite请求的最终响应。
UAl

SIPPmxv

UA2

(1)rNVITE (2)INVITE


(3)100Trying

(4)100研ing
.(5)180

振铃

RiIlg吨
用户应答

Il

回铃音



(6)180 RiIlgh培 (7)2000K (8)2000K (9)AcK J 会话

I用户挂机l

(10)BYE (11)2000K

图2.3 SIP协议基木呼叫流程 这是一个典型的SIP三次握手过程,表明一个成功的会话建立。接下来uAl 和uA2就开始了通话,媒体流一般用RTP来传输。当一方挂机离开时(如uAl),会 向另一方(如UA2)发送BYE请求消息,uA2收到该请求后应立即停止向uAl发送媒 体流,并返回200K成功响应,表示该会话结束。 2.5 SI

P的优良特性

2.5.1

slP与H.323的比较优势

目前,最常用的两套voIP信令控制协议是H.323和sIP。前者是由国际电联

湖北工业大学硕士学位论文
提出来的,它试图把IP电话当作是传统电话的一个扩展,只是传输方式由电路交 换变成了分组交换。而sIP侧重于将IP电话作为Internet上的一个应用,但增 加了信令和QoS的要求…。 与H.323相比,sIP有很多优点: (1)sIP是基于文本的协议,消息的词法和语法分析就比较简单。 (2)sIP的呼Ⅱq建立时间比H.323短。 因为SIP会话请求过程和媒体协商过程同时进行;而在H.323中这两个过程 是分开进行的。 (3)SIP的扩展性比H.323好。 为实现新功能,sIP只要充分利用已定义的头部,对其进行简单扩展即可;而

H.323必须定义专门的协议如H.450.1、H.450.2和H.450.3等。
(4)SIP可用于分布式网络体系中。 H.323进行集中层次式控制,便于计费和带宽管理,但是当用于控制大型会议 电话时,其执行会议控制功能的多点控制单元很可能成为瓶颈。而sIP类似于其 他的Internet协议,具有分布式的组播功能。
2.5.2

SlP在未来网络中的技术优势

sIP协议的设计方法和结构特点使它在灵活提供多媒体增值业务方面具有众 多的技术优势。 (1)首先,sIP地址的定义类似eⅡlail,每个用户可用结构化的uRL标识,常 见形式为sip:user@company.com,其中user可以为用户名或者电话号码。这样, SIP既采用了IP网络中广为使用的URL地址形式,又包容通信网中广为使用的 E.164号码,且可重用Internet中的DNs技术进行地址解析,因此,易于实现富 有市场前景的基于_Ii『eb和传统电信融合的多媒体业务。 (2)其次,sIP沿用Internet协议的设计原则,采用简捷的请求一响应模式和 文本消息形式,协议可读性强、设计实现简单,有利于开发低成本的多媒体终端。 尤其是基于文本的、有语义内容的描述行非常适于web化处理,甚至可以直接用 xML描述和解释执行。因此,不少基于web的网络融合业务,如点击拨号(CTD)和 点击传真(CTF)等都以SIP为基础。 (3)sIP和sDP相结合,还可以使参加通信的终端以一

湖北工业大学硕士学位论文

第3章SIP协议栈的设计与实现
SIP协议栈是实现SIP各种应用的核心。实现包括了设计、编码、测试这一整 个过程,当然这都是一个迭代的过程,每个步骤之间并没有一个明确的秀限,限 于篇幅,本章主要介绍了协议栈的设计,包括协议栈的结构设计,类(接口函数) 的设计,线程的并发处理。我选用了标准c++作为实现语言。 SIP协议的各种实体包括用户代理,代理服务器,重定向服务器,注册服务器 等,它们通过网络传输信令均以SIP协议栈为基础。所以SIP协议栈的设计也就

关系到各类实体的功能,也与其可扩展性、安全性、可靠性等优良特性的性能息
息相关。同时SIP协议栈也应该具有操作简单,处理智能的特点。 3.1

SIP协议栈的总体结构
SIP协议栈在网络协议体系中的层次结构

3.1.1

SIP是应用层协议,其在实际网络协议应用体系中的位置“1如下:

ALaye

专丧鼻寺专章
TCP UDP


ILavcr LLayer

l l

[肿I

IIHH,∞1[Hszs l



t!

PLaye/

图3.1 SIP协议栈的网络层次结构 上图涉及的技术包括:

16

湖北工业大学硕士学位论文
(1)信令技术:包括SIP(应用在TCP和UDP的上层)和H.323(包括 H.245,Q.931,H.225等相关协议),以及用于连续流媒体的实时同步和传输控制的 RTSP协议。 (2)服务质量:包括RSVP和用于服务质量监控的RTCP. (3)媒体传输:主要是实时传输技术RTP。 (4)传输协议:包括TCP和UDP,这是一切信令和媒体实现其在网络上传送的 基础。 (5)网络层:就是现在应用广泛的第四版网络协议IPv4和将要广泛应用的下 一代网络协议第六版网络协议IPv6。 (6)链路层和物理层:包括物理层为同步光网络技术(Synchronous
Optical

Network,’Sonet)或者调制解调标准为V.34的点对点链路协议(Point—to—Point Protocol,PPP),物理层为异步传输模式(Asynchronous
Transfer

Mode,ATM)的

链路接入适配层为ALL3/4或者ALL5协议,以及以太网(Ethernet)等等。 目前IP电话的主要信令协议是H.323和SIP,本文研究的对象的核心就是SIP。
3.1.2

S1P协议栈实现机制

由上图,我们分析SIP协议的实现机制如下: SIP是一个分层结构的协议,这意味着它的行为根据一组平等独立的处理阶段 来描述,每一阶段之间只是松耦合。协议分层描述是为了表达需要,从而允许功 能的描述可在一个部分跨越几个组件。 并不是协议规定的每个组件都包含所有各层。而且,由SIP规定的组件是逻 辑组件,不是物理组件,一个物理实体可以包含不同的逻辑组件。 SIP的最底层是语法和编码。它的编码使用增强Backus-Nayr形式语法(BNF) 来规定。

第二层是传输层。它定义了网络上一个客户机如何发送请求和接收响应以及
一个服务器如何接收请求和发送响应。所有的SIP组件包含传输层。 第三层是事务层。事务是SIP的基本组件。一个事务是由客户机事务发送给 服务器事务的请求(使用传输层),以及对应该请求的从服务器事务发送回客户机 的所有响应组成。事务层可以进行应用层重传,响应到请求的匹配,以及应用层 超时等的处理。任何用户代理客户机(User
Agent

Client,UAC)完成的任务使用

一组事务产生。UA和有状态的代理都包含一个事务层。无状态的代理不包含事务 层。事务层具有客户机组成部分(称为客户机事务)和服务器组成部分(称为服务器 事务),每个部分代表有限的状态机,它被构造来处理特定的请求。

湖北工业大学硕士学位论文
事务层之上的层称为事务用户(Transaction User,TU)。每个SIP实体,除 了无状态代理,都是TU。当一TU希望发送请求,就生成一个客户机事务实例,向 实例传递请求和IP地址端曰,并用来发送请求的传输机制。一个TU既能生成客 户机事务也能够删除它。当客户机取消一个事务时,它请求服务器停止进一步的 处理,将状态恢复到事务初始化之前,并且生成特定的错误响应到该事务。这由 CANCEL请求完成,它构成自己的事务,但涉及要取消的事务。 SIP提供它自己的可靠性机制从而独立于分组层,并且只需不可靠的数据包服 务即可。SIP典型地应用是在UDP或TCP之上。
3.1.3

SIP协议栈设计框架

SIP作为一种基于文本的应用层信令协议,与HT儿十分相似,同时也是通过
网络来实现信令传输的,因此,SIP的实现首先要进行网络通信。其次要对传送的 文本格式的消息进行词法分析。最后,各种实体还要实现对信令消息进行管理。 这是三个基本的考虑。 SIP协议的一个重要特点是呼叫的的状态性,因此SIP协议的实现还得考虑对 呼叫的状态维护。虽然SIP是独立于传输层协议的,但为了保证呼叫建立的快速 性,以及考虑到SIP消息一般比较短小的特点,SIP消息默认情况下是基于UDP传 送的,所以SIP的实现还得在应用层保证消息的可靠性。 因此,SIP协议栈的实现包括IP网络通信,消息的词法分析,消息管理,消 息的可靠性和状态性,它们是各种高层应用实体的基础。 我设计了如下协议栈的结构:

图3.2 SIP协议栈设计框架 SIP协议栈采用的是分层设计。分为协议数据层和通讯层(与传输层交互)。和

湖北工业大学硕士学位论文
传输层协议栈交互的是SIP协议栈中的负责通讯传输的通讯层,最上面的一层是 负责协议数据消息的消息触发和解析协议数据层。 SIP协议栈中协议数据层有两个组件,分别为构造器和分析器。构造器 (Constructing)是负责协议消息触发,也就是根据通讯状态决定使用什么SIP请 求,和根据收到的请求决定发送什么SIP响应。分析器(Parser)是负责SIP消息 的构建和解析。 通讯层分为两个部分,一部分负责正常的通讯过程,另一部分负责错误处理。 正常通讯部分,有SIP消息传送器(Transaction)和传送消息数据记录 (TransactionDatabase)。其中消息传送器包括发送部分(Transceiver:TX)和接收 部分(Transceiver:RX)。传送消息数据记录是用来管理当前正在进行的和刚刚完 成的SIP事务。共有两个数据记录,一个是匹配请求的响应的记录,另一个是匹 配响应的确认记录。 错误处理部分,主要是用来处理在网络中传输时出现的丢包或包的重复接收。 共有两个组件分别处理这两种情况。重发器(Retransmiter)负责如果正确的响应 或ACK没有收到,则重传这个消息。重发器会一直存在整个的消息流之中的,只 有出现问题时才会被触发,触发后去数据记录中查找所需要响应的消息,重发它。 过滤器(Filter)负责过滤掉外部实体发来的重复消息,这个过程是这样的,当传 送器收到一个消息后,它会查询数据记录,看看这条消息是否是一个重复的消息, 若是,则过滤掉它。 传输层使用的是UDP协议,对TCP协议也有支持。UDP是一个不可靠连接,所 以SIP协议一定要有错误处理部分,用来处理网络传输中出现的丢包或包的重复 接收,理想的情况应该是在传输层就能可靠的传输。TCP虽然能保证可靠性,但 TCP的开销太大了,TCP能严格保证数据传送的顺序,但有的时候不需要这么严格 的保证数据传送的顺序,只要数据能可靠传到对端即可。TCP是面向流的,SIP是 面向消息的,所以SIP协议栈必须在流中标出消息的边界。 对如上协议栈组件交互作用即可理解为: Constuctor触发一个SIP呼叫,则Parser会构造一个SIP消息由 Transceiver:TX发送给传输层,同时这条消息会存储在Transaction DataBase中, 并启动定时器,如在一定的时间里未收到响应或确认则Retransmitter会重发这 个消息。 传输层接收来的数据包,会把UDP携带的字符串交给Transceiver:RX处理, Transceriver会触发Filter检查该消息是否重复,若不是的话交给Parser处理, 如果解析出是SDP消息,则交给SDP协议栈处理,如此循环来完成SIP信令的交

19

湖北工业大学硕士学位论文
互过程。 VC.NET是微软的VS.NET的一部分,它是一面向对象的,支持多线程的,又易 于实现网络通信的应用广泛的开发工具…。我即是选用它来实现基本SIP协议栈。

3.2消息生成器和处理器设计
在SIP协议中,网络中传输的所有信令均为SIP消息的形式存在,而SIP消 息的编码形式是符合RFC2234语法规范的扩展巴科斯范式(RFC2234--Augmented
BNF for Syntax

Specifications:ABNF)的。这个标准已经成为Internet技术规

范的标准格式语法,具有简单性,紧凑性。详细情况参考RFC2234。 SIP消息是完全符合ABNF编码的,所以SIP消息的编码与解析要完全根据标 准即可。相比之下,对SIP消息的编码则要比对响应的消息进行解析简单的多。 一般来说,有比较专业的公司专门开发相应的语法分析器。可见,SIP消息的解析 比较复杂。而这却是整个SIP协议栈开发的基础,也是决定SIP协议栈的效率的 重要组成部分。SIP消息的编码与解析是SIP协议栈的核心,是实现其他实体的基 础。 由本文的2.1.3可知,消息由开始行,标题字段,消息体组成,标题字段和 消息体之间用一回车换行隔开。消息体的编码与解析是根据消息体的格式来实现 的,没有具体规定,本文是关于消息体为SDP的编码与解析。 对消息的解析过程如下: 当潍接收到一个SIP消息后,首先对字符串形式的消息进行整体的判断和分 解。通过对行结束符以及回车换行的识别,判断消息是否合法。如果合法,再将 消息分成三个部分分别进行判断和解析。先是对开始行进行判断,以判断所收到 的是请求消息还是应答消息:然后对开始行进行解析同时提取相关信息(SIPURI或 应答码);随后对各个标题字段进行解析,提取并复制相关信息;当遇到空行(CRLF) 后,开始调用对消息体的操作。这三项操作所得到的信息被传递给相应的事务。 当uA想发送一个SIP消息时,被建立的事务根据用户所选定的方法、键入的 地址等信息,通过相应的接口来构造出SIP消息的各个部分,最后将消息的结构 信息转化为字符串,传递给传输层发送。 由于编码比较简单,下面主要介绍SIP消息的开始行、标题字段和SDP的解
析。

湖北工业大学硕士学位论文
3.2.1开始行的解析
为了表述方便,使用流程图来表示开始行的解析过程。(图3.6) 在图中,在SIP请求中,有关于SIPURI的解析,在此有必要对SIPURI进行 解释。SiP URI其格式如下:
sip:user:password@host:porti uri—parameters?headers

user:注册在该主机上的特别的标识资源。主机一般指的是~个域。 “userinfo”在user区域里包含着,它们的后面是@,“userinfo”是可选的,有 @就必须有user
field.

如果主机可以处理电话号码,如网络电话网关等可以出现在user区域。 password:它与user紧密相关。SIP和SIPSURI语法允许其出现,但是不提倡, 因为在此处传输认证信息的话,而且还是明文,太不安全了。

host:主机提供SIP资源。主机部分包括域名或者是数字的IPv4或者IPv6的
地址。 Port:是指请求发送过去的端口号。

湖北3-业大学硕士学位论文

图3.3开始行的解析流程图 URI参数:影响从URI构造请求的参数。 URI参数加在主机端口组件后面,并且使用分号分开。 即使可以在URI内包含任意数目的URI参数,但是给定的参数名字不能多次 出现。 这个可扩展机制包含传输方式,maddr,ttl,user,method和lr参数等。传 输方式参数决定用来发送SIP消息的传输机制。SIP可使用任何网络传输协议。参 数名字定义有UDP(RFC 768),TCP(RFC 761),and
SCTP

RFC(2960)。对于SIPS

URI,

湖北工业大学硕士学位论文
传输参数一定指示一可靠的传输。 maddr参数指示本用户要联系的服务器地址,超出了从主机域的任何地址。当 maddr参数存在时,URI的端口和传输组件应用于指示maddr参数值。描述的是适 当的传输,mad:和主机端口等来获取发送请求的目的地址,端口和传输方式。 maddr域作为松散路由的简单形式使用。允许URI指定一Proxy去遍历目标的 erl~route.强烈反对持续使用maddr参数(也不赞成开通此项功能)。应该使用本文 档的路由机制,如果需要的话建立一个预存的路由设置。这提供一个完全URI来 描述遍历接点。 ttl参数是在maddr是多播地址并且传输协议是UDP时来决定UDP多播分组的 生存时间时一定使用的。例如:使用多播239.25.25.1其ttl为15指定一呼叫
al

ice@atlanta.com,其URI如下:
sip:alice@atlanta.com:maddr=239.255.255.1:ttl=15

有效的电话用户字符串设置是有效用户字符串的子集。存在的用户URI参数 用来区分电话号码和看起来有些象电话号码的用户名。如果用户字符串包含一个 电话号码格式象电话用户,用户参数“phone”应该存在。甚至没有这个参数,SIP
和SIPS URI的接收者也可以解释pre一@part作为一个电话号码(如果在用户命名

名字空间的本地约束允许的话)。 从URI构造的SIP请求的方式可能使用方法参数来指定。 当存在1r参数时,为本资源负责的组件实现路由的机制(本文如此规定)。这 个参数将用在URI代理中放到Record-Route字段中并且可能出现在一个预存的路 由设置的URI中。 这个参数用于系统实现严格路由机制的RFC2543。1,实现向后兼容。组件准备 发送基于URI并且不包含本参数的请求可以假定接收组件实现严格路由并且重写 格式消息来保护在Request-URI的信息。 因为uri参数机制是可扩展的,所以SIP组件在遇到自己不能理解的的任何 url参数时,要不动声色的忽略它们。 Headers:包含在由URI构造的请求中的标题字段。

在SIP请求中的标题字段可以在一URI中使用“?”机制来说明。标题名和值
是成对独立编码的(hname=hvalue)。特别的hname“body”指相关的值是SIP请 求的消息体。 在Contact字段的URI根据标题字段出现的情况有不同的约束。应用于消息 的一种设置是建立和维护对话(INVITE和它的200(OK)响应)。其他应用于注册和 重定向消息(REGISTER和它的200(OK)响应,对于任何方法的3x类的响应)。

湖北_7-业大学硕士学位论文
更详细说明见RFC3261‘‘‘和RFC2396“…。
关于SIP

URI的解析的方法流程图3.7

图3.4 STP URI的解析流程图

3.2.2标题字段的解析
标题字段的解析,无论是请求还是响应,是采用相同的方法,这样使程序的 兼容性和重用性好。RFC 3261定义了44个标题字段,形式上各有不同,所以,不 同的标题字段有不同的解析方法.要具体问题具体分析。本文只讨论在总体是如

24

湖北工业大学硕士学位论文
何处理标题字段的。所有的标题字段的内容封装在一个标题字段的容器内,标题 字段内容的指针之间使用一个队列来指示,最后一个指针的值为空的话,意味着 到了最后一个标题字段的位置了。下面是标题字段域的解析的流程图。
得到所有SIP标题字段文本数据

能否取得一行文本数据 ———~——/

!L一

结束返回

Y上 .—————\ ~l要兰二兰!l
继续

∑—-J结束返回

盟I

由第一空白确定标题字段名

根据标题字段名分别解析对应标题字段

插入标题字段链表

图3.5.标题字段的解析流程图
3.2.3

SDP的解析

SDP是独立于SIP的协议,是适用于多媒体会话的会话描述协议。它在应用中 经常作为SIP协议的消息体存在。在进行SDP解析时,相应的SIP消息的 Content—Type标题字段行的字符串值应该为:Content—Type:application/sdp。 这时才能对消息体进行对SDP的解析。下面是关于SDP解析的的流程图:

湖北工业大学硕士学位论文

图3.6 SDP的解析流程图 这样,对会话的媒体的描述也就可以通过对SDP的解析得到比较完整的信息
了。

3.2.4接口设计
3.2.4.1

slP消息类

SIP消息相关的类可设计如下

湖北Z-业大学硕士学位论文



图3.7 SIP消息类关系图

SipMsg是所有sip消息的基类,这是协议栈中最顶层的类,在这个类中几乎 封装了协议栈中的主要功能:消息的构造、解析,发送;对不可靠传输的错误处 理和与消息体的交互等功能。这个类中调用了SIP协议栈中的其他类(例如后面 的消息解析类),有两个类从它继承而来:RequestMsg和StatusMsg。鉴于此类的 重要性,我在附录中给出了代码。


(1)SipMsg:该类是所有类型的SIP消息的基类,包含了所有类型的SIP消 息的所有的标题字段类型的生成、处理和解析。 (2)StatusMsg:它是SipMsg的子类,表示所有响应消息的部分功能的实现。 (3)SipCommand:该类是SipMsg的之类,同时又是所有SIP请求消息的基类。 它的之类有AckMsg,InviteMsg,RegisterMsg等请求消息。 (4)ByeMsg:SipCommand类的子类,是SIP请求消息的代表类型。

3.2.4.2消息解析类
协议栈使用了一个lazy分析方案,所谓Lazy分析方案就是对收到的消息不 作详细解析,而是等到系统需要里面的数据时,才做详细的解析。这样,当原始 的SIP消息收到后,消息只是分解为关键字key和值value的对应组合,key就是 SIP头域的名称,Value就是未解析的该头域字符串。sipRawHeaderContainer对 象里以向量vector的形式存储着key—value组合,其中key是枚举类型包含所有 的SIP头域,value是SipRawHeader对象。静态函数接口SipMsg::decode0可以 用来解析SIP原始消息,构建Sipmsg对象。SipMsg对象提供了接口访问其中的各 个独立的SIP头域对象。当要求取得头域中的信息时,代表头域的相应Header对

象才会被构造出来。

湖北工业大学硕士学位论文
例如,如果应用程序需要Via头域的信息,但是发现Via所对应的value还 未被解码,这时sipvia对象就会被构造,并把Via的值解析出来。任何对头域成 员的访问,都会导致该头域的值被解析出来。协议栈可以以一种严格的模式运行, 即一发生解析错误,就会抛出异常,用设置环境变量IPPARSER 方法实现。 在协议栈中的SIP头域的类很多,在SIP协议中的每个头域多有对应的一个 类,头域类实际就是数据容器,里面存贮的是类名所对应头域的字符串。所有的 头域类都是从SipHeader类中继承而来,一共有51个类。例如:SipTo,SipVia, SipAcceptEncoding,SipContentType等。
STRICT

MODE:l的

3.3消息收发器的设计
消息的传输使用的是一个收发器模块来实现的,它的作用一是事务管理,二 是通过应用层实现独立发送和接收消息。

3.3.1模型设计
消息的发送操作是异步的,而接收是阻塞型的,超时设置可以由用户来定。 在静态模式下,收发器只要在业务资料库里有一个消息,就要维护业务的软状态。 如果一长时间没有对应的消息,要取消业务的话,等待消息的时间可以在应用时 来设定。作为业务管理的一部分,收发器要过虑无效的消息,重发的消息和没有 对其响应的消息。 为了实现其功能,收发器应该设计成包含如下五个主要的组件: (1)发送请求资料库:此部分管理发送请求业务(作为UAC的应用)。管理系 统级别的消息到此下行接口。 (2)发送响应资料库:此部分管理发送响应业务(作为UAS的应用)。管理系 统级别的消息到此上行接口。 (3)UDP传输器:此部分提供UDP传输栈的详细接口。因此,它仿真UDP消息 的重发,并发送和解码接收到的消息。 (4)TCP传输器:此部分提供TCP传输栈的详细接口。 (5)业务收集处理器:它负责销毁到期的业务。 收发器层对外主要有三个接口:发送请求、发送响应和接收消息,它是对消 息进行操作。当然,如果需要更加多的功能的话,接口则需要更多。在收发器内 部最多可以有五个线程。他们分别是:UDP接收器线程、UDP发送器线程、TCP接

湖北_T-业大学硕士学位论文
收器线程、TCP发送器线程和业务收集处理线程。它们各负其责,自动处理自己的 业务,比较智能。 下图是收发器工作原理示意图:

图3.8收发器工作原理示意图 其中的UDP发送器内包括消息的重发和超时处理等。 在上图中,~个消息隶属哪一个事务,需要从消息中找出相应的标识。这就 需要设计一个表示SIP消息状态的数据结构。这个结构可以分三层: 第一层:根结点,由[To,From,Cal—Id]等组成,表示该层相同则属于同一 个呼叫。 第二层:由[CSeq,top
via branch

tag]加根结点,用消息的这些属性来表

示呼叫消息顺序,呼叫的修改,呼叫的分叉等. 第三层:本层是基于[Cseq METHOD标识],用来区别INVITE和CANCEL的响应。 从另一方面讲,不同的资料库模块对会话状态的维护在同一层次的消息的标 识的处理也不同。例如发送请求和发送响应资料库模块对标识的第一层的处理不 同:发送响应资料库模块主要记住发出响应的To标识,丢弃进入不匹配的请求, 忽略From标识,响应的该标识是直接从请求中复制过来的。而发送请求资料库模 块则要记住发出匹配进入的响应的请求的From标识,丢弃进来Ⅱ向应的T0标识。 资料库模块的主要功能是过滤重发的消息(从UDP传输过来的),并且完成消

湖北工业大学硕士学位论文
息的排序,这样可以按顺序存取呼叫业务的相关信息。

3.3.2接口设计
在前面模型设计的基础上,开发出SIP消息的收发器。它应该主要包括传送 类和传送缓冲类。 3.3.2.1传送类
(1)class SipTransceiver

包含着SipUdplmpl类和SipTcpconnection类,从设计模式的角度来说, sipTransceiver是一个接口类,真正发送消息的是SipUdpImpl类或 SipTcpCorgnection类,所以作为它的属性,提供了下列的函数接口用来发送SIP 消息: SendAsync(SipMsg&) SendAsync(Sptr<SipMsg>) SendAsync(SipMsg,char*host,int port) SipTranceiver对象根据SIP消息里请求的起始行决定使用SipUdp_Impl还是 使用SipTcpConnection发送SIP消息到请求起始行中目的地址。如果起始行中给 定了主机地址和端口号,则消息直接发送到目的地址。这个函数里实际封装着 send0函数。
SendReply(Statusmsg*msg)

根据第一个Via头域中定义的传输层的协议和主机地址及端口号发送一个应 答消息。 (2)class
SipUdp—Impl

实现了使用UDP协议接收和发送的通讯功能。收到一个SIP消息队列
Fi fo<SipMsg)的对象触发,初始化该对象。然后产生两个线程,一个是接收线程,

另一个是发送线程。接收线程接收网络上发来的UDP包,调用SIP parser,构造 出SipMsg对象,然后把这个对象放入到接收消息队列Fifo<Sipmsg>hb。

发送线程等待经过网络使用UDP发送发送消息队列Fifo<SipMsg>,调用
SipUdplmpl中的send 0函数发送存储在发送消息队列Fifo<SipMsg>h6的对象。 SipUdp_Impl类也实现了SIP消息的重传任务的业务逻辑。 主要的方法: SipUdp—Impl(Fifo<SipMsgContainer{>丰fifo,int
‘。SipUdp_Impl 0 port=SIP

PORT)

30

湖北工业大学硕士学位论文
int udpSend(SipMsgContainer*msg) void send(SipMsgContainer*msg,const Data&host=”,const Data&

port=’5060”)
static void static void static

reTransOff() reTransOn0
void

setRetransTime(int max=retransmitTimeMax)

initial



retransmitTimelnitial.int void

setRandomLosePercent(int percent)

void printSize() Data getDetai 1 S



const

(3)

class SipTcpConnection

实现了使用TCP协议接收和发送的通讯功能。和SipUdp—Imp类似,也有发送 和接收两个线程。保存一个连接数据信息,以维护两个SIP实体间的连接。 3.3.2.2传送缓冲类 当发送或者接收到一个SIP消息时,协议栈都会使用传送数据记录来把传送 事务的状态存储在内存中。这时,协议栈维护着两个数据记录: (1)SipSentRequestDB(发送请求的UAC数据记录): 由sipTransceiver初始化,管理应用软件中的UAC的消息传送事务。也就是 说这个数据记录是负责保存客户端的SIP消息的,主要是发送的SIP请求,和接 收的的SIP响应。 (2)sipSentResponseDB(发送响应UAS的数据记录): 也是由SipTransceiver初始化,管理应用软件中的uAS的消息传送事务,也 就是说这个数据记录是负责保存客户端的SIP消息的,主要是发送的SIP请求, 和接收的的SIP响应。

3.3.3多线程并发处理
协议栈中所维护线程的主要具有的功能有:发送和收消息,垃圾回收,会话 定时器,主要用于SNMP消息的呼叫信息收集。 下面是SIP消息收发器的多线程方式的并发处理示意图:

湖北工业大学硕士学位论文
/, 传输层



/,

收发器



Worker Thread







UDP发送『
TCP发送l

廷请求
接 收

响∥ /(雠响酬勰库(歹/
请彩





事件通知FIFO




SIP Thread


UDP接收 TCP接收




是响应k

.r发送请虢电库厂玲 \/




量竖器消息I …


\I
图示中: (1)SIP
Thread



图3.9 SIP消息收发器的多线程方式的并发处理示意图

SIP线程是对SIP消息栈的操作,包括接收外部设备和系统其他服务器(如: 重定向服务器,注册服务器等)的SIP消息,判断消息是否为应用层的消息并需要 本服务器处理,如果是,就把它放到工作线程的队列中等待处理。本线程也接受 来自工作线程的SIP消息,并把它们传输给外部相关的设备或者工作线程指示的 服务器。也对那些不需要工作线程介入的操作的消息实现必要的重发,同时也过 滤重发的消息等。 (2)Worker
Thread

工作线程是本服务器的应用层。它不断地从自己的输入队列里取出消息,处 理消息,并对SIP线程的输入队列中的消息给出适当的响应。SIP线程和工作线程 的输入队列都是采用一种先进先出的数据结构。 结合图说明一下线程之间的交互关系:
用例1:

接收到一个Invite Message/发送一个180状态的情况: (1)在UDP通道收到一个Invite消息。 (2)创建了一个InvMsg,同时发送到sipsentResponseDB中做备份,我们要 检查在这里有没有重复的副本。 (3)如果没有重复,那么InvMsg就放入RecvFifo中,准备让应用层(应用 逻辑)进行处理。 (4)应用层通过SipTransceiver(消息处理类)收到了InvMsg并且做出相应

湖北工业大学硕士学位论文
的处理。 (5)应用层产生了180回应到SipSentResponseDB中备份。 (6)180在SendFifo中排队,并且调用SipTransceiver中的SendReply方法 回送。 用例2: 向对方发送Invite消息后,从对方接收到一个100(Trying)状态的作为回应 的情况: (1)在UDP通道收到一个INVITE的状态。 (2)创建了一个StatusMsg,同时发送到SipSentResquestDB中做备份,我们 要检查在这里有没有重复的副本。 (3)如果没有重复,那么StatusMsg就放入RecvFifo中,准备让应用层进行 处理。 (4)应用层通过sipTransceiver接收到了StatusMsg并且做出相应的处理。 (5)应用层产生了ACK回应到SipSentResquestDB中备份。 (6)180在SendFifo中排队,并且调用SipTransceiver中的SendAsync方法 回送ACK消息,消息流为接收到发送出INVITE请求的lOOTrying的状态消息,然 后发出ACK确认消息。

湖北工业大学硕士学位论文

第4章基于SIP的NGN/IMS业务技术研究
4.1

NGN简介
NGN定义

4.1.1

随着IP技术的迅速发展,电信网络从承载单一业务的独立网络向承载多种业 务的统一的下一代网络(NGN)的演进正成为不争的事实,传统电信网络将逐步成为 分组骨干网的边缘部分。与此同时,为了支持新的多媒体商业应用,传统电信网 络将越来越开放,并引入许多新的功能和物理部件。另外,迅速发展的数据业务, 在增长上己经远远高于话音业务的增长,以数据业务的观点重新定义新的网络系 统,是满足未来网络持续发展的需要。因此,有必要开发新的网络结构来反映这 种新的网络环境,这种网络结构就是下一代网络(NGN)的基本框架。 2004年2月ITU—TSGl3组对NGN给出了如下定义: “NGN是基于分组的网络,能

够提供电信业务:利用多种宽带能力和QoS保证的传送技术;其业务相关功能与其 传送技术相独立。此外,NGN可以使用户自由接入到不同的业务提供商,并支持通 用移动性。” 从业务上:应支持话音、视频和多媒体业务。 从网络上:垂直方向应包括业务层和传送层,水平方向应覆盖核心网和接入
网。

从技术特征看:希望有传统电话网的普通性和可靠性;因特网的灵活性;以 太网的运作简单性;ATM的低时延:光网络的带宽;蜂窝网的移动性;有线电视网 的丰富内容。 那么,下一代网络究竟指什么,从不同的角度来看NGN有不同的体现。 若仅从业务层看,则NGN指下一代业务网: 对电话网而言,指软交换体系; 对数据网而言,指下一代因特网和IPv6。 对移动网而言,指3G和后3G。 若仅从传送层看,则NGN指下一代传送网(包括MSTP,超长传输,智能光网络 等)。 因此,从狭义上来说,NGN特指以软交换(soft—switch)为控制层的开放的新 交换体系结构,主要指新一代的电信网。从广义上来说,NGN指包含上述所有的下

湖北t而i篁赤工囊五啭垡
莲蓬 诵罐庙

耀

嘉§

采趣写



纠;矗:墓£l i奏l《雪霎







l运蓉捧羹鹱!
,琳坠耋篓:

羹萋霸
蘩 莛

薹熏 毳墓薹妻篓奔麓垂掣雾羹
萋旨



|荸

簧毫萼垂÷;i薹;

Il[乐婪{;薹薹

§
薹囊于嚣鐾 羹譬学墓鬈



蠢霎囊薯

i嘉譬蚕萋蠢耄疆蔫雾 灞缨




燮胡耋蠹妻; 一






;。

湖北工业大学硕士学位论文
需求。 (4)可与现有网络互通 NGN是具有后向兼容性、允许平滑演进的网络,通过接入媒体网关、中继媒体

网关和信令网关等,可实现与PsTN,PLⅢ,IN,Internet等网络的互通,从而充
分挖掘现有网络设施潜力和保护已有投资。 (5)支持移动性 移动电话的大发展充分表明人类对移动性的旺盛需求,电话服务需要移动性, 互联网服务同样需要移动性。NGN的分层组网特点和部件化有利于支持普遍的移动 性和漫游性。

4.2软交换体系
4.2.1软交换基本原理和概念
传统的交换机是基于电路交换技术的,话音通信以64kbit/s的速率在网络中 传输。在交换机的接口处64kbit/s的信号流时分复用后进入高速数字设备。呼叫 路由与智能化控制和电路交换网络紧密地结合在一起““。 电路交换机最复杂的部分是执行呼叫处理的软件。它做出呼叫路由的选择并 完成成百上千种处理功能。目前电路交换机中运行这一软件的处理器是和采用电 路交换方式的设备高度集成在一起的。 而软交换的主要设计思想是业务/控制与传送/接入分离,各实体之间通过标 准的协议进行连接和通信,以便在网上更加灵活地提供业务。更具体地讲,软交 换是一个基于软件的分布式交换/控制平台,它将呼叫控制功能从网关中分离出 来,开放业务、控制、接入和交换间的协议,从而真正实现多厂家的网络运营环 境,并可以方便地在网上引入多种业务。 作为NGN的核心技术,软交换是一种基于软件的分布式交换和控制平台。软 交换的概念基于新的网络功能模型分层(分为接入层、媒体/传送层、控制层与网 络业务层四层)概念,从而对各种功能作不同程度的集成,把它们分离开来,通过 各种接口协议,使业务提供者可以非常灵活地将业务传送和控制协议结合起来, 实现业务融合和业务转移,非常适用于不同网络并存互通的需要,也适用于从话 音网向多业务/多媒体网的演进。

4.2.2基于软交换技术的NGN网络体系结构
软交换是下一代网络的核心设备之一,在下一代网络中,应有一个较统一的

湖北工业大学硕士学位论文
网络系统结构“1。基于软交换技术的网络结构如图4.1所示。

’<一…胭 √√4匙泰

f ss7网、,,PsTN、
\\

甲.,亨

尹岁尹

,,—L\,上.

普通模拟用户
I,V52

POTS/BRI腓

//\/IsDN/| \—/

土上 )( (

综合接入



图4.1基于软交换技术的NGN网络体系结构 由图中可以看出: 从网络结构横向分层的观点来看,NGN主要可分为边缘接入和核心网络两大部 分: 1)边缘接入:由各种宽窄带接入设备、各种类型的接入服务器、边缘交换机/ 路由器和各种网络互通设备构成。 2)核心9网络:由基于DWDM光传送网连接骨干ATM交换机和/或骨干IP路由器 构成。 从网络功能纵向分层的观点来看,根据不同的功能可将网络分解成以下4个 功能层面:

1)业务应用层:处理业务逻辑,其功能包括IN(智能网)业务逻辑、从(认证、

湖北工业大学硕士学位论文
鉴权、计费)、增值业务和地址解析,且通过使用基于标准的协议和AP工来发展 业务应用。其中:软交换与应用服务器间的接口可采用SIP,API(如Parlay),提 供对三方应用和增值业务的支持;软交换与策略服务器间的接口对网络设备工作 进行动态干预,可采用cOPs协议;软交换与网关中心间的接口实现网络管理,采 用sNMP:软交换与智能scP之间的接口实现对现有智能网业务的支持,采用INAP 协议。 2)控制层:负责呼叫逻辑,处理呼叫请求,并指示传送层建立合适的承载连 接,这些连接可以是简单的呼叫,也可以是一个较为复杂的处理。软交换技术主 要用于处理实时业务,如话音业务、视频业务、多媒体业务等。控制层的核心设 备是软交换,软交换需要支持众多的协议接口,以实现与不同类型网络的互通。 软交换之间的接口实现不同软交换之间的交互,可采用sIP—T或BICC协议。 3)传送层:指NGN的承载网络。负责建立和管理承载连接,并对这些连接进 行交换和路由,用以响应控制层的控制命令,可以是IP网或ATM网。 4)媒体接入层:由各类媒体网关和综合接入设备(IAD)组成,通过各种接入手 段将各类用户连接至网络,并将信息格式转换成为能够在分组网络上传递的信息 格式。主要的接入设备有: ?sG:信令网关,与七号信令网相连,完成七号信令的转换,实现将七号信令 承载于数据网上的功能。 ?TG:中继(媒体)网关,位于电路交换网和分组网之间,与呼叫服务器配合, 实现话音业务的汇接/长途中继功能。 ?AG:接入(媒体)网关,连接不同的模拟电话用户,实现铜线方式的综合接 入功能口 ?IPPBx,IAD:综合接入设备,向用户同时提供模拟端口和数据端口,实现用 户的综合接入。 ?wAG:无线接入网关,实现无线用户的接入。 其中AG,IAD,wAG统称(媒体)终端网关。 由此可见,软交换位于网络控制层,较好地实现了基于分组网利用程控软件 提供呼叫控制功能和媒体处理相分离的功能。

4.2.3软交换的功能图

湖北工业大学硕士学位论文
4.3 I

MS体系构架
IMS在移动通信3G中引入

4.3.1

到目前为止,3GPP定义的wCDMA系统有R99、R4、R5和R6四个版本。其发展 方向与NGN的发展方向是一致的,都是从封闭走向开放,从集中走向分布,从单 一走向多样化。 涉及网络架构的是R99、R4和R5(其中R6版本不涉及网络架构,主要是业务 研究)。在这三个版本中,R99采用了传统的网络架构,而软交换技术在R4和R5 网络中得到了充分的应用。 (1)R99的功能就是GSM和GPRS的综合,电路域的交换方式类似于PsTN,采 用集中式的处理方式,呼叫控制和承载传输都由Msc完成:分组域处理数据业务。 (2)R4和R99最大的不同就是电路域采用了软交换技术,实现了承载和呼叫 控制的分离。 应用软交换技术后,R99网络中的移动交换中心(Msc)在R4网络中被分解为
MSC

Server(MSC服务器,软交换机)和MGw(媒体网关),前者提供传统MSC的

呼叫控制部分,后者提供传统Msc的媒体传输部分““。但R4电路域仍旧采用ATM 承载而非IP承载。 (3)R5版本最大的进步就是采用了全IP架构、增加了多媒体子系统(IMs), 专门用来处理多媒体业务,sIP协议被作为IMS的信令控制协议。
4.3.2

IMs系统构架

下图所示为IM cN子系统实体配置。图中所有的功能在各个逻辑节点中完成。 如果在同一物理设备中实现两个逻辑节点,相关的界面就成为该设备的内部接口。 下图中仅仅表示出连接到IM子系统的界面㈣。

湖北工业大学硕士学位论文

图4.3 IMs系统架构 注:粗线:支持用户通信量的接口:点划线:仅支持信令的接口。 从逻辑上讲,所有的3G终端都包含一个sIP用户代理uA,IP多媒体网络节

点就是SIP的代理,这里给它赋予一个新的名字:呼叫会话控制功能CSCF(call
session contr01

functions),有3种形式的CscF:P—cscF(proxy—cscF,代理

cSCF),S—CSCF(serving—CSCF,服务CScF),I—CSCF(interrogating—CSCF,询问 cscF)。P—cscF是网络和终端之间的联系点,s—cscF的作用是为用户提供用户所 预定的服务,I_CscF的任务是为用户找到需要的s—cscF。另外,在3G的系统中 还有一个叫家庭服务预定器HS(home 接收CscF的信息查询。
subscriber

server)的网络节点,其作用是

IMs域实体主要包括:cscF(呼叫会话控制功能)、MGCF(媒体网关控制功能)、
IM—MGw(IP多媒体一媒体网关)、MRFC(多媒体资源功能控制器)、MRFP(多媒体资

41

湖北工业大学硕士学位论文
源功能处理器)、SLF(签约定位器功能)和BGcF(中断网关控制功能)“…。 下面简单介绍基本的IM域实体: (1)call
session control

Function(cscF):呼叫状态控制功能(cscF)实现

软交换功能,根据在网络中处于位景的不同,可以分为S—CSCF,I—CSCF,卜CSCF。 (2)Media
Gateway contr01

Function(MGCF):媒体网关控制功能(MGcF)实

现多媒体呼叫控制协议和传统呼叫控制协议(IsuPITuP)的转换。 (3)IP
Multimedia Subsystem-Media GateWay

function(wS—MGw):媒体网

关实现数承载和电路交互承载的转换和互通。 (4)Multimedia
Resource Function

contr01ler(MRFc):媒体资源功能控制

器(MRFC)主要功能包括控制MRFP中的媒体资源,解释来自AS或者S—CSCF的信息 以对MRFP进行控制,产生cDRs。 (5)Multimedia
Resource Function

Processor(慨FP):媒体资源功能处理

器(MRFP)主要功能包括:对Mb参考点进行承载控制、提供MRFc要求的媒体资源, 提供特殊的媒体资源(如多媒体通知),处理多媒体流(如语音转换,多媒体解析 等)。 (6)Subscription
Locator

Function(sLF):签约位置功能(SLF)为CSCF或

者As提供所需Hss的位置信息。 (7)Application Server(AS):应用服务器(例如SIP服务器,0SA服务器, CAMELIM—SF)提供多媒体增值服务,它在网络中的位置很灵活,可以位于用户的归 属网络,也可以是第三方(可以是网络或者独立服务器)的位置域。0SA服务器不直 接和IMS交互而是通过0SASCS。应用服务器可以通过标准接口访问HS。 S—CSCF可以通过标准接口访问驻留在应用服务器上的应用,应用服务器可以 在用户归属网络内部或者在可信任的网络外部。s—cscF允许第三方应用直接接入 多媒体子系统,而不提供鉴权和安全机制。0sAFw提供这种安全访问多媒体子系统 的机制。

4.4基于slP的NGN/lMs业务体系研究
4.4.1基于SIP的软交换业务结构
从上几节的知识体系中我们看到,在软交换系统中,SIP协议主要应用于软交 换与SIP终端之间,也被应用在不同软交换网络互通中,也有的厂家将SIP协议 应用于软交换与应用服务器之间,提供基于SIP协议实现的增值业务。总的来说, sIP协议主要应用于语音和数据相结合的业务,以及多媒体业务之间的呼叫建立与

42

湖北工业大学硕士学位论文
释放。 我们可以图示为如下:

图4.4简化的基于sIP的软交换业务结构

4.4.2基于sIP的IMs业务结构
在未来全IP网络中,所有媒体信息都封装为IP数据包,由网络路由器转发 传送。同时,借鉴电信网的成功经验,将在传送层之上增设一层呼叫控制层,以 支持高质量的通信业务,即软交换结构。SIP就是富有前景的软交换呼叫控制候选 协议。为了提升未来网络的价值,又提出在呼叫控制层之上增设一层业务应用层, 由应用服务器(AS)提供各种多媒体业务。这些AS既可以从属于网络提供商,也可 以由独立的第三方提供。为了确保业务收益和用户群的管理,业务的调用应该通 过网络提供商的软交换实施,以便对业务的使用和计费进行有效的监管。也就是 说,业务层将由基于SIP的会话控制层触发,并在其上运行,两者之间的接口也 可以采用SIP协议。这就是未来基于SIP的多媒体业务提供的基本概念。 3GPP定义的全IP移动网络的IMS结构充分反映了这一思路。其简化的网络结 构如图4.5所示。呼叫控制层的核心网元是位于原籍网络中的S—CsCF(服务一呼叫

43

湖北工业大学硕士学位论文
会话控制功能),移动终端的通信请求需通过SIP协议,由s_csCF控制完成。对 于SIP协议来说,它相当于SIP网络服务器;对于软交换网络来说,它相当于软 交换设备。S_CSCF通过SIP协议控制媒体网关(MGW),实现和传统电信网的互通; 又通过SIP协议与业务层的AS交互,实现各类多媒体业务。其中,SIPAS是多年 来厂商利用cPL、JAIN等技术开发的完全基于sIP接口的服务器;IN业务是现有 的移动智能网业务,与S—CSCF的接口需完成CAP至SIP协议的映射;3rd业务是 第三方业务,与s—cscF的接口需完成开放式OsAAPI至sIP协议的映射。Hs相当 于GsM中的HLR,存储用户数据,S—csCF通过Cx接口与其接口。除cx外,IMS所 有信令接口都采用sIP协议。

圈㈨翼lJ【|鬻。:J 剖鹾][|萤]

斥i.暮、跞§≮同 d…≮
、、、SIP SIP

SⅢ?’

—//I竺!:竺l
sIP SIP

&!厂菇ii]!里.n丽丽]

s口

卜_]:::广]::::l
}通道 接口

图4.5简化的基于sIP的IMS结构
4.4.3

sIP多媒体业务示例

鉴于其简单性、灵活性、可扩展性以及对于Internet的天然适应性,sIP协 议被国际软交换组织(Isc)视为核心控制协议,并已在voIP中发挥了重要的作用 ”“。但是,SIP的实际意义远远超出VOIP。在SIP体系中,语音、视频、数据作 为媒体的对等成员,可以自由地组合构成所需的新业务。因此,sIP的真正价值在 于为业务提供商开创了灵活构建多媒体业务的巨大空间。下面结合上述sIP技术 特性讨论若干典型的多媒体业务应用。 4.4.3.1即时消息类业务 即时消息(IM)常和在席(Presence)服务结合在一起使用,构成所谓“亲情组”。

湖北工业大学硕士学位论文
用户只要开机登记就能立即获知组内当前在线的人员名单及其状态,其后系统将 动态告之组内人员的在线及受话状态变化。用户只要点击姓名,就能立即向其发 送短信息。这就是熟知的IcQ或QQ技术。由于快捷简单及其接近实时的效果,即 时消息类业务己有很大的市场,特别在年青人中间已成为与电话、email并列的一 项流行业务。 IETF专题研究了实现该类业务的框架结构以及协议要求”1。由于sIP协议具 有很强的会话控制功能,其登记机制能够记录所有客户的在线信息及当前地址, 如果登记站与本地代理服务器位于一起还能获知客户的通信状态,因此很自然地 成为控制该类业务的候选控制协议,并为此定义了相应的扩展机制。 图4.6为基于sIP实现的在席和即时消息(PIM)业务流程示意图。图中,u1和 u2为同一在席组成员。ul开机后向在席服务器订阅(F1),后者通知u2的状态(F2); u2状态发生变化时主动告知在席服务器(F3),后者立即通知u1(F4);最后U1向 U2发送即时消息(F5)。图示所有消息都是SIP扩展消息,其中,F卜F4中的三个 消息支持在席功能,消息中包含指示本消息是用于在席订阅、通知或信息发布的 “Event”扩展头部,其取值为“presence”:消息体中包含一类扩展的MIME类 型”application/cpim_pidf+xml”,指明其内容是用xml书写的、符合IETF定义 的描述格式的在席信息。F5消息用于发送即时短信息,短信按文本形式在消息体 中传送。该消息无需特定的扩展头部。

图4.6 PIM业务SIP流程 由于SIP是适用于任何媒体的通用会话控制协议,因此,采用SIP作为控制 协议后,不难将新的业务特征引入即时消息业务,例如可以点击在席亲情组名单

发起电话呼叫、白板通信,甚至视频通信。根据这样的思路,完全可以构建基于
SIP的“即时电话”业务:可以将在席功能和电话通信结合在一起,提供性能更理

湖北工业大学硕士学位论文
想的UPT业务,利用可靠的在席信息确保发起呼叫的成功接受;还可以去处在席

组对象限定为Pc机的约束条件,将其扩展为任何基于SIP的设备,提供诸如语音
信箱、电子邮件通知、自动告警通知等服务,甚至数据库自动查询。尤其值得重 视的是,鉴于短信业务在移动网络中的巨大成功,可以设想即时消息业务在下一 代移动网络中一定会有可观的市场,而3GPP又己确定SIP为其未来全IP网络的 核心协议,因此,基于sIP的在席和即时消息应该是一类重要的多媒体业务。 4.4.3.2№b类业务 软交换技术的一个重要驱动力是有效地提供网络融合业务,特别是通信和web 信息业务的结合。sIP和web的结合实际上包含两个方面,一是将多媒体能力融入 客户端软件,二是将多媒体控制逻辑和内容提供融入服务器软件,从而将Internet 由传统的信息平台发展成为信息和多媒体通信综合平台。 web类业务的触发可采用常用的接入码方法,用户只要拨打对应于业务提供商 的特定接入码,后者就将初始页面送达用户桌面。最直接的传送方法是在SIP消 息体中置入关于该页面描述的text/htⅢl类型内容,然而由于IP网络最大传送长 度(MTu)的限制,这种方法往往不可行。为此,sIP提出了支持“间接内容”的扩 展消息体,其中传送的并非内容本身,而是指向该内容所在位置的uR L.和通信网 智能业务的交互式语音响应(IVR)提示类似,初始页面可能包含功能或参数选项要 求用户输入选择,此时常称其为交互式网页响应(1wR)。 利用sIP多媒体web客户软件,用户只要通过简单的操作就可启动诸如IP电 话、可视电话、视频流媒体、即时消息等多种业务,实现呼叫管理和呼叫屏蔽等 功能,还可籍助sIP登记机制支持用户移动性。所有业务逻辑都由web服务器提 供,客户端不需要下载任何软件,只要装载普通的浏览器就可获得一个融合的计 算和通信环境,享用丰富的多挤体业务。 web呼叫中心就是基于web类业务构建的典型多媒体应用系统。客户呼叫特定 号码后弹出呼叫中心页面,操作页面选择所需功能将自动获得响应。如果要求话 务员人工介入,利用SIP的“叉分”请求转发功能可以方便地实现自动呼叫分配 (ACD),接入空闲坐席,用户信息将在话务员屏幕上同步显示。客户和话务员之间 的通信可以是话音、视频、会议、email、即时短信等多种形式,还可以实现『司步 浏览。 4.4.3.3会议类业务 会议自然是一类十分重要的多媒体业务。它主要包含三个方面的问题:一是 多方通信的实现模式,二是会议成员信息如何传送,三是会场控制方式。虽然sIP

湖北工业大学硕士学位论文
它不需要任何SIP扩展,但是其缺陷是只有当通话建立后才能发送该信息。而用 户往往要求事先知道会议成员,以便决定是否加入会议或接纳新成员。为此,提 出了一个扩展头部“Participant”,列出所有成员名单及其状态,该头部可以加 在会话建立消息中。为了在会议进行过程中传递成员信息的变化,又专门定义了 一个cONF扩展消息。 所谓会场控制主要指的是决定由谁发言。它包括两类信息:一是会场控制事 件,二是会场控制命令。前者和在席业务机制一样,采用SIP的“Event”扩展头 部,定义和“会场信息”对应的事件值,具体内容在消息体中传送。后者实际上 就是会议主席或参加者向会议服务器发出的远程过程调用(RPc),这些命令用 SOAP(简单对象访闯协议)封装后装载在SIP消息体中传送。和H.323相比,会场 控制是SIP会议控制最不完善的地方。

4.5基于sIP的NGN/lMs业务开发研究
在下一代网络体系中,业务支撑环境是非常重要的一部分。业务支撑环境的 在下一代网络体系中的位置如图4.7所示。

Radi删

sIP(JAIN如.1、P酬av

sNⅦ’


图4.7业务支撑环境在NGN体系结构的位置图 业务支撑环境主要包括应用服务器、业务管理服务器和业务生成环境。它们 互相配合,共同快速完成向用户提供多样灵活的基于下一代网络增值业务的任务。
48

湖北工业大学硕士学位论文
其中应用服务器是业务支撑环境的主体,它提供各种增值业务或智能业务的业务 逻辑的驻留和执行环境,而且还提供各种开放的API,为第三方的业务开发提供创 作平台。业务管理服务器和业务生成环境也可以作为应用服务器的组成部分,使 得应用服务器能够提供对业务管理和业务创建的支持。应用服务器通过开放的协 议或API与软交换设备交互来间接地利用底层的网络资源,从而实现业务与呼叫 控制的分离,有利于新业务的引入。 目前,应用服务器和软交换之间的接口,国际上主要有IETF的SIP协议和 Parlay组织制定的Parlay API规范,从这个角度来看,又可以把应用服务器分为 sIP应用服务器和Parlay应用服务器两类,前者与软交换之间采用SIP协议进行 交互,而后者则将Parlay API作为与软交换之间的接口。
4.5.1

SIP协议的可扩展性

SIP协议的一大优点就是它的可扩展性。SIP的设计者在保持其核心协议简洁 的同时,为其建立了强大的扩充机制。SIP协议的可扩展性体现在它与底层传输协 议的无关性上。SIP协议对支持它的底层传输协议作了最小的假设。SIP协议对消 息的传输、理解和处理独立于对支持它的下层协议。只要传输层保证能够将一个 完整的sIP请求消息或应答消息传送到目的地址,比如在Internet上,它可以使 用可靠的面向连接数据流传输协议TcP协议;也可以使用不可靠的非连接的数据 报传输协议UDP协议:存其它网络上,它可以使用X.25.ATM的从L5或Novel的 IPx和SPx等作为它的传输协议来传递它的请求和应答消息。它的地址可以是 Internet地址,也可以是PSTN(E.164)地址,甚至是其它专用地址。这种底层传 输协议的独立性使得sIP协议不仅可以应用于现存的基于不同传输协议的各种网 络之中,而且可以在将来扩展至各种可能的网络体系结构。 协议扩充方法主要是在消息上,消息的三个基本部分:消息类型、消息头、 消息体都可以被不断扩充。…。SIP基于文本的方式,使各种扩充工作变得十分简便。 (1)消息类型的扩充 前面介绍了6种基本请求消息类型。sIP工作组在增加新的功能时,更愿意定 义新的消息类型,而不是修补原有类型,以保持每种类型目的单纯,语义清晰。 定义新的类型的工作很简单,只需定义一个新的字符串即可,现已有几个新的类 型被定义。新提出的REFER消息被用来实现呼叫转移的功能。以及COMET消息用 来检验能够用于会话的资源,使用户代理能够根据资源的可用性情况,决定是否 接受一个呼叫。 (2)消息头的扩充

湖北工业大学硕士学位论文
sIP消息包含了一系列消息头,对消息进行必要的描述,现在有44种标准的 头。同样,可以根据需要增加新的头以支持新的特性,可以结合新的类型定义新 的头,也可以对原有类型中的内容进行补充。例如,为支持呼叫转移新增的REFER 类型消息,新增两个消息头referred_by用来指示发起转移的一方,refer_to用 来指示会话被转移到的一方。这些新增的头在IETF被标准化通过后,就成为正式 协议标准的一部分。 (3)消息体的扩充 SIP的消息体可以通过MIME定义的代码进行标识,携带各种类型的数据内容。 例如:在新一代网络中,会出现两个PsTN网络通过IP网络互联,IP网络提供一 个仿真的中继线,这时在IP网上采用IP电话信令(如sIP),两侧PsTN交互的传统 电话信令(如IsuP)。如果要转换成sIP相应内容,到另一侧再转换回来,难免造 成信息丢失。针对这一问题,增加了一个用application/isup标识的消息体,将 原始IsuP信令内容打包,原封不动地通过SIP消息携带到对端交换机,就可以方 便而不失真地传递信令内容。 通过采用MIME方式,sIP消息体可以根据需要任意扩展,携带音频、图像乃 至JAVA小程序等各种内容。 可见,强大的扩充机制,使SIP的能力能够不断增强,与时俱进。同时也应 看到,由于SIP修改扩充容易,厂家开发难免有自由发挥的地方。如何保证各厂 家设备功能兼容、互联互通,将成为sIP全面取得商业成功道路上面临的最关键 的挑战之一。这需要标准组织及各方面协调统一,避免协议无节制地蔓延出各种 分支。

4.5.2开放的业务生成环境
与SIP协议可扩展性相对应的是开放的业务生成环境。传统电话的增值业务 是靠智能网来实现的,业务开发复杂、周期长,严重依赖电信设备厂商。面对用 户需求日趋多变和个性化,运营商需要能方便地生成各种新的业务,以满足需求、 扩大收益。 sIP网络的业务提供主要由Proxy server完成,生成一个业务就是设计一个 业务逻辑从而对一个特定的消息流进行控制,或对消息请求做出相应的响应。这 可以通过任何通用的程序语言编程来实现。IETF起草定义了几种业务生成机制, 其思路与web服务器的方法十分接近。 IETF将业务提供者分为可信任和不可信任两类。对于不可信任者,如终端用 户,提供了CPL(Call
Processing

Language)语言,用以处理INVITE消息。通过

50

湖北工业大学硕士学位论文
cPL的程序,可以决定一个请求是否被拒绝、转移或转发。这里的终端用户可以是 第三方提供的应用服务器,第三方业务提供者可以通过一个特服号提供一系列增 值业务。使用者可以通过图形工具完成cPL程序的设计,由于可能面向缺乏经验 的使用者,cPL有严格的机制避免带来安全和性能问题。 IETF还为信任用户,如服务器的管理员,提供了两种业务生成的途径:sIP—cGI 和SIP Servlet。“。SIP—CGI类似于互联网站普遍使用的HTTP—CGI,它独立于编程 语言,为复杂的程序处理提供了一个开放的接口。管理者可以使用任何程序语言 实现复杂的处理程序运行于服务器,在呼叫过程中sIP—cGI作为程序调用及其信 息输入输出的接口,从而在呼叫过程中插入复杂的控制逻辑,对呼叫流程进行控 制。这使得提供高度个性化和智能化的业务变得十分方便。SIP Servlet是用JAVA

语言实现的,类似w髓服务器常用的JAVA Servlet,可以在有消息进入的时候被
调用,指示SIP服务器如何处理并响应消息。 这些灵活、开放的机制,使业务提供者能使用通用的编程语言方便开发各种 智能业务,而不必考虑服务器本身的实现。这与传统电话的智能网系统的私有编 程方法和复杂的接口协议形成鲜明对比。业务开发者可以随时根据需要,在任何 局部范围内开发、提供新的个性化业务。 基于强大的业务生成手段和灵活的消息格式,sIP可以提供传统电话各种业 务,如呼叫转移、遇忙转移、话务的排队和分发、800号等各种智能业务:还可以 提供话音与互联网互联(PINT)的业务,如点击拨号、语音邮件等;还可以提供特 色业务,如即时消息(IM)、Presence(根据用户所处的地点和状态决定具体通信方 式)等各种新兴而实用的业务。

4.5.3几种基于SlP的业务创建技术分析
实现基于sIP协议的IP电话增值业务的基本模型如图4.8所示。当SIP服务 器接受到请求或响应时,将信息通过程序接口传递给业务功能模块,业务功能模 块基于收集到的信息发出指令再传递给SIP服务器,SIP服务器依据得到的指令继 续执行。

图4.8 SIP增值业务实现技术模型

湖北工业大学硕士学位论文
4.5.3.2 SIP Serv Jets

Servlets是用Java编写的、协议和平台独立的服务器端组件,它采用“请求 /响应”模式,提供了一种基于Java的网络服务器的解决方案,可以动态地扩展 支持Java的网络服务器。如同web业务中的HTTP Servlets是HTTP cGI的替代 品一样,对于SIP业务开发者来说,SIP Servlets也是除了SIPCGI之外的一个很 好的选择。 IETF组织于1999年9月提出了sIP servlets的草案,作为sIP服务器的Java 扩展API,SIP Servlets可以扩展sIP服务器的功能、控制SIP消息的处理,从而 实现更为丰富的sIP业务。 servlets技术与CGI相比,其最大的优势在于servlets对于客户端来的多个 请求只需创建~个进程来处理,当servlets被客户端的第一个请求激活后,将继 续运行于后台,每个后来的请求只会产生一个线程而不是进程,因此多个客户能 够在同一进程同时被服务。而CGI针对每个请求都会分别创建一个进程,显然后 者的开销要大得多,并且在同一个进程中不能服务多个客户。另外,由于SIP servlets是基于Java的扩展API,因此它也有着很好的可移植性和跨平台特性。
4.5.3.3 JAlN APIs

JAIN APIs是由JCP(Java

Co舢uni ty Process)组织推动开发的一套基于Java

技术的API,主要用于在Java平台上快速开发下一代电信产品及业务““。JAIN APIs 包含一系列API,其中与sIP协议有关的API有3种:JAIN sIP,JAIN 和sIP
Servlets。sIP sIP Lite

servlets在前面已经详细介绍过。这里不再重复。

JAIN sIPAPI完全基于IETF的sIP规范(RFC2543)制定,它提供了sIP协议

栈到SIP应用之间的接口,从而使得SIP应用能够与封装了SIP协议栈的对象进 行交互。在JAIN sIP的体系结构中,sIP消息被封装在Event Objects中,并且 只在JAIN
sIP

Listener和JAIN

sIP

Provider之间传递,JAIN

sIP

Provider为

应用程序提供了获取SIP协议栈服务的接口,JAIN sIP Listener则用于获取JAIN
SIP

Provider提供的服务。因此,JAINSIPAPI必须提供Listener和Provider的

接口定义、与SIP消息对应的消息接口定义,以及Listener和Provider之间传 递消息的方式。
JAIN sIP API是直接对sIP协议栈进行操作的底层API,需要开发者对sIP

协议有较为深刻的理解,这无疑又加大了SIP开发的难度,因此JAIN APIs又为

开发者提供了一套高层API——JAIN
节就可以进行SIP应用的开发。

sIP

Lite,开发人员无需深入了解sIP的细

湖北工业大学硕士学位论文

第5章总结与展望
5.1总结
本文简要介绍了选题为SIP协议的研究以及基于SIP协议的NGN/IMS业务技 术的研究的背景,同时介绍了国内外SIP研究现状。然后对SIP协议理论进行了 相对细致的研究和分析。提炼了SIP协议的功能概要,对SIP消息的组成进行了 相对详尽的描述,包括请求方法,响应代码,消息头字段,消息体等。对各类SIP 实体进行了概要介绍并总结了SIP实体集的基本网络模型和基本呼叫流程。分析 了SIP的优良特性。 文章核心是设计了一套SIP协议栈软件,着重阐述了自己的设计思想,包括 协议栈的系统构架设计,对象类(接口)设计,多线程的并发处理研讨。本人采用 面向对象和分层模块化的设计思想,设计了一种SIP协议栈的系统构架,主要分 协议数据层和通讯层即生成器、解析器、解析器和错误处理组件。对应于SIP消 息类、消息解析类、传送层类、传送缓冲类(包括一些对不可靠传输的容错处理)、 线程交互类等。实现的功能有消息构造、解析、发送、缓存、过滤重复消息、重 发丢失的消息、线程间数据的交互、携带消息体的构造和解析、向上端服务器报 告状态等。本章完成了一个基本的SIP协议栈实现模型。 本文同时也重点研究了基于SIP协议的NGN/IMS业务技术,包括阐述NGN/软 交换/IM8的基础知识及关键技术,提出了基于SIP的软交换/IMS业务体系构架, 依据第二章的理论专门分析了SIP协议灵活的扩展机制和开放的业务开发环境, 分析和比较了基于SIP协议的业务创建技术。

5.2展望
5.2.1

SlP协议栈

由于SIP是一个不断蓬勃发展的协议,本人的能力与精力有限,SIP协议栈的 后续工作任务还是很繁重的。对未来的工作展望如下: (1)安全 SIP协议的一个重要设计思想是尽可能地利用己有的协议模块,SIP协议的主 体采用了协议的框架,同时在某些方面采用了已有的协议。在网络安全方面,

湖北工业大学硕士学位论文
RFC3261中详细分析了的威胁模型和其所采用的几种SIP机制的局限性。HTTP摘 要认证采用的会话双方预先共享密钥的请求/响应认证方式,只能提供对Request URI等部分内容的保护,适用场合是服务提供商对服务订户的认证:TLS的一个主

要问题是必须运行于TCP之上,另一个问题是对于中间接点代理服务器或重定向
服务器,采用TLS的负担太重““。 在本协议栈的实现过程中,没有对SIP协议的安全性能进行过多的考虑。安 全性在SIP协议栈中具有非常重要的作用,在今后的设计工作中是一定要考虑其 安全性。 (2)服务质量保证 SIP的服务质量问题其实就是其多媒体数据网络传输的服务质量问题。如何使 IP数据的传输和SIP信令相结合是一个比较新的问题。本论文开发的协议栈主要 是关于SIP信令的各方面的处理,而没有真正实现对媒体的协商。在实现中应该 加入多媒体流,并对应该实现多媒体数据的网络传输与SIP协议栈的交互。根据 多媒体的网络服务质量来反馈给SIP协议栈。然后SIP实体或者Tu作出当前的服 务质量问题作出相应的处理。IETF已经提出了几种服务模型和机制,主要有:RSVP; 区分服务:多协议标记交换;子网带宽管理等。 这四种不同的QoS技术,它们都能够为数据流的可预测传输提供支持,但设

计思想和实现机制各有不同。如果单独应用在大规模的网络系统中,它们都会表
现出一定的局限性,任何其中一种技术,都无法独立实现基于全网、从上而下的

OoS保证。从另一方面来看,这四种技术在OoS支持力度、网络拓扑分布和网络实
现层次等方面又有着很强的互补性。因此,只有综合应用这四种OoS技术,才有 可能真正实现大规模网络环境中数据流传输的OoS保证。

5.2.2未来网络融合
网络融合正成为电信发展的大趋势。这包括三网融合(电话网PSTN、数据 Internet网、有限电视网CATV)和固定移动网融合。NGN基于分组数据网络和统 一的IP协议,能够提供综合开放的整体网络架构体系,这己经为两个融合方向提 供了坚实的技术基础。

但是,固定网和移动网的融合还有更多的问题要解决。
作为NGN的核心,软交换技术的出现使人们一度考虑核心控制层的融合可以

采用软交换技术,但是由于固定和移动的软交换功能、协议差异较大,使软交换
成为控制层融合焦点的可能性减小。随着基于SIP的IMS技术在移动网络的出现, 与固网宽带软交换基于SIP的应用不谋而合。

湖北工业大学硕士学位论文
以欧洲ETSI为代表的TISPAN计划提出,基于IMS的体系架构是NGN的主体 架构,认为IMS代表了NGN网络发展的方向。IMS系统采用SIP协议进行端到端的 呼叫控制,这就为IMS同时支持固定和移动接入提供了技术基础,也使得网络融 合成为可能“1。 因此SIP协议是否趋同成为网络融合的关键因素。 固定软交换的宽带域目前主要采用IETF的SIP协议(RFC3261),IMS在采用 了IETF定义的SIP协议作为呼叫控制协议的基础上,根据移动的特性和需求,提 出了对IETF SIP协议的扩展。TISPAN定义了接入固定用户的IMS,目前对SIP协 议支持固定接入也要进行扩展“”。 虽然固定网试图使用移动网络的IMS的体系架构及SIP协议,但用IMS实现 固定和移动的融合,对于应用于不同的接入方式和不同的业务需求,SIP协议作了 不同的扩展,还是存在差异的。因此对于应用于固定和移动宽带域融合的IMS架 构,其SIP的协议能力应该是支持固定和移动接入方式的全集,对于统一的IMS 系统能否支持多种SIP参数和SIP能力还有待于研究。

湖北工业大学硕士学位论文

参考文献
[1]赵慧玲NGN和软交换[J],中兴通讯技术,2006(2):33—38. [2]毕厚杰,李涛.基于SIP的IMS[DB/OL],通信廿|=界.2005


9.Available via

http://w

CWW.net.cn/html/2005/435/120ll

htm RFC2543:SIP:Sesion Initiation Proto

13j J.Rosenberg,H.Schulzrine,G.CamariIo

col[S],June

1995. RFC3261:SIP:Session Initiation Prot

14J J.Rosenberg,H.Schulzrine.G.Camariio

ocol[S],June

2002. SIP

[5]J.Rosenberg,H.Schulzrine.SIP:Locating
2.

Servers[S],RFC 3263,June

200

[6]B,Campbell,J.Rosenberg,¨Schulzrine.Session
ension for Instant

Initiation

Protocol(SIP)Ext

Messaging[踟.RFC3428,December2002.
Description

[7]M.Handley,V.Jacobson.SDP:Seesion
998.

Protocol[S],RFC2327,Aprill

[8]P.Faltstrom.E.164

number and

DNS[S],RFC2916,September2000. Pointer(NAPTR)DNS
Resource Rec

[9]M.Mealling,R.Daniel.The ord[S],

Naming Authority

RFC2915.September2000 DINS RR for specifying the location of

[10]A.Gulbrandsen,P.Vixie,L.Esibov,A

services(DNSSRV)[S],RFC2782,February2000. [11]A.Johnston,S.Donovan,R.Sparks,draft—ietf—siping—basic—cal—flows一02[S],Oc
t2003.

[12]Johnston,A.and

S.Donovan,Session

Initiation

Protocol Service Examples,

Work in Progress,March 2003.

[13]KundanSingh,

GautamNair,

Heningschulzrine,

Centralized

Conferencing using S

IP.Available via

http://www.CS.columbia edu/一knsl0/software/sipconf.
Lenox,CINEMA:Columbia Internet Extensib

[14]KundanSingh,WenyuJiang,Jonathan

le Multimedia M-chitecture,Available via

http://www cs,columbia.edu/hgs/sip.
SIP and RTSP,In IP Teleco

[15]K.Singh


and H.Schulzrine.Unified messaging using

Services Workshop,pages31—37,Atlanta,Georgia,Sept2000. Singh,Xiaotao Wu,Jonathan Lenox,comprehensive Multi-platform Coll via

[16]Kundan

aboration.Available

http:f/ww

es

columbia.edu/hgs/sip/.
the Java Platform,May2002.Avai

[17]The JAIN
lable

APIs:Integrated Network

APIs for

via http://java.sun.com/products/jbin/.
to

[18]G.Camarilo,A.Roach,J.Peterson,L.Ong,ISUP

SIP

Mapping,Internet Draf

58

湖北工业大学硕士学位论文
t,

Internet Engineering Task Force,Work

in progress.August 2002. Resource Identifiers(URI):Ge

[19]Berners—Lee,T.Fielding,L.Masinter,Uniform
nerie

Syntax,RFC2396,Augnstl998.
for Telephone Call,RFC2806,April2000. and S.Davids.Opening UP Networks with JAIN Parlay.IEEE C

[20]Faha-Sipila,URLs [21]S.Bedus,c.BrUee
omun

lIag,hpril

2000. and V.Jacobson.RIP:a transport proto

[22]H.Schulzrinne,S.Casner,U.Frederick
col for real—time applications.RFC

1889,Internet Engineering Task Force,Ja

n.1998.

[23]T.Richardson,Q.Sta_ord—Fraser,i.R.Wood
ting.IEEE Internet

and九Hoper.Virtual network February 1998.

compu

Computing,2(1):3-38,January

[24]H.Se邮Izrine,A.Rao

and R.Lanphier.Real time streaming Task Force,Apr.1998.

protocol(RTSP).RF

C2326,Internet Engineering

[25]Ci

SCO.Enterprise IP Packet Telephony

Solutions Guide.White Paper.http_://w

ww.ciSCO.com

[26] Bjarne
son.com

Munch.IP

Telephony Signaling.Ericsson White Paper.http://www.erics

[27 [28 [29 [30 [3l [32 [33

Ma37cas Goncalves.Voice RFc3455:Private

over

IP

networks[M],Mc Gram
to

Hill,1998

Header(P-Header)Extensions

SIP for 3GPP,IETF,2003

3GPP TS22.101:Service principles. 3GPP TS2.105:Services and Service Capabilities.

http://sip—communicator.dev.java.net/htⅢl/2005/1207/13396.htm http://snad.ncsl.nist.gov/Droi/iDtel/html/2005/1207/13396.him.
Rosenberg,J.and H.Schulzrinne,An INVITE Initiated Dialog Event Package
for the Session Initiation

Protocol(SIP),Work

in Progress,March

2003.

[34]

Dean,R.,Biggs,B.,and R.Mahy,The Session
aces

Initiation

Protocol(SIP)Repl

Header,RFC

3891,September 2004. Session Initiation

[35]Sparks,R.,The

Protocol(SIP)Referred—By

Mechanism,RPC

3892,September 2004.

[36] Peterson,J。,Session (AIB)Format,RFC [37 [38 [39 [40 [41 [42 [43
1AB and

Initiation

Protocol(SIP)Authenticated
2004. 2804,May

Identity B0dy

3893,September
on

IESG,IETF Policy

Wiretapping[S],RFC

2000,

Gonzalo著,白建军等译.SIP揭秘[M],人民邮电出版社,2003.6 张智江,张云勇,刘韵洁.SIP协议及其应用[M].电子工业出版社,2005(1) 糜正馄,王文鼎.软交换技术与协议:北京:人民邮电出版社,2002(7) 糜正馄.IP电信网中的业务体系结构[J].中兴通讯技术,2003(2). 陈建亚,余浩编著.软交换与下一代网络[M].北京:北京邮电大学出版社,2003(2) 殷康.IP电信网的业务模型[[J].中兴通讯技术,2003(1)

湖北工业大学硕士学位论文
[44]Douglas E Comer坩TCP/IP进行刚际互联箔一卷:原理、协议与结构m].林瑶,蒋慧,

桂蔚轩等泽第四版北柬:电子T业出版社,2001

5 9 Available via htt

[45]Jeff Prosise.MFc程序设计[M].北京:清华人学出版社,200L

[46]刘艳.软交换在3G核心网中的席川jl:DB/OL],通信世界.2003.12 P://vrmv.cww.net.cn/Html/2003/12/12020
htm

[47]张园.基于IMS网络融合的关键技术问题分析[DB/0L],CTI论坛.Available
//www.ct[forum com/html/2006/55/45033.htm 2006 3

via

http:

[48]张登银,孙精科.VoIP技术分析与系统设计[M].北京:人民邮电出版社,2003.5 [49]高俊娜.在IMS中SIP协议的实现以及安全管理研究[D].浙江大学硕士学位论文,2005.
03

[50]张宇娜基丁I软交换的0^_{TS业务提供方式的研究和实现[D].华中科技大学硕士学位论 文,2005.04 [51]王鹏德.基于SIP的协作多媒体通信的研究[D]电子科技大学硕士学位论文,2005.03 [52]中国电信网.SIP实现软交换、视频会议和流媒体系统的统一[DB/OL].2006.3 [53]徐晓宇,张惠民.SIP会话协议在第三代移动网络中关键问题研究[J].数据通信,2004
(2).

湖北工业大学硕士学位论文

致谢
感谢我的恩师程学先先生!程老师高深的学术造诣和伟大的人格魅力始终激 励着我在信息技术的海洋里遨游。在学习中给予的悉心指导、在工作中给予的大 力支持、在生活中给予的细致关照令学生感激不尽,终生难忘! 向王春枝教授、楚惟善教授及全体老师表示诚挚的感谢!感谢学院的各位研 究生! 感谢官峰、罗龙涛等同事,与他们的讨论和切磋启发了我的思路、拓宽了我 的研究视角。 最后,要特别感谢我的家人,他们在整个阶段给予我的关怀和鼓励无以言尽1

61

湖北工业大学硕士学位论文

附录1:在校期间发表论文和参与科研项目情况
_发表论文
【1】程学先,刘宙.ILP在语义web数据挖掘技术研究中的应用,计算机技术 与发展,2006,11

_参与的科研项目
【1】郑州市地税局呼叫中心(CallCenter)系统,Ban91aTelecoIIl&Telegraph
Board caU center

system(孟加拉国家电信局(BTTB)呼叫中心系统)。北京长

天集团Call Center事业部,2005。 【2】知识引擎KE(Knowledge
Engine

Model)研发,eZioSkills教学与资源

管理平台系统开发。得实集团深圳研发中心KE组,2005—2006。

湖北工业大学硕士学位论文

附录2:协议栈设计接口代码(部分)
(1)cl∞s s币Msg { //类中主要的成员函数:
public:

//构造函数
SipMsg();

//拷贝构造函数 sipMs酎coIlst sipMsg&), //析构函数

vmal~sipMsg 0;
//实现消息的构建和分析的方法有

膳算符的重载函数:=、<、= sipMsg&ope啪产(const sipMsg&newsipMs酌;
b00l b00l

operator((const SipMsg&s嘞const;

operator一(const

sipMsg&src)comt;

,,能够返回子类对象类型的纯虚函数 Virn埘Memod gefIype0 const=O; /,从原始消息中拷贝任意头域
void

copyHead呱const

SipMsg&src,SipHeaderr唧e type);

/脸查消息中是否存在某个头域
bool

con“lIsHeade“sipHeade哪pe岛,pe);

,,下面是一些对头域的操作
.mt

getNumAccepto

const;

//取头域的个数

,,取出第i个头域,若i-一1则取最后一个
const

sipAcce啦咎tAccepc(int i_-1)const;

/,设置或添加一个新的via头域,如index为.1则把它放在当前链表的后面。
void

setAcce似const SipAccept&沁m,im index=-1);
setAccept(const
Data&item,int

砌能同上,setAcceptO overload的版本
void

index=-1);

湖北工业大学硕士学位论文
,,设置头域的数量,如果实际的数量多于这个数量,则把后面多余头域删掉 /,每个具体的头域,sipMsg都有相对应的Member F蚰ction,所以sipMsg的Member Function是很多的,以下就省略掉了。
Data

encodeAcceptLangList()const;



(2)class‰Msg:public

public:

SipM蹭

//sIP响应消息的构造 stahlsMs甄sipcomm柚d&comm柚d,im statuscode); st缸llsMs甙const nna&); StatusMs90; StanJsMsg(const staclIsMsg&);

vinIlaI墨tatLlsMs90;
void void

decode(const Data&da扭);/,sIP响应消息的解析 se咀easollPhra∞(const Da乜I&re船on);/,设置源语 /,得到源语

Da诅getIte∞onPhr∞eO con鸡

Me出od gefrypeO const;,/得到响应类型

(3)class {

SipCommand:public

SipMsg

public:

SipComm∞d(); sipcomm锄d(const sipcomm柚d); sipcomm锄d(const sipcomm蜘d,const SipComm锄d(const S协tusMsg&); //根据字符串解析sipcoIllIn∞d
b00l sipvia&,const

sipcseq&);

decode(coIlst D啦I&i印uData)

脯求行处理
const

sipReqllestLine&getReque虬ine()c∞st;//得到请求行
SipRequestLin哦);
//设置请求行

sipRequ豁也ine&getMutableRequestLh璩();倩到请求行
void

setReques也inc(const

湖北工业大学硕士学位论文

(4)class ByeMsg:public SipCommand {
public:

ByeMsg(const sipcommand&sipMessage); ByeMsg(collSt Data&da∞;

B”Msg(const B”Msg&); ByeMsgO;
ByeMs甙const sipCommalld&src,const Sipvia&V沁const Sipcseq&cseq);仇JAs

ByeMsg(const

sIamsMsg&statusMsg);胛roxy and

uAc使用

ByeMsg&operatoF(co璐t ByeMsg&);//复制
bool

operato产=(const ByeMsg&src);,,比较 //得到请求类型

virtual Me廿lod getType()const;

(5)class SipTransceiver


public:

//构造和析构 sipTfansceive《Data
int s=O,


sipPon

sIP_P饼q

b001 naC=f酊se. SipAppC0ntext acontext=APP—CoNTEXT—GENERJC;

vimlal~SipTrarIsceive“);

void

sendAsync0;/,发送请求 sendRepl“); ,/发送响应函数

vinual void

/,消息接收队列
Virtual sptr<SipMsgQueue>receive(int timeoutMs=一1);

static void static void static void

setRetrallsTime();//消息重发时间设置 reTrallsO觑);小殳置重发关 reTrallson();,/设置重发开

CallLegvector Data

getcal】LegMsgS();∥得到消息的会话标识 //得到本地端口

g乩ocalNarnePort()const;

SIP协议及基于SIP的NGN业务技术研究
作者: 学位授予单位: 刘宙 湖北工业大学

本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y908700.aspx



推荐相关:

NGN -SIP

SIP协议下一代网络业务中... 暂无评价 3页 2.00元 基于NGN_SIP的即时通讯...下一代通讯技术下一代通讯技术隐藏>> 1.概述: 概述: 概述 软交换设备之间采用...


下一代网络中窄带协议与多媒体协议互通探究

2.ISUP 与 SIP 的互通 ISUP 与 SIP 协议互通需要解决两点问题:一是封装,在 ...点对点多媒体消息业务网... 36人阅读 20页 免费 NGN的关键技术和相关协议......


软交换与NGN-阶段作业一

软交换技术NGN 一、单项选择题 1. 下面的 H....4 4. SIP 协议网络模型中,( A ) 能够将用户...等主要功能,并可以向用户提供各种基本业务和补充业务...


北邮软交换技术与NGN第一次作业

北邮软交换技术NGN第一次作业_教育学_高等教育_教育...[B;] 案: 得分: 提示: SIP 协议网络模型中,( ...


NGN第二章部分习题答案

NGN第二章部分习题答案_文学_高等教育_教育专区。7...8. 简要说明 SIP 协议的功能。 SIP 协议的主要...SDP 的内容在会话启动协 议 SIP 的消息体中传送。...


00FF打印《软交换技术与NGN》综合练习题

《软交换技术NGN》综合... 7页 免费0...29. SIP 协议使用 SIP 的 来标识用户、进行寻址,...84. 协议是综合业务模型体系结构中的主要信令协议, ...


软交换与NGN第一次作业

软交换与NGN第一次作业_信息与通信_工程科技_专业资料...SIP 协议网络模型中,( A. 重定向服务器 B. 代理...


AN5506-04B开通SIP语音方法技巧

NGN 上联 DHCP 配置 5. NGN 心跳参数 6. NGN 注册参数 7. 用户端口配置 8...IP语音解决方案SIP技术白... 9页 2下载券 基于SIP协议的VoIP语音获... ...

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com