随着ip电话应用的普及,建立终端设备和网关的可扩展网络已成为业界面临的一大技术挑战。目前ip电话技术已完美实现了对语音和传真信息的编码和传输,但仍需进一步发展为大型公司和服务提供平台的呼叫控制和地址管理技术。因此,支持ip电话系统互通的多个协议巳经出台。常用的IP电话协议(如H.323、MGCP和SIP)的优缺点各异。其中,秉承越简单越流行这一设计思想的SIP协议的应用前景无限。
1.1SIP协议起源
SIP(SessionInitiationProtocal)称为会话发起协议,是由IETF(InternetEngineeringTaskForce)组织于1999年提出的一个在基于IP网络中,特别是在Internet这样一种结构的网络环境中,实现实时通信应用的一种信令协议。而所谓的会话(session),就是指用户之间的数据交换。在基于SIP协议的应用中,每一个会话可以是各种不同的数据,可以是普通的文本数据,也可以是经过数字化处理的音频、视频数据,还可以是诸如游戏等应用的数据,应用具有巨大的灵活性。
作为一个IETF提出的标准,SIP协议在很大程度上借鉴了其他各种广泛存在的Internet协议,如HTTP(超文本传输协议)、SMTP(简单邮件传输协议)等,和这些协议一样,SIP也釆用基于文本的编码方式,这也是SIP协议同视频通信领域其他现有标准相比最大的特点之一。
SIP协议的提出和发展,是伴随着Internet的发展而发展的,到目前为止它走过了以下几个阶段。
Mark Handley和Eve Schooler开发了会话邀请协议(SessionInvitationProtocol)SIPvl,于1996年2月22日递交lETFoSIPvl协议仅仅处理会话的建立,一旦用户加入会话,则信令就终止,而且会议也无中间控制。
在IETF第35次会议上,Schulzrinne提出了SCIP(Simple Conference Invitation Protocol,简单会议发起协议),经过讨论,将SIPvl和SCIP进行合并,最终的协议保留了SIP作为名字,但意义已经改为Session Initiation Protocol。
随后MarkHanley>Schulzrinne和Schooler于1996年将SIPv2递交给IETF第37次会议,这是一个基于HTTP新的SIP。
1999年3月,IETF的多方、多媒体会晤控制(mmusic)工作组提出了RFC2543建议,供各厂商和机构讨论。
1999年9月,SIP工作组从mmusic中分离并独立岀来,成立了SIP工作组,最初由JoergOtt、Jonathan Rosenberg和DeanWillis担任主席,并于2000年7月发表了SIP的草案。
2002年6月,IETF的SIP工作组又发表了RFC3261建议,以取代RFC2543。
由于网络环境以及相关多媒体技术的不足,在SIP协议首次提出的时候,仅仅针对各种文本应用,随着技术的发展,并通过和IETF中IP电话工作组(iptel)、IP网中电话选路(trip)工作组等兄弟工作组配合工作,在SIP协议中大大加强了对多媒体通信的支持。
近年来,在建设下一代网络的过程中发生了一个很明显的变化:很多设备厂商都开始将其下一•代网络的协议标准向SIP方向倾斜。SIP成为追逐的标准,最大的优势就是开发简单,同时SIP具有继承性,对于拥有传统网络的运营商来说,SIP在网络发展过程中,无疑是一个承上启下最好的切入点。
在3GPP中使用SIP标准来支持语音和数据是SIP协议得以发展的一个重要原因,SIP可以对语音进行很好的优化,并且由于它的可编程性,使移动业务面临灵活性和多样性的变化时,有了很好的保证。
另外,基于SIP的终端丰富多彩有利于从网络接入到最终用户的完整产业链的完成。SIP能够对手机、PDA等移动设备提供良好的支持,对于在线即时交流、语音和视频数据传输等多媒体应用也能够很好地完成。
1.2.SIP功能
SIP被描述为用来生成、修改和终结一个或多个参与者之间的会话。这些会话包括Internet多媒体会议,Internet(或任何IP网络)电话呼叫和多媒体发布。会话中的成员能够通过多播或单播联系的网络来通信。SIP支持会话描述,它允许参与者在一组兼容媒体类型上达成一致。它同时通过代理和重定向请求到用户当前位置来支持用户移动性。SIP不与任何特定的会议控制协议捆绑。本质上,SIP提供以下功能:
• 名字翻译和用户定位:无论被呼叫方在哪里都确保呼叫达到被叫方、执行任何描述信息到定位信息的映射,确保呼叫(会话)的本质细节被支持。
• 特征协商:它允许与呼叫有关的组(这可以是多方呼叫)在支持的特征上达成一致(注意:不是所有各方都能够支持相同级别的特征)。例如,视频可以或不可以被支持。总之,存在很多需要协商的范围。
• 呼叫参与者管理:呼叫中参与者能够引入其他用户,加入呼叫或取消到其他用户的连接。此外,用户可以被转移或置为呼叫保持。
• 呼叫特征改变:用户应该能够改变呼叫过程中的呼叫特征。例如,一个呼叫可以被设置为“voice-only”,但是在呼叫过程中,用户可以开启视频功能。也就是说一个加入呼叫的第三方为了加入该呼叫可以开启不同的特征。