用可生存网络的控制器列表中的控制器的滑动窗口注册端点的制作方法

文档序号:7710904阅读:204来源:国知局
专利名称:用可生存网络的控制器列表中的控制器的滑动窗口注册端点的制作方法
技术领域
本发明总体上涉及通信网络,并且更具体地涉及可生存网络。
背景技术
在客户机/服务器系统架构中,客户机实体从服务器实体接收服 务。例如,电话从电话交换机接收呼叫连接和功能服务。为了可靠性的目的,可复制服务器,从而如果服务器的一个拷贝出现故障,另一 个拷贝可接管并继续向被影响的客户机提供服务。这通常被分别称为 冗余和故障切换。
与服务器执行客户机的故障切换相反,现代通信系统通常需要由 客户机实现到冗余服务器的故障切换。客户机必须可通信地连接至服 务器并将其自己注册到服务器,从而从该服务器接收服务。这意味着 为了从故障服务器故障切换至冗余服务器,客户机必须二者择其一地 或同时地注册到这两个服务器。
在更替(alternate)注册中,客户机配备有其可使用的服务器的 列表,并且客户机一次仅注册到那些服务器中的一个服务器并且从该 服务器获得服务。如果并且当该服务器出现故障时,则客户机注册到 另 一个服务器并从该另 一个服务器获得服务。如果并且当第二个服务 器出现故障时,则客户机注册到第三个服务器并从该第三个服务器获 得服务。依此类推。因为注册花费一些时间,更替注册会导致每一次 客户机故障切换至另 一个服务器时,在客户机获得服务时都有延迟。
在同时注册中,客户机具有其可使用的服务器的列表,并且其一 次注册到所有那些服务器。客户机在任何一个时间都从这些服务器中 的一个服务器获得其服务,并且如果该服务器出现故障,则客户机准 备好立即开始从其他服务器中的一个接收服务。这要求客户机全部一
次创建并保持与所有服务器的连接。这是对通信网络资源的浪费,因 为任何一个时刻都仅使用那些连接中的一个。
会出现这些问题的一个环境是会话启动协议(SIP )可生存网络。 会话启动协议(SIP)是一种用于建立多种实时通信会话的开放信令 协议。可使用SIP建立的通信会话的类型的例子包括语音、视频、 游戏、应用和/或即时消息传递。这些通信会话可在任何类型的通信设 备上被执行,所述通信设备例如是个人计算机、膝上型计算机、个人 数字助理(PDA)、蜂窝电话、IM客户机、IP电话、传统电话、月良 务器应用、应用集合、桌面应用等。
SIP的一个特点是其针对与端用户、应用程序和服务提供商网络的所有通信都使用地址记录(AOR)作为单个统一公共地址的能力。 这样,在SIP增强通信的世界中,用户的AOR成为了它们的将用户 与和用户相关联的所有通信设备相链接的单个地址。使用该AOR, 呼叫者不必知道电话号码或唯一的设备地址中的每一个就可达到用 户的通信设备(也被称为用户代理(UA))中的任何一个。
许多SIP应用服务器是为了如下目的而存在的使得能够在SIP 环境下运行通信应用,并且用作UA的呼出(outbound)代理,从而 允许建立复杂网络,同时通过设备连接进入网络所使用的代理来隐藏 其复杂性。这样的通信应用的主要领域之一是SIP UA的呼叫控制。 针对提供可生存SIP网络配置的问题的解决方案包括使用在不存在对 SIP信令的响应时使用的SIP代理。该代理可以用于经由网络中的一 个或多个可供替换的路由对信令进行路由。单独的代理的使用会变得 昂贵,因为需要除呼叫控制器或网关以外的附加网络单元来提供可生 存性。
其他网络服务器产品提供地球冗余(geo-redundant)配置,从 而由于网络服务器的高可用性,网关不易遭遇网络服务器故障。与代 理的使用相似,该特定解决方案相对昂贵,因为需要购买并通过网络 分布高可用性服务器。已知的当前解决方案的其他缺点包括如果主 SIP信令路径不可用则不允许网络单元(element)(例如网关)使用 可供另外的路径的事实;这样的解决方案需要热备用配置,并且跨服
务器复制数据;并且它们要求主呼叫控制器和次呼叫控制器使用完全
相同版本的SIP,并且将完全相同的SIP特征組提供给SIP端点。
确定何时出现网络故障的逻辑已经被传统地置于路由器中,所述 路由器具有检查网络的IP层以确定各种网络单元是否正在正确运行 的能力。该故障/故障恢复检测逻辑已被置于路由器中,以减轻其余网 络组件的处理负担。该特定配置的一个主要缺点在于路由器不能在 SIP应用级别检测服务器或其他网络单元是否可操作。可能存在服务 器在IP层级别上可操作但SIP控制器不可操作的多种情况。迄今为 止,现有技术的路由器和其他网络单元已不能在这些情况下识别这样的故障条件,并且会将这样的服务器注册为可操作的。因此,已提出
将故障确定逻辑置于启用会话启动协议(SIP)的通信端点中,并且 使得SIP端点能够实现更替注册或同时注册到多个SIP控制器。

