1.SIP论坛
SIP论坛(www.sipforum.org)是行业论坛,其目的是促进SIP协议的使用。它不是标准组织,所有与技术相关的问题都将反馈给IETF以便在合适的工作组内解决。
SIP论坛具有以下四个工作组:市场工作组、业务提供工作组、认证工作组、SIP设备工作组。
SIP协议是由IETF工作组制定的,用于在IP分组网络上建立、修改以及终止双方或多方的多媒体会话。早期的协议版本是1999年提出的RFC2543oSIP协议经过几年的发展,2002年6月,IETF重新制定并推出了SIP协议的RFC3261,同时也制定了SIP协议的一些相关协议,如:
• RFC3262(June2002)“ReliabilityofprovisionalresponsesinSessionInitiationProtocol(SIP)”;
• RFC3263(June2002)KSIP:LocatingSIPServers*1:
• RFC3264(June2002)"AnOffer/AnswerModelwithSDP”;
• RFC3265(June2002)"SessionInitiationProtocol(SIP)SpecificEventNotification15。此系列协议对RFC2543进行了废弃,RFC3261也就成为SIP协议的新的标准版本。现在的固定网也正是以这个标准为基础进行开发的。
随后,IETF工作组又制定了一些SIP协议的相关协议,如:
• RFC3311(September2002)“TheSessionInitiationProtocol(SIP)UPDATEmethod,,;
• RFC3312(October2002)^IntegrationofresourcemanagementandSessionInitiationProtocol(SIP)”;
• RFC3313(January2003)"PrivateSessionInitiationProtocol(SIP)ExtensionsforMediaAuthorizatiorT;
• RFC3320(January2003)''SignalingCompression(SigComp),^;
• RFC3323(November2002)“APrivacyMechanismfortheSessionInitiationProtocol(SIP)”;
• RFC3325(November2002)aPrivateExtensionstotheSessionInitiationProtocol(SIP)forNetworkAssertedIdentitywithinTrustedNetworks”;
• RFC3327(December2002)HSessionInitiationProtocolExtensionHeaderFieldforRegisteringNon-AdjacentContacts,,;
• RFC3515(April2003)"TheSessionInitiationProtocol(SIP)REFERmethod"等。
目前,多个IETF工作组都在关注SIP协议的发展,如IP电话工作组(IPTEL)、IP网中电话选路(TRIP)工作组、多用途Internet邮件控制(MIME)、呼叫编程语言(CPL)工作组等。
3.3GPP/3GPP2
移动网在IMS域釆用SIP协议时,SIP已经在固网软交换中得到了比较充分的应用,所以3G组织采用的SIP协议是以IETF的SIP标准为基础的,二者基本一致。
移动网中直接采用IETFSIP协议标准中的SIP方法(SIPmethods),SIP头部(SIPheaders),SIP选项标签(Option-tags),SIP状态码(Status-code),SIP会话描述类型(Sessiondescriptiontypes)。
4.ITU-T
SIP已经开始被ITU-TSG11PINT,ITU-TSG16,ETSITIPON(欧洲标准化组织),SIPBOF,IMTE等各种标准化组织所接受,并在这些组织中成立了与SIP相关的工作组。特别是作为ITU-TSG16主要成员,在多年发展H323应用的基础上,针对SIP应用在视频领域的特点,提出了SIP的应用指导,并推出了相应的SIP协议栈,使得ITU的成员实现了这两种协议之间的互通性。
SIP实现机制
sip是一个分层结构的协议,这意味着它的行为根据一组平等独立的处理阶段来描述,每一阶段之间只是松耦合。协议分层描述是为了允许功能的描述可在一个部分跨越几个元素,它不指定任何方式的实现。通常所说的某元素包含某层是指它顺从该层定义的规则集。
不是协议规定的每个元素都包含各层。而且,由SIP规定的元素是逻辑元素,不是物理元素。一个物理实现可以选择作为不同的逻辑元素,甚至可能在一个个事务的基础上。SIP的最低层是语法和编码。它的编码使用增强BNF形式语法来规定。
第二层是传输层。它定义了网络上一个客户机如何发送请求和接收响应,以及一个服务器如何接收请求和发送响应。所有的SIP元素都包含传输层。
第三层是事务层。事务是SIP的基本元素。一个事务是由客户机事务发送给服务器事务的请求(使用传输层),以及对应该请求的从服务器事务发送回客户机的所有响应组成。事务层处理应用层重传,匹配响应到请求,以及应用层超时。事务层具有客户机组成部分(称为客户机事务)和服务器组成部分(称为服务器事务),每个代表有限的状态机,它被构造来处理特定的请求。
事务层之上的层称为事务用户(TU)。每个SIP实体,除了无状态代理,都是事务用户。当一个TU希望发送请求,它将生成一个客户机事务实例并且向TU传递请求和IP地址、端口和用来发送请求的传输机制。一个TU既生成客户机事务也能够删除它。当客户机取消一个事务时,它请求服务器停止进一步的处理,将状态恢复到事务初始化之前,并且生成特定的错误响应到该事务。这由CANCEL请求完成。
SIP通过E-mail形式的地址来标明用户地址。每一用户通过URL来标识,它通过诸如用户电话号码或主机名等元素来构造(例如:SIP:user@company.com)。因为它与E-mail地址的相似性,SIPURL容易与用户的E-mail地址关联。
SIP提供它自己的可靠性机制从而独立于分组层,并且只需要不可靠的数据包服务即可。SIP可典型地用于UDP或TCP之上。
SIP提供必要的协议机制以保证终端系统和代理服务器提供以下业务:
• 用户定位;
• 用户能力;
• 用户可用性;
• 呼叫建立;
• 呼叫处理;
• 呼叫前转,包括等效800类型的呼叫、无应答呼叫前转、遇忙呼叫前转、无条件呼叫前转;
• 呼叫号码传递,该号码可以是任何命名机制;
• 个人移动性,例如,通过一个单一的、位置无关的地址来到达被呼叫方,即使被呼叫方改变终端;
• 终端类型的协商和选择。呼叫者可以给出选择如何到达对方,例如,通过Internet电话、移动电话或应答业务等;
• 终端能力协商;
• 呼叫者和被呼叫者鉴权;
• 不知情和指导式的呼叫转移;
• 多播会议的邀请。
当一用户希望呼叫另一用户,呼叫者用INVITE请求初始呼叫,请求包含足够的信息用以被呼叫方参与会话。如果客户机知道另一方的位置,则它能够直接将请求发送到另一方的IP地址。如果不知道,客户机将请求发送到本地配置的SIP网络服务器。如果服务器是代理服务器,则它将解析被呼叫用户的位置并且将请求发送给它们。可以通过很多方法完成上步,例如,搜索DNS或访问数据库。服务器也可以重定向服务器,它可以返回被呼叫用户的位置到呼叫客户机,以便直接与用户联系。在定位用户的过程中,SIP网络服务器当然能够代理或重定向呼叫到其他的服务器,直到到达一个明确的知道被呼叫用户IP地址的服务器。
一旦发现用户地址,请求就发送给该用户,此时将产生几种选择。在最简单的情况下,用户电话客户机接收请求,也就是用户的电话振铃。如果用户接受呼叫,则客户机用客户机软件的指定能力响应请求并且建立连接。如果用户拒绝呼叫,则会话将被重定向到语音邮箱服务器或另一用户。“指定能力”参照用户想启用的功能。例如,客户机软件可以支持视频会议,但用户只想使用音频会议,则只会启用音频功能。
SIP还具有另外两个有重要意义的特征。第一个特征是有状态SIP代理服务器具有分割入呼叫或复制入呼叫的能力,从而可以同时运行几个扩展分支。第一个应答的分支接受呼叫。该特征在用户工作在两个位置之间(例如,实验室和办公室)或者同时对经理和其秘书振铃时是非常便利的。
第二个特征是SIP独特的返回不同媒体类型的能力。例如,当SIP服务器接收到客户机的连接请求时,它能够通过Web交互式语音响应页面来提供列表上的用户。单击适当的链接后将发送一请求到所选择的新用户,从而建立起呼叫。