发明内容
根据本发明的一个方面,客户机(例如,SIP UA)同时注册到 其可用的服务器(例如,SIP控制器)的一个子集,以从该子集的服 务器中的至少一个获得服务。该子集包括可用服务器中的多个但不是 全部。如果并且当子集中的服务器之一出现故障时,客户机另外地注 册到仍然在子集外部的服务器之一,从而使该服务器进入子集。因此, 该技术在更替注册和同时注册之间进行了折衷。示例地,子集的大小 对于所有客户机可以是相同的。可供替换地,子集的大小可根据诸如
它们的位置和其用户是谁的因素而在客户机之间变化。
根据本发明的另一个方面,可用服务器被排列为序列,优选地以 它们应被客户机使用以获得服务的优先级顺序排列。初始地,子集包 含序列的前N个服务器。如果该子集中的服务器之一出现故障,则客 户机注册到该序列中的第N+l个服务器,该第N + l个服务器是在 该序列中紧接在该子集之后的服务器,从而使该新的服务器进入子 集。针对子集中的每个服务器故障重复上述操作。优选地,无论何时 子集中的故障服务器之一恢复服务,客户机都取消注册到子集中的最 后一个服务器,并且如果必要的话,重新注册到恢复的服务器。因此, 子集形成了可用服务器的序列上的一个滑动窗口。
此处所使用的"监控"包括与用仪器观察、记录或检测相关的任何 类型的功能,所述仪器对被监控的单元或单元组的操作或条件没有影 响。
如此处所使用的,"至少一个"、"一个或更多"和"和/或"是在操 作上既有联系又分离的开放式表达。例如,表达"A, B和C中的至少 一个"、"A, B或C中的至少一个"、"A, B和C中的一个或更多"、 "A, B或C中的一个或更多"和"A, B和/或C"中的每一个都是指单
7独A、单独B、单独C、 A和B—起、A和C一起、B和C一起、或 A、 B和C一起。
术语"某个(a, an)"实体是指一个或多个该实体。因此,在此 处术语"某个"、"一个或更多"和"至少一个"可互换地4吏用。也要注意, 术语"包括"、"包含"和"具有"可互换地使用。
此处使用的术语"自动"及其变形是指当执行处理或操作时,没有 实质(material)人工输入就完成的任何处理或操作。然而,处理或 操作可以是自动的,即使该处理或操作的执行使用在执行该处理或操 作之前接收到的人工输入,无论该人工输入是实质的还是非实质的。 如果人工输入影响将如何执行处理或操作,则这样的输入被视为是实 质的。同意执行处理或操作的人工输入不被视为是"实质"的。
此处所使用的术语"计算机可读介质,,是指参与向处理器提供指 令以供执行的任何有形存储装置和/或传输介质。计算机可读介质可以 是通过IP网络(例如,SOAP)在网络传输中编码的串行化指令组。 这样的介质可采用许多形式,包括但不限于非易失性介质、易失性介 质和传输介质。非易失性介质包括例如NVRAM或磁盘或光盘。易失 性介质包括动态存储器(例如,RAM),诸如主存储器。计算机可读 介质的常见形式包括例如软盘(floppy disk)、柔性盘(flexible disk)、 硬盘、磁带或任何其他的磁性介质、磁光介质、CD-ROM、任何其 他的光学介质、穿孔卡片、纸带、具有孔的图案的任何其他物理介质、 RAM、 PROM、 EPROM、闪速EPROM、诸如存储卡的固态介质、 任何其他的存储芯片或卡带、如下文中描述的载波、或计算机可读取 的任何其他介质。附在电子邮件或其他独立信息档案或档案组的数字 文件附件被视为与有形存储介质等同的分发介质。当计算机可读介质 被配置为数据库时,应理解数据库可以是任何类型的数据库,诸如关 系型的、分级的、面向对象的等。因此,本发明被看作包括有形存储 介质或分布介质以及现有技术已知的等同物和后续介质,其中存储了 本发明的软件实现。
此处使用的术语"确定"、"算(calculate ),,和"计算(compute )"及其变形被互换地使用,并且包括任何类型的方法论、处理、数学运
算或技术。更具体地讲,这样的术语可包括像BPEL的解释规则或其 中逻辑没有被硬编码而是表示在可读取、解释、编译和执行的规则文 件中的规则语言。
此处使用的术语"模块"或"工具"是指任何已知或稍后开发的硬 件、软件、固件、人工智能、模糊逻辑或能够执行与该单元相关联的 功能的硬件和软件的组合。并且,尽管本发明是通过示例性实施例被 描述的,但是应理解,可单独地对本发明的各个方面要求权利保护。
前述内容是本发明的简化概要,以提供对本发明一些方面的理 解。所述概要既不是本发明及其各个实施例的扩展的概述,也不是本 发明及其各个实施例的穷尽的概述。其既不是为了确定本发明的关键 或重要的要素,也不是为了界定本发明的范围,而是为了以简化的形 式呈现本发明的选择的构思作为对下述更详细的说明的介绍。应理解 为,本发明的其他实施例可以 细描述的特征中的一个或更多特征,


图l是描绘根据本发明的至少一些实施例的通信系统的框图;
图2是描绘示例性SIP控制器的发现和注册方法的流程图3是描绘示例性状态确定方法的流程图4是描绘示例性被动状态确定方法的流程图5是描绘示例性网关操作方法的流程图6是描绘端点的示例性状态确定方法的流程图;以及
图7是描绘示例性状态通知方法的流程图。
具体实施例方式
下面结合示例性通信系统举例说明本发明。尽管适合被用于例如 使用(一个或多个)服务器和/或(一个或多个)数据库的系统,但是 本发明不限于被用于任何特定类型的通信系统或系统单元的配置。此外,此处使用的术语"数据库,,不仅可包括关系数据库系统,还包括可
在硬件和软件、RAM或硬盘上提供的任何计算机存储机制。本领域 技术人员将认识到所公开的技术可在其中希望保持SIP可生存网络的 任何通信应用中^f吏用。
还将关于分析软件、模块和相关的分析硬件描述本发明的示例性 系统和方法。然而,为了避免不必要地使本发明模糊,以下描述省略 了熟知的结构、部件和装置,它们可以框图形式示出、是熟知的或者 被概述。这些熟知的结构的例子包括但不限于IP基础结构、第二层 交换机、IP层路由器、IP级防火墙、网络地址转换(NAT)设备、 SIP会话边界控制器(SBC)等。
为了说明的目的,详述了许多细节以便提供对本发明的全面理 解。然而,应理解,可在此处详述的具体细节以外以各种方式实施本 发明。
先参照图1,图1示出了示例性通信系统100体系结构。通信系 统100包括将诸如SIP用户代理(UA) 108的端点连接至多个其他通 信设备的第一网络104。 UA 108可适于与连接至第一网络104的其他 端点以及第一网络104外部的其他端点通信。例如,UA 108可适于 与连接至第二网络152的外部端点156通信。
第一网络104和第二网络152可对应于任何类型的已知通信网络 或通信设备的集合。第一网络104可包括局域网(LAN)、广域网 (WAN)或任何其他类型的如由OSI模型定义的那样的第三层和第 四层网络。
第二网络152可包括任何类型的信息传输介质并且可使用任何 类型的协议在端点之间传输消息。因特网是通信网络104的一个例子, 所述通信网络104构成了由通过许多电话系统和其他装置连接的、位 于世界各地的许多计算机和其他通信设备组成的IP网络。第二网络 152的其他例子包括但不限于标准普通旧式电话系统(POTS)、综 合业务数字网络(ISDN)、公共交换电话网络(PSTN) 、 LAN、 WAN、蜂窝通信网络和本领域中已知的任何其他类型的分组交换或
10电路交换网络。通信网络104和152都可包括有线和/或无线通信技术。
客户机UA 108的SIP功能可由也连接至第一网络104的一个或 更多服务器136提供。客户机UA 108也可由第一网络104外部的其 他服务器或通信设备控制。例如,将第一网络104与第二网络152相 连接的网关148也可适于为UA108提供SIP控制能力。
除了提供SIP功能,服务器136还可包括语音呼叫软件(例如, VoIP软件)、视频呼叫软件、IM软件、语音消息传递软件(例如, 诸如音频和视频消息传递、IM消息传递等的多媒体消息传递)、记 录软件、IP语音服务器、传真服务器、web服务器、电子邮件服务器、 (一个或多个)呼叫中心应用等。
根据本发明的实施例,服务器136可包括诸如轻量级目录访问协 议(LDAP) 、 H.248、 H.323、简单邮件传输协议(SMTP)、网际 消息访问协议4 (IMAP4)、综合业务数字网络(ISDN) 、 E1/T1、 HTTP、 SOAP、 XCAP、 STUN之类的各种其他协议的接口 ,以及模 拟线路或干线(trunk)。
服务器136也可以包括PBX、自动呼叫分配器(例如,ACD)、 企业交换机、或其他类型的通信系统交换机(例如,能够将呼叫从一 个电话路由到另一个的任何设备,诸如通过根据所拨打的电话号码, 将两个或更多电路连接在一起而运行的集中式交换机中的复合机(或 一连串复合机),其中每一个电路都与用户电话相连接)或服务器、 以及其他类型的诸如媒体服务器、计算机、附件等的基于处理器的通 信控制设备。
网关148被设置为在诸如PSTN、下一代网络、2G、 2.5G和3G 无线电接入网络、或PBX的不同电信网络之间充当转换单元。网关 148的功能之一是在各种网络的不同传输和编码技术之间转换。网关 148也可支持诸如回音消除、DTMF和音频发送器的^(某体流式传输功 能。网关148还可将信号/消息从一个网络操作范例(例如,传输协议) 转换成另一个。
为了向客户机UA108提供SIP功能,服务器136和/或网关148可包括一个或更多控制器140a - N。 UA 108可适于一次注册到控制器 140a-N中的一个或多个。如此处使用的,术语"注册"是指SIP注册 和网络连接方法和处理,其包括但不限于SIP REGISTER消息的发 送和确认,并且可包括其他机制,诸如用于订阅的SUBSCRIBE消息、 使用OPTIONS消息的询问,以及诸如使用STUN协议的NAT检测 和防火墙、HTTP询问等的其他非SIP机制。
控制器140a-N可对应于驻留在服务器136上的应用或固件, 并且控制器140a-N可用于处理被引导至所控制的UA 108或从其接 收的SIP消息。由控制器140a - N处理的SIP消息可对应于由UA 108 发起并指向另一个端点156的呼出SIP消息、或由另一个端点156发 起并指向UA 108的呼入SIP消息。控制器140a - N可在通信系统100 的应用层操作。
才艮据本发明的至少一个实施例,UA 108能够同时注册到两个或 更多但不是全部控制器140。 UA 108同时注册到的控制器140中的每 一个可包括不同属性,并因此能够向UA 108提供不同的SIP功能。 例如,UA 108可同时注册到使用扩展的扩展(extended extension) (即高级特征組)的第一控制器140a、和使用服从标准因特网工程任 务组(IETF)的SIP扩展的第二控制器140b,所述服从标准互联网 工程任务组的SIP扩展用于根据包括但不限于RFC 3261的SIP协议 的一个或更多IETF RFC进4亍呼叫处理。
在同时注册配置中,UA 108能够进行活动-活动注册或活动-待机注册。在活动-活动注册中,UA 108可从任何其注册到的控制 器140接受SIP消息,并向其注册到的任何控制器140发送SIP消息, 而无需确定该消息是否正被发送至或来自主控制器140。然而,在活 动 -待机注册配置中,UA 108仅可使用活动的控制器140用于SIP 信令的目的,除非活动的控制器140中的一个或更多变得不可操作。 在这样的配置中,如果从待机的控制器140接收到消息,并且UA108 相信相应的主控制器140是可操作的,则UA 108可以将SIP消息发 送回待机的控制器140以便经由主控制器140重新路由。根据本发明的其他实施例,UA108可执行到控制器140a-N的 优先注册,从而UA 108注册到第一控制器140a,除非UA 108确定 第一控制器140a不能服务,或不可用于提供SIP功能,在该情况下 UA 108可注册到第二控制器140b。
根据本发明的其他实施例,可使用对等SIP网络配置,在该情况 下UA 108可注册到另一端点或多个端点上的控制器140。
UA 108可包括存储器112和用于执行存储在存储器112中的例 程并处理呼入/呼出SIP消息和媒体的处理器124。存储器112示例性 地包括发现模块116和控制器的列表120。发现模块116被用于在包 括能够控制UA 108的控制器140的系统100中发现设备。根据本发 明的至少一些实施例,发现模块116可适于发出任何可用控制器140 都可对其作出响应的发现请求。基于从控制器140接收到的(一个或 多个)(或者没有)响应,发现模块116将列表120填充以多个控制 器140。然后,发现模块116能够基于控制器140的各个属性132创 建包括控制器140的优先级列表的有序列表128。然后,UA108可基 于有序列表128中的控制器140的顺序确定注册到哪个控制器140。
除了提供发现控制器140和在控制器140之间仲裁的能力,发现 模块116还可以适于监控通信系统100的状态,以确定是否存在任何 当前网络104故障、服务器136故障、网关148故障或可能影响UA 108 与其控制器140之间的关系的任何其他类型的故障。如本文中将更详 细地讨论的,发现模块116可适于主动地和被动地(reactively)监控 系统IOO及其部件的状态。在主动地监控系统100的状态时,发现模 块116可使用非对话SIP消息和预定逻辑一起确定系统100的状态。 可以由另一个系统IOO部件(例如,网关148)另外地提示UA108, 以开始被动地监控系统100的状态。向UA 108提供监控系统100的 状态的能力减轻了诸如路由器的其他部件的处理负担。这允许每一个 UA 108都独立地监控系统100的状态,其提供了系统100的更多观 点(view),并且允许每一个UA 108都保持它自己的对其控制器140 的记录。换句话说,通过4吏用来自系统100中的UA 108和其他部件
13(例如,网关148和/或服务器136)的智能的组合,可获得系统100的状态的更准确的和最新的了解。允许UA 108检查网络连接层的可操作性(例如,通过经系统IOO发送IP分组)、SIP应用层的可操作性(例如,通过经系统100发送SIP消息)、以及这两者的集合,可
进一步提高系统健康了解的准确度。
服务器136和网关148也可包括用于评估系统100的状态的发现模块144。更具体地讲,每一个发现模块144都可用于独立地监控各个对等部件(例如,与包括发现模块144的设备相邻的系统100部件)以及远端部件(例如,与包括发现模块144的设备不相邻的系统100部件)的状态。每一个发现模块144都可用于独立地评估系统IOO和其中的部件的状态。
发现模块144可包括能够由用户代理108或其他端点156以集群的方式(即,多个服务器136能够回答端点提出的"我使用哪个控制器"的问题)或作为个体访问的软件模块。可使用多个协议来实现发现模块144,并且发现模块144可进一步一次支持多个协议。更具体地讲,每一个发现才莫块144可适于支持SOAP/HTTP、 SXAP (类似SOAP基于HTTP标准的另一个XML)、以及甚至SIP (例如,通过在SIP消息的主体中设置控制器140的列表)中的 一个或多个。
发现模块144可适于通过规则处理来确定对于给定用户代理108它自己的控制器列表(它可根据请求最终将该控制器列表提供给用户代理108)。该规则处理可以祐J更编码(例如,Java编码)或可包括规则引擎,所述规则引擎采用诸如XML的脚本,对其进行分析,并且当它想要确定哪个是对于请求控制器列表的用户代理108来说最适合的控制器140时执行该脚本。可包括在算法中的规则的类型包括但不限于
(1) 网络位置检查,其分析原始网络拓朴(例如,通过分析通过网络发送的IP分组)以确定对于用户代理108来说最适合的控制器140。这样的规则组可包括带宽管理功能,其中发现模块144检查进行请求的用户代理108的IP,然后查找列出了最佳可用带宽的带宽储存器,然后选择用户代理108的最佳匹配控制器140。在该情况下,最佳匹配可能对应于包括在用户代理108附近最近的控制器140并具有可用带宽的服务器136;
(2) 安全检查算法,因为可能存在用户代理108为了安全目的而应连接至特定服务器136/控制器140的某些情况。例如,CEO的电话可能想要仅连接至一直被监控并且在几秒内被修补(patch )的最安全的服务器。另一方面,可允许技术支持电话连接至形成服务器群(server farm)的一组月l务器136中的任何一个,其中安全性修补在24小时内4皮处理;
(3) 用户分配算法,其中发现模块144可检查哪个或哪些服务器136可为特定用户提供服务的映射(mapping)。如果存在多个服务器,诸如在地球冗余配置中,则可在响应中返回多个控制器140;
(4) 业务规则算法,其中发现模块144可在说明所有销售人员使用一个服务器136而所有技术支持人员使用另一个服务器的脚本中具有客户提供的关联(hook);
(5) 设备模态算法,当进行请求的用户代理108在寻找控制器140时表达其模式(例如,语音、即时消息(IM)、视频等)时可以启动该设备模态算法。当使用该算法时,发现模块144可查找内部能力分配以选择为用户提供最多模式类型的最佳控制器140。例如,可进行语音和IM的用户代理108更喜欢能够支持这两种功能的服务器136而不是仅语音服务器;以及
(6) 协议兼容性算法,当进行请求的用户代理108识别其支持特定协议组时启动该算法。这在SIP中特别有用,因为SIP是多个协议扩展。当进行请求的用户代理108需要控制器140时,其可表达其支持的协议特征(例如,现有(presence )订阅或一般订阅),并且服务器可找到该类型的用户代理108的最佳匹配。
现在参照图2,将根据本发明的至少一些实施例描述SIP控制器140发现和注册方法。该方法可以由i者如通信系统100中的UA 108的端点执行。通信系统中的每一个UA 108都可适于发现和注册到不同控制器140。当端点发送出发现消息时开始该方法(步骤204)。根据本发明的至少一个实施例,发现消息包括任何已知类型的发现消息,所述发现消息包括可被发送至系统100中的一个或更多其他部件以测试/询问部件的SIP功能的SIP消息(例如,OPTIONS消息、NOTIFY消息或SUBSCRIBE消息)。
当包括控制器140的系统100中的其他部件(例如,服务器136和/或网关148)接收到发现消息时,该部件用响应消息响应发现消息。可供替换地,如果没有部件当前可用于响应发现消息,则没有响应消息被发送回发起的端点。然后在发起端点处接收(一个或多个)控制器140的响应消息(步骤208)。由于端点接收了对定向发现消息的响应或者没有接收到响应,端点将使用其发现模块116来填充控制器的列表120。
响应消息还可包4舌每一个作出响应的控制器140的属性132。响应消息中包含的属性信息的例子包括但不限于相应的服务器136或网关148的处理能力、由控制器140提供的SIP扩展(即,SIP功能)、UA当前注册到的控制器140的数量、控制器140与端点的邻近性(即,端点和对应的设备之间的跳跃的数量)等。端点的发现模块116可使用属性信息来仲裁列表120中的控制器140的顺序,以形成有序列表128 (步骤212 )。发现模块116可使用任何类型的已知仲裁算法来确定控制器140的顺序。例如,发现模块116可试图最优化对所有控制器140列出的所有属性。可供替换地,发现模块116可将具有最适合于端点需要的所选属性的控制器140置于有序列表128中的最高位置。
在端点的发现模块116已产生控制器128的有序列表之后,发现模块116确定端点将注册到的控制器140的数量N(步骤214),即,其选择有序列表128中的"窗口"的大小。根据本发明的一个方面,数量N是管理地预定的。根据本发明的另一个方面,数量N是根据发现模块116使用的、考虑到诸如有序列表128中的控制器140的属性132之类的准则的一组规则来确定的。然后,发现模块116选择其将要注册到的N个控制器(步骤216)。数量N是大于1但小于列表128中的控制器140的总数的整数。可基于控制器140在控制器的有序列表128中的相应的次序来选择控制器140。根据本发明的至少一个实施例,发现模块116可从服务器136选择控制器140,并且从网关148选择控制器140,以便同时注册。在活动-待机配置中,端点可选择一个服务器136的控制器140作为主控制器,并选择其他服务器136和/或网关148的控制器140作为次控制器或备用控制器。
在选择了控制器140之后,使得端点能够注册到所选择的控制器140(步骤220)。根据本发明的至少一些实施例,端点可适于注册到具有不同能力和SIP特征的控制器140。例如,可允许端点同时注册到使用扩展的SIP扩展的第一控制器140和使用标准SIP扩展的第二控制器140。扩展的SIP扩展可由第一控制器140使用,以提供不可通过第二控制器140实现的附加特征。
可发送SIP REGISTER、 SUBSCRIBE、或OPTIONS消息或其他SIP信令来检测主控制器140是否仍然在线并且可用于便利SIP消息传递。例如,SIP REGISTER消息可由端点发送至所选择的控制器140,以启动注册处理。除了给端点提供注册到其控制器140的能力以外,SIP REGISTER消息也可用作控制器140的心跳(heartbeat)。SIP REGISTER消息的发送频率可以是用户可基于系统要求来配置的。换句话说,端点可向其注册到的任何控制器140发送刷新注册。
在活动-待机和活动-活动配置这两者中,端点同时注册到所有其选择的控制器140。在其操作期间,端点可以(例如,通过后续SIPREGISTER消息的定期发送)试图保持同时活动注册到控制器140。在活动-活动配置中,可允许端点向其注册到的控制器140中的任何一个发送/从其接收SIP消息。在这样的配置中,端点将同时注册到两个或更多控制器140。该双重注册将允许来自该端点注册到的控制器140中的任何一个(例如,第一控制器140a、第二控制器140b、第三控制器140c等中的任一个)的呼入SIP请求(例如,SIP INVITE消息)。如果端点被配置为具有使用活动-活动控制器模型的策略,则
端点可将来自之前发生故障的控制器140的呼入呼叫视为好像该呼入 呼叫来自服务中的控制器140—样。当这种情况发生时,端点可重新 尝试该算法以检测发生故障的服务器是否已可重新使用。端点将被配 置为允许从任何控制器140接收这样的SIP消息。根据本发明的至少 一些实施例,端点将把这些注册看作独立的注册,保持每一个注册都 具有此处所讨论的注册逻辑。更具体地讲,将允许端点把同一 AOR 注册到每一个控制器,尽管端点的实现可以是灵活的以包括不同的 AOR。这对于活动-待才几配置也是如此。
另一方面,在活动-待机配置中,可仅允许端点对呼出呼叫进行 路由并且从其主控制器140接收呼入呼叫。在可操作时,该主控制器 140也可被称为活动呼叫控制器140。该端点注册到的其他控制器140 可被称为不活动或待机控制器。
在活动-待机配置中,如果端点从次控制器或待机控制器140 接收到呼入呼叫,同时端点在其主模式下(即,端点相信主控制器140 是活动的),则端点将
(1) 用100尝试消息响应次控制器140;
(2 ) 将REGISTRATION刷新发送至主控制器140以检测主 控制器是否仍然在线并且可用于便利SIP消息传递;
(3) 如果主控制器140仍然在线,则端点将305重新定向响 应(即,使用代理)发送至次控制器140。 305重新定向响应将拒绝 经由次呼叫控制器的呼叫,并且请求次控制器140经由主控制器140 对信令进行重新路由;以及
(4) 如果主控制器不再在线,则端点将为接收到的呼叫提供 标准呼叫处理。作为该处理的一部分,端点将从主控制器140故障切 换至次控制器140,并且刷新其到次控制器140的注册。
在活动-待机配置中,如果端点正在故障切换模式下操作(即, 假设其主控制器140的状态是不可使用的并且正使用次控制器140作 为活动控制器)时从其主控制器140接收到呼入呼叫,则可拒绝该呼叫。
在故障条件或当端点相信系统100部件不可使用时的任何其他 时间期间,端点将不尝试与主控制器140建立实时通信会话。此外, 端点将故障切换至控制器的有序列表128上的第二个或下一个控制器 140。经由可生存(即次、第三或备用)控制器140对呼叫信令进行 路由将允许端点的用户在故障期间进行和接收新的呼叫。
作为将在下面更详细地描述的故障切换/故障恢复处理的一部 分,端点将识别活动控制器140的地址,并进一步得到该控制器140 支持的属性和相关联的特征。换句话说,例如,端点可适于得到其注 册到的控制器140是被指定为"扩展的/私有的SIP"还是"基本的SIP"。 端点的发现模块116可适于使用下述逻辑来发现控制器是使用扩展的 SIP还是基本的SIP:
(1) 在故障切换或故障恢复时,端点将刷新或更新其到每一 个控制器140的注册;
(2) 作为该处理的一部分,端点将尝试对次控制器140重新 订阅所有的主控制器140特征包;
(3 ) 当端点将SUBSCRIBE请求发送至次控制器140时,如 果次控制器仅支持基本SIP操作,则次控制器将不识别特征订阅请求; 然后
(4 ) 简单的次控制器140将响应以客户机错误405方法不被允许。
端点可使用该信息来将次控制器140识别为遵从标准IETF SIP 的控制器140。然后,在故障切换模式下操作时,端点将在其用户界 面(UI)上仅显示基本SIP特征。如果活动的控制器140被指定为"扩 展的"(例如,因为其恰当地对SUBSCRIBER请求作出了响应),则 端点将为呼叫和特征处理使用具有扩展的扩展的SIP并显示兼容的 UI。
活动-待机配置中可设置的其他功能包括但不限于 (1)端点从不将呼出呼叫路由至不活动的控制器140;
19(2) 当端点从活动的控制器140故障切换至待机的控制器 140时,之前活动的控制器140将被指定为不活动的并且之前不活动 的控制器将被指定为活动的;
(3) 在故障切换至指定的控制器140之前,端点将进行等待, 直到已完成所有活动呼叫。换句话说,端点将不从新指定的活动控制 器140接受新的呼入呼叫,直到已完成( 一个或多个)活动的呼叫(即, 直到端点为(一个或多个)活动的呼叫从网络104接收到BYE消息 或呼叫方已挂断)。相似地,将不允许新的呼出呼叫,直到完成故障 切换;以及
(4) 如果端点在使用次控制器140时,从不可用(out of service)的主控制器140接收到任何信令信息,则将忽略来自^L标记 为不可用的主控制器140的信令消息。然而,对于该规则有一个例外。 也就是说,如果端点从其主控制器140接收到告诉其进行重新注册的 NOTIFY消息,则端点将开始刷新或试图刷新其注册。在该情况下, 端点将^f吏用上述标准SIP处理对NOTIFY作出响应。
在端点已注册到其相应的(一个或多个)控制器140之后,本方 法结束(步骤224 )。
现在参照图3,将根据本发明的至少一些实施例描迷通信系统 100状态确定方法。在可生存配置中,对于网关148来说可能重要的 是,网关148被配置为检测何时经由主或次信令路径对呼叫信令进行 路由。当网关148将SIP OPTIONS消息发送至通信系统100中的另 一个部件时开始该方法(步骤304)。这样的部件可以对应于启用了 SIP的部件。该部件还可对应于对等部件(即,与网关148相邻的部 件)和/或远端部件(即在它们和网关148之间具有至少一个中间部件 的部件)。应少量地进行对SIP远端部件的主动监控,通常仅当系统 100管理员知道中间部件不能够监控它们的对等部件时才进行主动监 控。网关148可发送具有Max - Forwards = 0的设定的SIP OPTIONS 消息,从而确保OPTIONS消息不经过多于一个跳跃(即,其以对等 部件为目标)。如本领域技术人员可理解的,尽管此处描述了使用SIP OPTIONS消息的监控技术,但是也可使用任何其他类型的非对话SIP 事务来监控通信系统100的状态和其中的部件。更具体地讲,可发送 通用SIP消息(例如,INFO METHOD, MESSAGE METHOD或甚 至空SIP消息)来请求(invoke)任何类型的基于SIP的响应。由网 关148发送的SIP消息也可包括将由消息接收方执行的指令。例如, SIP消息可以被产生为包括可扩展标记语言(XML)消息,该可扩展 标记语言消息报告网关148和由网关148监控的诸如对等部件的任何 其他部件的健康状况、以及由接收方基于所报告的网关148的健康状 况所要采取的行动。
在网关148发送出SIP OPTIONS消息之后,其等待接收响应(步 骤308和312 )。网关148等待接收响应的时间量可基于系统100特 性而变化。根据本发明的至少一个实施例,网关148等待的时间长度 可通过实现诸如SIP计时器B或SIP计时器F( SIP计时器B和F是 RFC 3261中定义的标准SIP定时器)的SIP计时器功能来确定,如 果在发送了请求之后的预定数量的秒内没有接收到SIP消息,则所述 SIP计时器B或SIP计时器F取消SIP信令事务(诸如SIP INVITE 消息)。如果接收到任何SIP响应(即使是100尝试),则取消计时 器B或计时器F或将其短路。然而,如果计时器B开始计时,则可 要求网关148取消冲突的(offending) SIP事务,并试图使用替换的 路线对该请求进行路由。如果网关148已知的所有路由地址都已用尽, 则SIP网关148可用408请求超时(R叫uest Timeout)对原始SIP
信令事务作出响应。
一旦接收到响应(例如,作为实际响应或作为在预定量的时间内 没有接收到响应的确定),该方法继续并且网关148使用发现模块144 来确定响应是否对应于故障情况(步骤316)。如果满足下述条件中 的任何一个,则该响应可指示网络104或系统100部件已出现故障
(1) 由于超时而导致的OPTIONS监控请求失败;
(2) 由于事务超时和/或SIP计时器B超时(对于INVITE事务)而导致的预定数量个(例如5个)连续的SIP请求事务失败;或 (3 ) 如果并且仅当逐跳跃地(即Max - Forwards - 1)并且 非端对端地(即Max _ Forwards>l )地执行监控时,接收到4f对 OPTIONS监控请求的具有之后重试头部(Retry-After header)的 寸壬何400或500等级(class )响应,并且至少在之后重试头部中指定 的时间段内,地址华皮标记为"过载"。
对于情况(3),包括该地址的IP地址的现有对话应继续使用该 地址,除非发生故障,但端点不应将该地址用于新对话,直到其已经 恢复。在现有对话正在使用主机名而非IP地址的情况下,将进行对 于每一个事务对该主机名的解析(resolution),并且所返回的地址将 为可用的最高优先级的地址。如果主机名仅解析为单个IP地址,并 且该地址被标记为"过载",则应发送请求。条件(3)的实际效果是 网关148的发现才莫块144应意识到三个状态可用;不可用;和过载。 被标记为过载的地址继续接收对话内的后续请求,但不接收新的对话 请求。
如果基于对OPTIONS消息的响应,网关148的发现模块144确 定不存在故障条件并且系统100处于正常操作状态下,则发现模块144 将通过确定响应中是否包括指令而继续(步骤320)。发现模块144 可以对该响应进行分析,以寻找包括在响应中或附于响应(即,在消 息的头部或尾部(footer)中)的可执行指令。如果在响应中包括指 令,则执行指令(步骤324)。此后,或者在响应不包括指令的情况 下,发现^=莫块144继续更新其对系统100的状态的记录,以反映诸如 服务器136的响应部件的操作(步骤328)。 一旦已更新了网络的状 态,则本方法继续并且发现模块144确定是否到了发送新消息的时间 (步骤332)。更特别地,网关148可使用SIP OPTIONS消息到其 他SIP服务器136的定期发送作为确定其他SIP服务器136是否活动 的心跳机制。可以按预定间隔将OPTIONS消息发送至其他系统100 部件。所述预定间隔的长度可通过实现SIP计时器B或其变体来确定。 更具体地讲,可根据网关148是否检测到故障情况以不同间隔来执行
22OPTIONS监控。
示例性地,SIP OPTIONS消息的主动监控间隔在约60至约 100000秒的范围内是可配置的,并且应在后续监控尝试之间使用被配 置的值的75%和125%之间的均匀(uniform)随机时间。例如,如 果主动监控间隔被设定为60秒,贝'〗OPTIONS消息的发送之间的实 际间隔可均匀地分布在45和75秒之间。对主动监控处理中的抖动现 象的有意引入使得所述请求可以保持不同步,从而随时间将负载均匀 地散布在被监控的部件(即,服务器136)上。在一个实施例中,主 动监控间隔可,皮配置为约900秒或15分钟。
示例性地,SIP OPTIONS消息的被动监控间隔在约10至约3600 秒的范围内是可配置的,并且也可以在后续监控尝试之间具有被配置 的值的75%和125%之间的均匀随机时间。对^L动监控(与主动监控 相反)的单独计时器的提供允许网关148更快速地检测正被监控的当 前不可用的部件何时再次变得可用。在一个实施例中,被动监控间隔 可蜂皮配置为约120秒。
尽管就SIP计时器B的使用在上面进行了描述,可在不偏离本 发明的原理的情况下实现任何范围的值,该值具有或不具有该值的均 匀随机时间修改。此外,可基于外部业务逻辑关联(hook)来修改监 控间隔。例如,如果监控机制与带宽管理系统相结合,则监控系统可 通过表示网络中的可用带宽的一些系数进一步调整监控间隔。
回到步骤316,如果发现才莫块144确定响应对应于故障条件,则 发现模块144将更新其对系统100的状态的记录以反映该故障(步骤 336)。作为检测到该部件故障的结果,网关148将进行故障切换并 开始以故障切换状态操作,尤其是如果发生故障的部件位于主通信路 径上的话。
在故障切换期间,网关148的发现模块144将通过继续将 OPTIONS消息发送至被识别为不可用的部件而开始4皮动地监控系统 100中的部件(步骤340 )。该被动监控允许网关148的发现模块144 检测何时该部件再次在线。当开始被动监控时,网关148将停止主动监控该部件并开始应用被动监控规则。更具体地讲,在被动监控期间,
网关148的发现模块144可发起维护测试以确定被监控的部件是可用 的还是不可用的(步骤344)。维护测试可^f吏用与主动监控算法类似 的监控算法。网关148的发现模块144将继续应用该维护测试,直到 故障恢复(即,直到部件的状态从不可用变得可用)(步骤348)。 在维护测试期间,网关148可将任何类型的SIP请求(例如,INVITE、 SUBSCRIBE、 NOTIFY等)发送至当前被标记为不可用的部件。如 果下述条件中的一个或多个成立,则网关148的发现才莫块144将继续 将部件标记为不可用
(1) SIP计时器B在已发送了 INVITE消息之后开始计时;
(2) 网关148接收到408请求超时响应;
(3) SIP请求事务超时;或
(4 ) 在尝试发送请求时出现网络104或传输层错误。 如果在维护测试期间以上列出的条件中的任一条件都不成立,则 网关148的发现模块144将确定已出现故障恢复,并且本方法继续至 步骤328。根据本发明的至少一些实施例,将继续应用被动监控和维 护测试,直到被监控的部件用除了 503服务不可用(Service Unavailable )以外的任何SIP响应来回复两个连续的OPTIONS请求 尝试。 一旦已满足这些条件,网关148可将该部件再次看作是可用的, 可回到主动监控算法,可产生适合的简单网络管理协议(SNMP)事 件,并且如果可应用,则开始使用现在活动的部件。
如本领域技术人员可理解的,网关148不是可保持路径再分配信 息的唯一系统100部件。相反,任何SIP网络单元都可适于包括路径 再分配信息等。例如,诸如UA 108的端点也可保持列出了在某些部 件被识别为不可用的情况下可使用的通信路径的路径再分配表。
现在参照图4,将描述被动监控方法。当网关148从服务器136 或类似的系统100部件接收到请求时本方法开始(步骤404)。网关 148以正常方式处理接收到的请求(步骤408)。更具体地讲,网关 148可处理请求,就如同发送部件是可用的一样,而无需先确定该部件是否实际可用。
此后,网关148基于其内部保持的状态表确定发送部件是否实际 ;故标记为不可用(步骤412)。如果该部件没有^L标记为不可用,则 本方法结束(步骤424)。否则,网关148将通过将SIP OPTIONS 消息发送至部件而开始其维护测试(步骤416)。然后,网关148可 以更新其部件状态的记录(步骤420 )。重复该维护测试和状态更新 处理,直到该部件被确定为再次可用,本方法在该点处结束(步骤 424)。
参照图5,将描述在故障切换和故障恢复状态期间网关148的操 作。在该具体方法中,与网关148相关联的控制器140可对应于可生 存端点的次控制器或备用控制器140。当网关148接收到可生存端点 的呼入呼叫时,该方法开始(步骤504)。然后,网关148确定主信 令路径是否可用(步骤508 )。根据本发明的至少一些实施例,网关 148可在该步骤期间参考其内部部件状态表。
如果主信令路径被确定为可操作的,则网关148将接收到的信号 经由主路径路由到目标端点(步骤512 ),然后该方法结束(步骤536 )。 然而,如果网关148确定主信令路径由于任何原因(例如,网络104、 服务器136或主信令路径上的其他部件不可用)而不可用,则本方法 继续,并且网关148经由次信令路径将信号发送至目标端点(步骤 516)。该特定步骤是基于次信令路径并非也不可用的假设而执行的。 如果网关确定次信令路径也不可用,则选择绕过(一个或多个)故障 部件的另一备用信令路径,并使用该路径将信号发送至端点。
在呼叫信号已经经由次信令路径被发送至目标端点之后,网关 148等待确定是否从端点接收到了 305重新定向响应(使用代理)消 息(步骤520)。在活动-待机配置中,如果端点相信该主信令路径 是可操作的,则经由第二路径接收呼叫信号的端点可发送305重新定 向响应。这种信任是基于在端点处而不是网关148处执行的状态监控 操作。因此,基于系统100的不同方面,端点可具有对系统100中的 一个或更多部件标记的不同状态。因此,如果网关148基于其经由次
25路径对呼叫信号的重新定向而接收到305重新定向响应,则网关148 将试图经由主信令路径重新定向呼叫信号(步骤524)。如果由于呼 叫信号的成功发送,主信令路径被确定为可用的(步骤528),则本 方法在步骤536结束。如果呼叫由于主信令路径的不可用性而被拒绝, 则可经由次信令路径拒绝该呼叫或将其发送回(步骤532)。此外, 网关148可将NOTIFY消息发送至目标端点,该消息指示其重新检查 其对于主信令路径的状态的观点。此后,或者如果没有从端点接收到 重新定向响应消息,则该方法结束(步骤536)。现在参照图6,将根据本发明的至少一些实施例描述系统100状 态确定的端点方法。开始,端点(例如,可生存UA 108)以正常状 态操作(步骤604)。然后,端点使用其发现模块116的逻辑来确定 是否已检测到网络故障(步骤608)。在可生存的配置中,能够检测 何时进行故障切换或故障恢复对于端点是有用的。如果出现了下述事 件中的一个或更多,则端点所使用的发现模块116逻辑将确定已出现 了网络故障(1) 端点未从其试图注册到的所有控制器140 (例如,其主 和次控制器140)接收到对作为心跳的SIP REGISTER消息的响应;(2 ) 端点未接收到对SIP INVITE消息的响应,其中已经在 尝试建立呼出呼叫的正常处理中发送了 SIP INVITE消息;(3) 端点未接收到对于为新SIP对话的正常创建或对话中 的改变而发送的对任何SIP信令消息的响应;或者(4 ) 端点未从其配置服务器接收到对(可由诸如TCP/IP、 HTTP、 XML或SOAP的不同类型的协i义执行的)关键请求的成功响 应、或诸如用于检索与故障相关的数据的数据服务之类的任何其他带 外非通信服务。如果端点本身没有检测到故障,则该方法继续,并且端点确定是 否已经被通知了故障(步骤612)。可在端点处以从网关148、服务 器136或系统100中的一些其他能够监控系统100的状态的部件发送 的SIP NOTIFY消息的形式"^妾收通知。SIP NOTIFY消息可指示端点应当进行故障切换、重新启动或刷新/更新(renew)其到所有其控制 器140的注册(从而避开(circumvent)端点的逻辑)。如果没有接 收到通知,则本方法返回到步骤604。然而,如果端点(例如,通过接收SIP NOTIFY消息)被通知 了系统100中的故障,则端点确定故障通知是否正确(步骤616)。 更具体地讲,端点可检查其内部保持的控制器列表120和128以确定 是否控制器140中的任何一个被标记为不活动的或不可用的。大多数 情况下,端点将直接遵从NOTIFY消息的指导。然而,在某些情况下, 端点可能确定其对系统100的观点是正确的观点并且可用重新定向响 应消息对NOTIFY消息作出响应(步骤620)。该重新定向响应可使 得NOTIFY消息的发起部件检查其对系统100的^L点。然后,该方法 返回至步骤604。如果端点判定故障通知是正确的或判定要遵从NOTIFY消息的 指导,则端点确定NOTIFY消息是否包含指令(步骤624)。这些指 令可以是相对通用的指令,诸如试图重新注册到所有控制器140。可 供替换地,这些指令可包括要求端点尝试并重新注册到特定控制器 140的指令组。端点可试图以长或短的间隔刷新或注册到控制器140。 刷新/注册间隔的长度可基于指令组中的指令或其他因素而改变。这些 指令也可包含由发送NOTIFY消息的部件感知到的整个系统100的健 康信息。如果消息的确包含指令,则端点将执行这些指令(步骤628 )。如果端点本身检测到故障(步骤608),或在指令已经被端点执 行(步骤628)之后,或在消息不包含指令的情况下(步骤624), 则端点注册到有序列表128中的下一个控制器140 (如果有的话), 以将它注册到的可操作控制器140的数量保持为N (步骤630)。以 与针对图2的步骤220在上面描述的方式相同的方式实现注册。然后, 该方法继续,并且端点执行故障切换,使得其开始以备用状态操作(步 骤632)。在故障切换模式下的操作期间,端点将使用其备用控制器 140并且/或者使用次信令路径。除了以故障切换模式操作以外,端点 可监控系统100故障恢复(步骤636 )。如果发现模块116检测到其则本方法继续, 并且端点确定其是否已被另一个部件通知了故障恢复(例如,通过从 网关148、服务器136等接收NOTIFY消息)(步骤640 )。如果端 点没有被通知故障恢复,则本方法返回到步骤632。然而,如果端点 的确接收到指示故障恢复的NOTIFY消息,则本方法通过确定 NOTIFY消息是否包含用于由端点执行的指令而继续(步骤644)。 如果NOTIFY消息中包括指令,则由端点执行这些指令(步骤648 )。 在执行这些指令(步骤648)之后,如果不存在指令(步骤644), 或如果端点自己检测到故障恢复(步骤636),则端点取消注册到其 在步骤634中最后注册到的控制器140,以将其注册到的可操作控制 器140的数量保持为N (步骤650 )。取消注册的行动会触发SIP解 除注册和网络断开算法,所述SIP解除注册和网络断开算法包括取消 订阅SIP事件包和可能的其他非SIP(例如,带外)数据交互。然后, 该方法返回到步骤604。发现模块116可包括可配置参数,所述可配置参数决定着从主控 制器到次控制器140的故障切换或故障恢复是否要由自动端点检测触 发,或者仅被手动地触发(即,通过接收SIP NOTIFY消息)。可基 于端点是否检测到故障条件,以不同间隔执行发现模块116所使用的 心跳监控机制。现在参照图7,将描述状态通知方法。该方法开始于系统100部 件(例如,服务器136、网关148或包括发现模块144在内的任何其 他设备)确定其是否应关于系统100通知诸如UA 108的端点(步骤 704)。典型地,该部件将NOTIFY消息发送至端点,通知端点系统 100状态的一些方面已经改变。例如,NOTIFY消息可通知端点系统 中的某个部件已被注册为不可用。可供替换地,NOTIFY消息可通知端点发送部件的健康状况。
该方法在步骤704保持,直到确定应将通知消息发送至端点。在 作出这样的确定之后,该方法继续,并且该部件产生消息(例如, NOTIFY消息)(步骤708)。然而,如可以理解的那样,该部件可 使用任何其他类型的SIP或非SIP消息来通知端点。该通知可允许部 件触发端点以在系统100故障或恢复条件下进行故障切换或故障恢 复。因为端点可保持控制器的有序列表128并且端点具有保持活动注 册到所有这些控制器的能力,所以当其检测到系统IOO故障条件时, 系统100部件可触发端点采取行动。可例如通过发送标准通知消息(例 如,遵从标准SIP IETF的NOTIFY消息)或包含特定指令组的扩展 消息来触发这些行动。相应地,该方法继续并且该部件确定通知消息 是否应在其中包括指令(步骤712)。
如果没有特定指令被确定为是必需的,则该部件可告诉端点重新
注册到控制器的有序列表128中的N个控制器140,并且将普通通知
消息发送至端点(步骤720)。因此,接收到这样的通知的任何端点
都将尝试重新注册到其列表上的N个控制器140。基于该尝试的重新
注册的成功,端点将能够得到哪些控制器140可用于处理SIP事^(例
如,支持呼入和呼出SIP呼叫)。然后,端点可使用控制器的有序列
表128上的最高优先级的控制器140作为其主控制器,根据该自确定
信息来行动。该特定机制可4吏用遵从标准SIP IETF的NOTIFY消息。
该消息可遵守具有NOTIFY参数"event" = "probation"的NOTIFY消
息的SIP标准。下面提供了这样的NOTIFY消息的一个例子
registration aon="sip:joe@example.com" id="a7" state="active"> <contact id='76" state="active" event-"probation" expires="0"
q="0.8" retry-after="0">
然而,如果部件确定特定指令应被包括在通知消息中,则该部件 可以在将消息发送至端点(步骤720)之前将一个或更多指令组添加 至该消息(步骤716)。通过将指令并入通知消息,部件可告诉端点 开始使用端点的控制器140列表120上的特定控制器140。在这样的
29场景中,端点根据该部件来告诉其应使用哪个控制器140,而不是依 赖于其自己的智能。该特定机制可使用具有扩展的扩展的标准SIP NOTIFY消息。NOTIFY消息将通常遵守NOTIFY消息的SIP标准; 此外,如果端点应进行故障切换或故障恢复,则其可使用事件名称是 诸如〈eventName〉changeServer〈/eventName〉的示例性简档事件包格 式。该消息也可包括包含特定控制器140的服务器136的时间戳和地 址,其中端点应故障切换或故障恢复至该控制器140。在下面用XML
指令组来提供这样的扩展SIP NOTIFY消息的例子
NOTIFY sip:1111@10.0.75.2 SIP/2.0 Call-ID: cid-1@10.0.75.2 CSeq: 2 NOTIFY
From: <sip:1"1@atler.com>; tag=random2 To: <sip: 1111@atler.com>; tag=random1
Via: SIP/2.0/UDP 10.0.0.100;branch-id=z9hG4bk-random-the primary call controller
SIP/2.0/Tl_S 10.0.0.200;branch-id=z9hG4bK-random-cm1
Content-Length: 22
Content-Type: application/profile+xml
Contact: <sip:1111@m0.0.200;transport=tls/
Max-Forwards: 69
User-Agent: Communication Manager v1.0 Event: ccs-profile
Subscription-State: active;expires=3600 Record-Route: <sip:10.0.0.100:5060;lr;transport=UDP>
<7xml version="1.0"> <6vent>
<eventName>changeServer</eventName> <eventTime>{time stamp}</eventTime> <eventData>{ip address}</eventData>
</6V6nt>
本领域技术人员可理解,所述指令可采用除XML指令组以外的 许多不同形式。例如,该指令可包括对应于并且导致已经存储在端点 的存储器112中的算法或应用的执行的预定触发器。此外,尽管上面 的示例NOTIFY消息在消息的主体中包括其指令组,但是该指令組也 可被置于通知消息的头部或尾部中。这可以基于所使用的通知消息的 类型而改变。该指令可用于实现多个不同行动,诸如为发送部件传递 健康信息和为系统100的其余部分传递其状态信息、触发端点执行特 定任务。
30尽管与事件的特定顺序相关地讨论了上述流程图,但是应理解, 可对该顺序进行改变而不会实质地影响本发明的操作。此外,不需要 按照示例性实施例中描述的事件的准确的顺序进行。此处举例说明的 示例性技术不限于具体举例说明的实施例,而可用于其他示例性实施 例,并且每一个所描述的特征都可单独地和分开地要求专利权。
除了或代替所描述的通信设备、编程微处理器或微控制器和外围
集成电路元件、ASIC或其他集成电路、数字信号处理器、诸如分立 元件电路的硬连线电子或逻辑电路、诸如PLD、 PLA、 FPGA、 PAL 的可编程逻辑设备、诸如服务器的通信设备、个人计算机、任何可比 较的装置等,可在专用计算机上实现本发明的系统、方法和协议。一 般来说,任何能够实现状态机,从而能够实现此处举例说明的方法的 设备都可用于实现根据本发明的各种通信方法、协议和技术。
此外,可使用过程的或面向对象的软件开发环境,以软件容易地 实现所公开的方法,所述软件开发环境提供可在各种计算机或工作站 平台上使用的便携式源代码。可供替换地,可使用标准逻辑电路或 VLSI设计部分地或全部地以硬件实现所^^开的系统。使用软件还是 硬件来实现根据本发明的系统取决于系统的速度和/或效率要求、具体 功能和被使用的具体软件或硬件系统或微处理器或微计算机系统。根 据此处提供的功能描述并利用通信领域的通用基本知识,可应用领域 的普通技术人员可使用任何已知的或稍后开发的系统或结构、设备和
法和协议。
此外,所公开的方法可以用软件容易地实现,该软件可以存储在 存储介质上,在编程通用计算机上与控制器和存储器、专用计算机、 微处理器等相协作地执行。在这些例子中,本发明的系统和方法可被 实现为诸如applet、 JAVA⑧或CGI脚本的嵌入在个人计算机上的程 序、实现为驻留在服务器或计算机工作站上的资源、实现为嵌入在专 用通信系统或系统部件中的例程等。系统也可通过将系统和/或方法物 理地并入软件和/或硬件系统(诸如通信设备或系统的硬件和软件系统)中来实现。
因》匕,显然已经提供了才艮才居本发明的、用于保持SIP可生存网络
和网络部件的系统、设备和方法。尽管已经结合多个实施例描述了本发 明,但是显然许多替换、修改和变化对于可应用领域中的普通技术人 员来说都是显而易见的。因此,其旨在包括本发明的精神和范围内的 所有这样的替换、修改、等同和变化。
权利要求
1、一种方法,包括客户机注册到多个服务器的子集,其中所述子集包括多于一个但少于所述多个服务器的全部服务器的服务器;所述客户机从服务器的所述子集中的至少一个服务器获得服务;以及响应于所述子集中的第一服务器变得对于客户机不可用,客户机注册到所述多个服务器中的当前不包括在所述子集中的第二服务器,从而将所述第二服务器添加至服务器的所述子集中。
2、 如权利要求l所述的方法,还包括响应于不可用的第 一服务器再次变得对于客户机可用,客户机取 消注册到所述第二服务器,从而从服务器的所述子集中去除所述第二 服务器。
3、 如权利要求2所述的方法,还包括响应于不可用的第一服务器再次变得对于客户机可用,客户机重 新注册到所述第一服务器,从而将所述第一服务器添加回服务器的所 述子集。
4、 如权利要求l所述的方法,其中所迷多个服务器中的服务器 以序列排序;注册到多个服务器的子集包括客户机注册到所述序列中的客户机可用的前N个服务器, 其中N是整数;以及 注册到第二服务器包括客户机注册到所述序列中的客户机可用的第N+l个服务器。
5、 一种存储有指令的计算机可读存储介质,所述指令在被计算 机执行时,使得计算机执行如权利要求1 - 4中的一项所述的方法。
6、 一种i殳备,包括多个服务器;以及客户机,适于注册到所述多个服务器的子集,其中所述子集包括 多于一个但少于所述多个服务器的全部服务器的服务器,以从服务器 的所述子集中的至少一个服务器获得服务,所述客户机适于响应于所 述子集中的第二服务器变得对于客户机不可用,而注册到所述多个服 务器中的当前不包括在所述子集中的第一服务器,从而将所述第一服 务器添加至服务器的所述子集。
7、 如权利要求6所述的设备,其中客户机还适于响应于不可用的第二服务器再次变得对于客户机 可用而取消注册到所述第一服务器,从而从服务器的所述子集中去除 所述第一服务器。
8、 如权利要求7所述的设备,其中客户机还适于响应于不可用的第二服务器再次变得对于客户机 可用而重新注册到所述第二服务器,以将所述第二服务器添加回服务 器的所述子集。
9、 如权利要求6所述的设备,其中 所述多个服务器中的服务器以序列排序; 所述服务器的所述子集包含所述序列中的对于客户机来说可用的前N个服务器,其中N是整数;以及所述第一服务器是所迷序列中的对于客户机来说可用的第N+l 个服务器。
全文摘要
本发明涉及用可生存网络的控制器列表中的控制器的滑动窗口来注册端点。提供了用于保持SIP可生存网络的方法、设备和系统。SIP端点保持其可用的控制器的有序列表并注册到包含列表中的前N个控制器的子集,并从该子集中的一个或更多个控制器获得服务,其中N是列表中的多个但不是全部控制器。如果子集的控制器中的一个变得不可用,则端点注册到列表中的第N+1个控制器,从而将其添加至子集。如果并且当一个控制器再次变得可用时,端点取消注册到第N+1个控制器,从而将其从子集中去除,并且如果需要的话重新注册到一个控制器。这样,子集形成了列表上的滑动窗口。
文档编号H04L29/06GK101677320SQ20091016113
公开日2010年3月24日 申请日期2009年8月4日 优先权日2008年9月16日
发明者A·贝克, E·库珀 申请人:阿瓦亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1