有效且经济的分布式呼叫准入控制的制作方法

文档序号:7752899阅读:105来源:国知局
专利名称:有效且经济的分布式呼叫准入控制的制作方法
技术领域
本发明涉及有效且经济的分布式呼叫准入控制。
背景技术
企业呼叫系统(例如由企业或其它实体使用的电话系统)或呼叫中心在一天之 内通常可接收到数千个呼叫。这些呼叫可能在不同的位置被接收。每个呼叫从承载该呼叫 的网络请求一定量的带宽。但遗憾的是,网络带宽是有限的。因此,对于每一个呼叫,网络 中的系统必须确定是否有足够的未使用的带宽用于处理每个呼叫。通常情况下,中央系统 维护可用带宽量的计算结果。当每个呼叫控制器接收到新呼叫的请求时,该呼叫控制器询 问中心系统是否有足够的带宽用来处理该电话呼叫。但遗憾的是,由于网络具有若干呼叫 控制器而变的更加多样化,向中央系统请求带宽的过程变得低效并产生增加的网络流量。

发明内容
此处描述的实施例考虑了有关上述问题和其它问题。在此,提供了一种能够在几 个呼叫控制器之间分配带宽的分布式呼叫控制系统。该分布式呼叫控制系统的实施例包括 一个或多个服务器,所述一个或多个服务器执行两个或更多个管理呼叫控制的呼叫处理服 务器的实例。这些呼叫处理服务器构成集群或群组的形式。由该集群协商和确定成员之间 的带宽分配,而非由一个中央系统控制带宽分配。如果一个成员请求更多的带宽,则呼叫处 理服务器评估自身的需要并从其它成员处请求更多的带宽。对带宽的协商和请求通过一组 使带宽管理系统化的动态和静态的带宽数据来实现。实施例的示例性的应用包括支持企业 呼叫中心结构或支持大型电话流量管理系统。其它的应用对本领域普通技术人员来说是显 而易见的。这些实施例有多个优点。例如,这种设计根据各个呼叫处理服务器实例的流量特 征动态地管理多个呼叫处理服务器实例之间的呼叫带宽。“动态”指的是,如果一个特定的 呼叫处理服务器实例在一段时间承受高带宽的使用,限制了其允许呼叫通过的能力,则该 实例可以获得更多许可该实例允许更多呼叫的带宽。为了避免太频繁的带宽请求,这些获 得的带宽理想上应该足够该呼叫处理服务器实例达到一个允许该实例操作一段时间的带 宽水平。并且,为了尽可能地最小化对呼叫的拒绝,带宽请求应尽可能在带宽耗尽的状况发 生之前发出(预测方法)。短语“至少一个”,“一个或多个”和“和/或”是开放式的表达,在操作中既可全取 也可选取。例如,“A,B和C中的至少一个”,"k, B或C中的至少一个”,"k, B和C中的一个 或多个”,“A,B或C中的一个或多个”,以及“A,B和/或C”每个表达都表示A单独,B单独, C单独,A和B —起,A和C 一起,B和C 一起或A,B和C 一起。术语“一”实体指的是一个或多个该实体。因此,在此术语“一”,“一个或多个”和 “至少一个”可以互换使用。注意术语“包括”,“包含”和“具有”也可以互换使用。此处使用的术语“自动的”以及它的变型,指的是在执行操作时不需要实质性的人工输入而完成的任何处理或操作。然而,即使一个处理或操作的执行使用了实质的或非实 质的人工输入,如果这个输入是在该处理或操作的执行之前收到的,则该处理或操作也可 以是自动的。如果人工输入影响到处理或操作如何执行,则该输入被看作是实质的。那些 同意处理或操作执行的人工输入不看作是“实质的”。此处使用的术语“计算机可读介质”指的是任何参与为处理器执行提供指令的有 形的存储器。这样的介质可以是多种形式,包括但不限于,非易失性介质、易失性介质和传 输介质。非易失性介质包括,例如,非易失性随机访问存储器(NVRAM),磁盘或光盘。易失 性介质包括动态存储器,如内存。计算机可读介质的通常形式包括,例如,软盘,软磁盘,硬 盘,磁带或任何其它磁介质,光磁介质,光驱(CD-ROM),任何其它光介质,穿孔卡片,纸带,任 何其它有孔的物理介质,随机存取存储器(RAM),可编程只读存储器(PROM)和可擦除可编 程只读存储器(EPROM),FLASH-EPR0M,固态介质如存储卡,任何其它存储芯片或盒式磁带, 或任何其它计算机可读的介质。当计算机可读介质被配置为一个数据库,应当理解为该数 据库可以是任何类型的数据库,如关系型、层次性、面向对象型,和/或诸如此类。因此,本 发明包括一个有形的存储介质和现有技术已知的等同物以及后续的介质,用于存储实现本 发明的软件。此处使用的术语“确定”,“运算”和“计算”以及它们的变型可以互换使用并且包 含任何类型的方法、处理、数学操作或技术。此处使用的术语“模块”指的是任何已知的或随后开发的硬件、软件、固件、人工智 能、模糊逻辑或硬件和能够执行与该元件相关的功能的软件的组合。此外,尽管本发明以示 例性实施例的形式描述,应该认识到本发明的各个单独的方面可以分别要求保护。


本发明结合以下附图描述图1是能够在呼叫服务器之间分发网络带宽的分布式呼叫系统的一个实施例的 框图;图2是呼叫服务器的一个实施例的框图;图3是由一个或多个呼叫服务器存储、发送或接收的用于分发和请求带宽的数据 结构的框图;图4是服务器发起和确定初始带宽分配的过程的一个实施例的流程图;图5是服务器管理向请求服务器分配的初始带宽的过程的一个实施例的流程图;图6是请求服务器确定是否需要更多的带宽以及请求所需带宽的过程的一个实 施例的流程图;图7是提供服务器响应对另外的带宽的请求的过程的一个实施例的流程图;图8是核查服务器群组的成员的带宽使用情况的过程的一个实施例的流程图;图9是用于执行本发明的系统和方法的计算机系统环境的一个实施例的框图;图10是用于执行本发明的系统和方法的计算机系统的框图。在附图中,相似的组件和/或特征使用相同的附图标记。进一步,同一类型的不同 组件用附图标记后跟随的用于区分相似组件的字母来区分。如果说明书中只使用了第一附 图标记,那么该描述可应用于任何一个具有该相同第一附图标记的相似组件,而与第二附图标记无关。
具体实施例方式该确定性的描述仅仅是提供实施例,而并非意在对本发明的保护范围、适用性或 配置构成限制。相反的,该确定性的描述为本领域的普通技术人员提供能够实现这些实施 例的描述。应该理解为在不脱离本发明的精神和权利要求所限定的保护范围的情况下可以 对元件的功能和配置做出各种改变。图1示出了用于管理电话呼叫的系统100的一个实施例。该系统100的若干组成 部分可以是硬件、软件或软件和硬件的组合。下面结合图9和图10描述可具体化系统100 的一些组成部分的计算机系统环境和计算机系统。这样,下面是对系统100的一些组成部 分的功能性描述。实施例中,系统包括两个或更多个操作用于管理呼叫并通过网络114通信的服务 器102、104和/或106。每个服务器102、104和/或106可通过网络114、116和/或118 管理分支108、110和/或112的电话呼叫。分支108、110和/或112可包含一组多个通 信设备,例如电话。例如,分支可以是呼叫中心的一部分或企业网络的站点。典型地,分支 108、110和/或112是因特网协议(IP)地址和/或电话号码的集合。网络114、116和/或 118可以是如结合图9和图10描述的任何可信网络或不可信网络,用于使分支108、110和 /或112与服务器102、104和/或106之间能够进行数据通信。系统100管理电话呼叫或者来自一个或多个分支的一个或多个IP地址的带宽请 求。作为示例,电话呼叫请求可来自分支108。该请求可通过网络114发送到服务器102。 在允许该呼叫之前,服务器114必须确定网络114是否具有足够的带宽。通常情况下,网络 114,116和/或118以及服务器102,104和/或106之间的通信是带宽受限的。这样,服务 器102、104和/或106构成的群组必须共享带宽。因此,服务器A 102必须能够确定该电 话呼叫是否在系统100中具有足够带宽。服务器102、104和/或106是服务器102、104和/或106共享可用带宽的群组中 的一部分。为了共享带宽,服务器102、104和/或106为服务器102、104和/或106中的 每一个分配带宽量。当每个服务器102、104和/或106管理或控制呼叫时,使用所分配带 宽的一部分。然而,在某些情况下,服务器102、104和/或106需要更多的带宽用于管理呼 叫。在这些情况下,服务器102、104和/或106可以从群组中的其他成员那里请求更多的 带宽。图2示出了服务器200的一个实施例。服务器200可与服务器102、104和/或 106(图1)相同或相似。实施例中,服务器200是结合图7描述的计算机系统。服务器200 可具有一个或多个可作为计算机模块运行的组成部分。服务器200可包括呼叫处理服务器 202和/或控制表204中的一个或多个,但不限于此。呼叫处理服务器202为服务器管理或控制呼叫。该呼叫处理服务器202接收来自 分支108、110和/或112(图1)的成员的IP地址的电话呼叫请求。该呼叫处理服务器202 可按需对呼叫进行路由以完成呼叫。不过,在实施例中,呼叫处理服务器202确定呼叫是否 具有足够的带宽。如果需要更多的带宽,则该呼叫处理服务器请求另外的带宽。在一些实 施例中,呼叫处理服务器还可具有如下文所述的群组管理员的功能。
控制表204可存储控制信息,所述控制信息使呼叫处理服务器202能够确定是否 具有足够的可用带宽以及是否联系群组成员以获得更多的带宽。图3示出了控制表的一个 实施例。通常情况下,每个服务器102、104和/或106包含控制表204。该呼叫处理服务器 202和控制表204使得每个成员服务器102、104和/或106能够单独管理带宽需求而不需 要中央系统。图3示出了可包含在控制表204 (图2)中的控制信息的具体化的数据结构300的 一个实施例。控制信息300可由两个或更多的数据域302、304、306、308、310、312和/或 314组成。如椭圆点316所示,可具有少于或多于图3所示的部分。有些控制信息300可为 静态的,具有固定的值。然而,其他控制信息300是动态的,发生变化。这些动态信息可以 是周期性(如每天、每小时等)计算的或响应于事件(如接收到新的呼叫,新成员加入到服 务器群组等)而计算的。管理员域302包含一个位或其他标志,用于表示服务器102、104或106是服务器 群组中成员的管理员。管理员是在初始建立该服务器群组后确定的或者在某个需要重建该 服务器群组的事件(例如,网络中断,服务器故障等)发生后确定的。管理员帮助确定初始 分配给群组成员的带宽并进行对服务器群组的周期性核查,如下所述。位置域304包含服 务器102、104和/或106 (图1)或由服务器102、104和/或106 (图1)管理的分支108、 110和/或112(图1)的位置的标识。该位置域304可向管理员或其他服务器标识出服务 器102、104和/或106 (图1)。最大允许带宽域306存储对整个系统100 (图1)可用的带 宽。该最大允许带宽306可用于确定给服务器102、104和/或106的分配或核查由系统 100(图1)所使用的带宽。通常情况下,管理员为服务器102、104和/或106维护最大允许 带宽306。当服务器群组建立之后,管理员域302、位置域304和最大允许带宽306是静态 的,除非某个事件(例如,服务器故障等)改变了该服务器群组。已分配带宽域308存储分配给服务器102、104和/或106的当前带宽值。每呼叫 带宽310是每个呼叫所需要的带宽量。该每呼叫带宽310可包括每个呼叫使用的平均带宽 量或表示呼叫所需要的最高历史带宽。当前已用带宽域312存储由服务器102、104和/或 106(图1)正用来进行当前由服务器102、104和/或106(图1)所管理的所有呼叫的带宽 量的测量值。当前已用带宽312随着呼叫开始或完成而改变。带宽阈值314可以是一个带 宽水平,在该水平时服务器102、104和/或106 (图1)将需要请求更多带宽。例如,带宽阈 值314可为已分配带宽308的80%。如果当前已用带宽312超出带宽阈值314,则服务器 102、104和/或106 (图1)将需要请求更多的带宽。其他值、测量值和计算结果可存储在控 制信息300中,如下文所述。图4示出了从请求服务器的角度来看,用于初始分配带宽的方法400的一个实施 例。通常情况下,方法400以一个开始操作402作为开端,并以一个终止操作416作为结束。 尽管图4示出了方法400的各步骤的一个通常的顺序,但方法400可以包含多于或少于图 4所示的步骤或者以与图4所述的顺序不同的其他顺序来组织这些步骤。方法400可作为 一组计算机可执行指令在一个计算机系统上执行并可以编码或存储在计算机可读介质上。 在下文中,将参照结合图1-图3描述的系统、组件、模块、数据结构等来对方法400进行阐 述。进一步,将请求服务器描述为服务器102,将提供服务器描述为服务器104。应该注意 的是服务器102、104和/或106中的任何一个既可以用作请求服务器也可以用作提供服务ο在步骤404,请求服务器102接收到激励。激励可以是服务器群组的初始建立或 者从故障事件(例如,网络中断)中恢复。请求服务器102可响应于该激励重启或初始化。 一完成初始化,请求服务器102就将试图加入服务器群组。在步骤406,该请求服务器102 确定是否另一呼叫处理服务器202是活动的。为了完成该确定,该请求服务器102可搜索 控制表204以获得位置信息304或其他可能服务器群组成员的其他标识信息。该请求服务 器102产生对其它群组成员的询问以确定是否有至少一个群组成员处于活动状态。如果有 一个群组成员处于活动状态,则提供服务器104的呼叫处理服务器202可回传对该询问的 应答。如果有另一个呼叫处理服务器202处于活动状态,则方法400将转向分支“是”即请 求步骤412。如果没有其他的呼叫处理服务器202处于活动状态,则该方法将转向分支“否” 即设置步骤。在步骤408,请求服务器102的呼叫处理服务器202将已分配带宽308设置为接收 到的带宽,即该服务器群组的最大允许带宽。换言之,如果在步骤406确定没有其他的呼叫 处理服务器202处于活动状态,那么该呼叫处理服务器202可以使用服务器群组的全部带 宽。进一步,该呼叫处理服务器202可以设置管理员位302来成为群组管理员。因此,在实 施例中,第一个处于活动状态的呼叫处理服务器202成为管理员。在其他实施例中,管理员 可以通过投票或委派(delegation)处理来选定。如果有另一个呼叫处理服务器202处于活动状态,则请求服务器102的呼叫处理 服务器202可向至少一个其他服务器102、104和/或106发送请求以获得带宽分配。在询 问处理期间,提供服务器104的已经处于活动状态的呼叫处理服务器202能向新加入的群 组成员将自身标识为管理员104。该管理员104可接收来自两个或更多加入的服务器102 和/或106的带宽请求。作为对这些请求的响应,该管理员104可向加入的成员中的每一个 分配所管理的或最大带宽中的一部分。这部分带宽可通过多种方式计算,但是,通常来说, 管理员104给加入的成员服务器102和/或106中的每一个相同大小的一份带宽。在步骤 414,请求服务器102将已分配带宽308设置为接收到的带宽量。图5示出了从带宽提供服务器的角度来看,向请求服务器提供带宽的方法500的 一个实施例。通常来说,方法500以一个开始操作502作为开端,并以一个终止操作518作 为结束。尽管图5示出了方法500的各步骤的一个通常的顺序,但方法500可以包含多于 或少于图5所示的步骤或者以与图5所述的顺序不同的其他顺序来组织这些步骤。方法 500可作为一组计算机可执行指令在一个计算机系统上执行并可以编码或存储在计算机可 读介质上。在下文中,将参照结合图1-图3描述的系统、组件、模块、数据结构等来对方法 500进行阐述。进一步,将请求服务器描述为服务器102,将提供服务器描述为服务器104。 应该注意的是服务器102、104和/或106中的任何一个既可以用作请求服务器也可以用作 提供服务器。提供服务器104从请求服务器102接收带宽请求。该带宽请求可以请求初始分配 (就是说,请求服务器102需要第一次分配而不是对已有分配的增加)。因此,提供服务器 104可试图给请求服务器尽可能多的带宽而不是设定量。该提供服务器104在步骤506确 定服务器需要维持的最小带宽(minK),提供的最大带宽(MaxG)和可用带宽。MinK是已用带 宽312、低带宽阈值314或每呼叫带宽310三者的最大值。MaxG是用所管理的带宽306的量除以群组中服务器102、104和/或106的数量(例如,60,000MBps/6个服务器=每个服 务器10,OOOMBps)。可用带宽是用已分配的带宽308的值减去已用带宽312的值的结果。然后提供服务器104在步骤508确定可用带宽是否大于MaxG。换言之,提供服务 器104具有的可用带宽是否大于群组中每个服务器应分配的带宽的最大值。如果可用带宽 大于MaxG,则方法500转向分支“是”即该提供服务器104在步骤516向请求服务器102提 供MaxG的带宽。如果可用的带宽不大于MaxG,则方法500转向分支“否”即进入步骤510。提供服务器104在步骤510能确定可用的带宽是否大于minK。换言之,提供服务 器104是否具有超过该提供服务器104当前需要的可用带宽?如果可用带宽大于minK,则 方法500将转向分支“是”即该提供服务器104在步骤512提供的带宽量等于可用带宽减 去minK的结果。换言之,提供服务器104向请求服务器102提供超出该提供服务器104自 身需要的那部分带宽。如果可用带宽不大于minK,则方法500将转向分支“否”即该提供服 务器104不向请求服务器102提供带宽。因此,如果提供服务器104所拥有的带宽仅够满 足其自身的需要,则它可不提供任何带宽。图6示出了从请求服务器102的角度来看,管理呼叫的方法600的一个实施例。通 常来说,方法600以一个开始操作602作为开端,并以一个终止操作626作为结束。尽管图 6示出了方法600的各步骤的一个通常的顺序,但方法600可以包含多于或少于图6所示 的步骤或者以与图6所述的顺序不同的其他顺序来组织这些步骤。方法600可作为一组计 算机可执行指令在一个计算机系统上执行并可以编码或存储在计算机可读介质上。在下文 中,将参照结合图1-图3描述的系统、组件、模块、数据结构等来对方法600进行阐述。进 一步,将请求服务器描述为服务器102,将提供服务器描述为服务器104。应该注意的是服 务器102、104和/或106中的任何一个既可以用作请求服务器也可以用作提供服务器。在步骤604,请求服务器102的呼叫处理服务器202从分支108接收到一个呼入 呼叫。在接受该呼叫并对该呼叫进行路由之前,该呼叫处理服务器202在步骤606确定服 务器102是否具有足够的带宽以完成该呼叫。该呼叫处理服务器202可确定已用带宽312 加上用于该新呼叫的带宽310是否少于已分配的带宽308。如果服务器102拥有足够的带 宽,则方法600转向分支“是”即该呼叫处理服务器202在步骤618允许该呼叫。如果服务 器102不具有足够的带宽,则该方法转向分支“否”即该呼叫处理服务器202在步骤608延 迟该呼叫路由。在步骤608对该呼叫路由延迟之后,呼叫处理服务器202向服务器群组的一个成 员如提供服务器104请求带宽。该请求可以是一个表示带宽请求的消息和一个所需带宽 量的值。从提供服务器104接收到响应后,呼叫处理服务器202可在步骤612确定是否接 收到足够的带宽。该响应可能拒绝提供带宽。在其他情况下,该响应包括部分或全部所请 求的带宽。在一个实施例中,如果呼叫处理服务器202没有从提供服务器104接收到全部 所请求的带宽量,则该方法将转向分支“否”即该呼叫处理服务器202在步骤616拒绝该呼 叫。可选择地,如果呼叫处理服务器202没有从提供服务器104接收到全部所请求的带宽 量,则该方法将转向分支“否”即该呼叫处理服务器202向另一个服务器106重复请求步骤 610直到所有的服务器均被询问了预定的次数。如果该呼叫处理服务器202从提供服务器 104和/或另一个服务器接收到了全部所请求的带宽量,则该方法转向分支“是”即该呼叫 处理服务器202在步骤614允许该呼叫。
在步骤618允许呼叫之后,呼叫处理服务器202在步骤620设置新的已用带宽值 312。该新的已用带宽值312包括之前允许的呼叫和该刚允许的新呼叫。然后,该呼叫处理 服务器202确定该新的已用带宽312是否达到或超过低带宽阈值314。通常情况下,低带宽 阈值314是一个少于已分配带宽的值(例如,已分配带宽的80% )以确保呼叫处理服务器 202在带宽的不足变得成问题之前请求更多的带宽。如果该新的已用带宽312达到或超出 了低带宽阈值314,则该方法转向分支“是”即该呼叫处理服务器202在步骤624请求更多 的带宽。对另外带宽的请求的实现与步骤610和612类似。如果该新的已用带宽312没有 达到或超出低带宽阈值314,则该方法转向分支“否”即终止操作626。图7示出了从提供服务器104的角度来看,响应带宽请求的方法700的一个实施 例。通常来说,方法700以一个开始操作702作为开端,并以一个终止操作718作为结束。 尽管图7示出了方法700的各步骤的一个通常的顺序,但方法700可以包含多于或少于图 7所示的步骤或者以与图7所述的顺序不同的其他顺序来组织这些步骤。方法700可作为 一组计算机可执行指令在一个计算机系统上执行并可以编码或存储在计算机可读介质上。 在下文中,将参照结合图1-图3描述的系统、组件、模块、数据结构等来对方法700进行阐 述。进一步,将请求服务器描述为服务器102,将提供服务器描述为服务器104。应该注意 的是服务器102、104和/或106中的任何一个既可以用作请求服务器也可以用作提供服务在步骤704,提供服务器104从请求服务器102接收到带宽请求。该请求可以标识 该请求服务器102和所需带宽的量。然后,提供服务器104的呼叫处理服务器202可在步 骤706确定服务器的已分配带宽308是否大于该服务器的已用带宽312。换言之,该呼叫处 理服务器202确定该提供服务器104是否拥有空闲带宽。如果该服务器的已分配带宽308 大于该服务器的已用带宽312,则方法700将转向分支“是”到步骤710。然而,如果该服务 器的已分配带宽308不大于该服务器的已用带宽312,则该方法700将转向分支“否”即该 呼叫处理服务器202将在步骤708拒绝该请求并不向请求服务器102提供任何带宽。呼叫 处理服务器202可向请求服务器102发送拒绝响应。在步骤710,该呼叫处理服务器202将确定可用带宽量是否少于给出阈值。给出阈 值可以是控制数据300的一个数据域,其设置了呼叫处理服务器202可以给出的带宽的上 限占已分配带宽308的百分比(例如,呼叫处理服务器202可以给出高达已分配带宽308 的98%的水平的带宽,等于已分配带宽的量的0. 98倍)。因此,呼叫处理服务器202确定 已分配带宽308减去请求的带宽量是否少于该给出阈值。如果可用的量少于该给出阈值, 则方法700将转向分支“是”即该呼叫处理服务器202在步骤716向请求服务器102提供 全额的所请求的带宽量。如果可用的量不少于该给出阈值,则方法700转向分支“否”到确 定操作712。在步骤712为确定给出的带宽量,呼叫处理服务器202可确定已分配带宽308减 去已用带宽312是否大于平均每呼叫带宽310。如果已分配带宽308减去已用带宽312大 于平均每呼叫带宽310,则该呼叫处理服务器202在步骤714确定给出的带宽量等于已分配 带宽308减去已用带宽312的结果。然而,如果已分配带宽308减去已用带宽312大于平 均每呼叫带宽310,则该呼叫处理服务器202可在步骤714中给出平均每呼叫带宽310。图8示出了从管理员服务器的角度看,执行对带宽使用情况的核查的方法800的一个实施例。通常来说,方法800以一个开始操作802作为开端,并以一个终止操作822作 为结束。尽管图8示出了方法800的各步骤的一个通常的顺序,方法800可以包含多于或 少于图8所示的步骤或者以与图8所述的顺序不同的其他顺序来组织这些步骤。方法800 可作为一组计算机可执行指令在一个计算机系统上执行并可以编码或存储在计算机可读 介质上。在下文中,将参照结合图1-图3描述的系统、组件、模块、数据结构等来对方法800 进行阐述。进一步,将管理员服务器描述为服务器102。应该注意的是服务器102、104和/ 或106中的任何一个如果被指定,都可以用作管理员。管理员服务器102在步骤804发起核查过程。该核查可周期性的发起,例如,每天, 每小时等,或者可由对某事件的响应而执行,所述事件例如是一个服务器被拒绝带宽。被指 定为管理员的服务器102发起和执行核查。作为对发起核查的响应,管理员服务器102在步 骤806向每个呼叫处理服务器202发送一个请求,请求该服务器的已用和已分配带宽。每 个呼叫处理服务器202可发送一个响应,包含已分配带宽308和已用带宽312。然后,管理员服务器102在步骤808确定是否有带宽未被分配。首先,该管理员服 务器102将所有响应里的已分配带宽相加求和。然后,该管理员服务器102比较已分配带 宽的总和与用于所有呼叫处理服务器的所管理带宽的量。如果已分配带宽的总和等于所管 理的带宽量,则方法800转向分支“是”即该管理员服务器102在步骤810停止核查过程。 然而,如果已分配带宽的总和不等于所管理的带宽,则方法800转向分支“否”到步骤814。然后,管理员服务器102在步骤814可确定每个服务器的已用的带宽是否少于已 分配带宽或最大允许带宽306。如果已用带宽少于最大允许带宽306,则方法800转向分支 “是”到步骤818。如果已使用带宽的总和不少于最大允许带宽306,则方法800转向分支 “否”到步骤820。管理员服务器102在步骤816为每个呼叫处理服务器202确定一个新的 分配带宽的份额。这里,管理员服务器102通过比较每个呼叫处理服务器202的已用的带 宽和分配给该呼叫处理服务器202的带宽来确定每个呼叫处理服务器202正使用的带宽的 份额。为一个或多个呼叫处理服务器202确定了超额带宽量之后,管理员服务器102可确 定将这些超额的带宽重新分发到何处。因此,管理员服务器102决定哪些呼叫处理服务器 202可使用更多带宽,即呼叫处理服务器202具有的已用带宽等于或接近等于给该呼叫处 理服务器202的已分配带宽。超额带宽可被给予具有的已用带宽等于或接近等于已分配带 宽的那些呼叫处理服务器202。通过这种方式,具有更高使用率的呼叫处理服务器202接收 到更多带宽。在另一个实施例中,管理员服务器102简单地将所管理的带宽306除以呼叫 处理服务器的数量,以平均分配带宽。如果在步骤816确定呼叫处理服务器202的已用带宽少于最大允许带宽306,则方 法800将转向分支“是”到步骤818。在步骤818,管理员服务器102如在步骤816确定的那 样,减少该呼叫处理服务器的已分配带宽来重新分配未使用带宽。如果在步骤814确定已 用带宽不少于给该呼叫处理服务器202的最大允许带宽306,则方法800将转向分支“否” 即管理员服务器102分配超额带宽的全部或一部分到该呼叫处理服务器的已分配带宽,如 步骤816所确定的那样。在步骤818和820管理员服务器102简单地向每个呼叫处理服务 器发送一个新的已分配带宽308以存储在控制表204中,以减少或增加已分配带宽。图9示出了可用作系统100以管理带宽的一个计算机环境900的框图。该系统 900包含一个或多个用户计算机905、910和915。用户计算机905、910和915可为通用的个人电脑(包括,仅仅用于示例,运行各种版本的微软公司的Windows 和/或苹果公司的 Macintosh 操作系统的个人计算机和/或笔记本电脑)和/或运行多种企业可用UNIX 或 类UNIX操作系统的计算机工作站。这些用户计算机905、910、915海可具有多种应用程序, 例如包括,数据库客户端和/或服务器应用程序,以及web浏览器应用程序。可替换地,用 户计算机905、910和915可以是任何其他电子设备,例如瘦客户机电脑,可上网的移动电话 和/或用户数字个人助理,能够通过网络(例如下述的网络920)通信和/或显示和浏览网 页或其他类型的电子文档。尽管系统900示例性的显示为具有三个用户电脑,但其可支持 任意数量的用户电脑。系统900进一步包括网络920。网络920可以是能支持使用多种任何企业可用协议 中任一种进行数据通信的本领域熟知的任何类型的网络,所述协议包括但不限于TCP/IP、 SNA、IPX、AppleTalk,诸如此类。仅仅用于示例,网络920可以是局域网(LAN)如以太网,令 牌环网和/或此类;广域网;虚拟网,包括但不限于虚拟专用网络(VPN);因特网;内部网; 外联网;公共交换电话网(PSTN);红外线网络;无线网(例如,在IEEE 902. 11协议族、本领 域已知的Bluetooth 协议和/或任何其他无线协议中的任何一个下运行的网络);和/或 这些和/或其他网络的任意组合。网络920可以与网络114、116和/或118相同或类似。系统900也可包含一个或多个服务器计算机925、930。一个服务器可以是web服 务器925,其可用于处理来自用户计算机905、910和915的网页请求或其他电子文档。该 web服务器可运行包含以上所述的任何操作系统和任何企业可用服务器操作系统。web服 务器925还可运行多种服务器应用,包括HTTP服务器、FTP服务器、CGI服务器、数据库服务 器、Java服务器,诸如此类。在有些实例中,web服务器925可发布可用操作作为一个或多 个web服务。系统900也可包括一个或多个文件和/或应用服务器930,其除了包含操作系统 之外还具有一个或多个应用,这些应用可供运行在一个或多个用户计算机905、910、915上 的客户端访问。(一个或多个)服务器930可以是一个或多个通用的计算机,能够响应于 用户计算机905、910和915而执行程序或脚本。作为一个示例,服务器可执行一个或多个 web应用。这些web应用可以实现为一个或多个脚本或程序,这些脚本或程序可由任意编程 语言编写,例如JAVA , C,C# 或C++,和/或任意脚本语言,例如Perl, Python,或TCL,也 可由任意程序/脚本语言组合实现。(一个或多个)应用服务器930也可包含数据库服务 器,包括而不限于从Oracle,Microsoft, Sybase , IBM 等商业上可获得的数据库服务器, 这些数据库服务器可以处理由运行在用户计算机905上的数据库客户端发来的请求。由web应用服务器930创建的网页可以通过web服务器925转发给用户计算机 905。类似地,web服务器925可以接收网页请求、web服务调用,和/或从用户计算机905 输入的数据并可以转发网页请求和/或输入的数据到web应用服务器930。在进一步的实 施例中,服务器930可用作文件服务器。尽管出于简化描述的目的,图9所示的网页服务器 925和文件/应用服务器930是分开的,但本领域的普通技术人员应该认识到所描述的关 于服务器925、930的功能可以由单个服务器和/或多个专用服务器来实现,这取决于特定 于实现的需要和参数。计算机系统905、910和915,文件服务器925和/或应用服务器930 可用作服务器102、104和/或106或其他此处描述的系统。系统900还可包括数据库935,其可与数据库230、302或309相同或相似。数据库935可位于多个位置。例如,数据库935可以位于一个或多个计算机905、910、915、925、930 本地的(和/或其中驻留的)存储介质之上。可替换地,其也可以远离计算机905、910、915、 925、930中的任意或全部,并与它们中的一个或多个通信(例如,通过网络920)。在一组特 定的实施例中,数据库935可驻留于本领域熟知的存储区域网络(SAN)中。类似地,任何对 执行属于计算机905、910、915、915、930的功能必要的文件可以适当地存储在各个计算机 本地和/或远程存储。在一组特定的实施例中,数据库935可以是关系数据库,例如Oracle 10i ,该关系数据库适于响应于SOL格式化命令存储、更新和检索数据。数据库935可与用 于存储控制表204的数据库相同或相似。图10示出了服务器102、104和/或106或其他此处描述的系统在其上可配置或 执行的计算机系统1000的一个实施例。所示的计算机系统1000由可通过总线1055电耦 合的硬件元件组成。这些硬件元件可包括一个或多个中央处理器(CPU) 1005 ;—个或多个 输入设备1010 (例如,鼠标、键盘等);一个或多个输出设备1015 (例如,显示设备、打印机 等)。计算机系统1000也可包括一个或多个存储设备1020。例如,(一个或多个)存储设 备1020可以是磁盘驱动器,光存储设备,可编程的固态存储设备如随机访问存储器(RAM) 和/或只读存储器(ROM),可更新闪存和/或诸如此类。计算机系统1000可附加地包含计算机可读存储介质读取器1025 ;通信系统 1030 (例如,调制解调器,网卡(无线的或有线的),红外通信设备等);工作存储器1040,其 可以包括以上所述的RAM或ROM设备。在一些实施例中,计算机系统1000也可包括处理加 速单元1035,其可包括DSP、专用处理器和/或诸如此类。计算机可读存储介质读取器1025可进一步连接到计算机可读存储介质,其一起 (和可选择的,与(一个或多个)存储设备1020相组合)广泛地代表远程的、本地的、固定 的和/或可移动的存储设备以及临时地/或永久性地包含计算机可读信息的存储介质。通 信系统1030可准许与网络1020和/或上述关于系统1000描述的其他任何计算机交换数 据。此外,如此处公开的,术语“存储介质”可表示一个或多个用于存储数据的设备,包括 只读存储器(ROM),随机访问存储器(RAM),磁性RAM,磁芯存储器,磁盘存储介质,光存储介 质,闪存设备和/或其他用于存储信息的机器可读介质。计算机系统1000还可包括软件元件,如示出的当前位于工作存储器1040之内,包 括操作系统1045和/或其他代码1050,例如实现服务器300的程序代码。应该了解的是 计算机系统1000的替代实施例可具有相对于上述的多种变型。例如,还可使用定制的硬件 和/或用硬件、软件(包括便携式软件,如applets)或两者均使用来实现特定的元件。进 一步,可采用与其他计算设备如网络输入/输出设备的连接。在下面的描述中,为了便于阐述,方法用特定的顺序来描述。应该理解的是在替代 实施例中,该方法也可以用与所描述的顺序不同的顺序来执行。还应该理解的是上述方法 可以由硬件组件执行或者可用机器可执行指令序列来实现,所述机器可执行指令序列用来 使被用所述指令编程的机器,如通用或专用的处理器或逻辑电路执行该方法。这些机器可 执行指令可存储在一个或多个机器可读介质上,例如光盘(CD-ROM)或其他类型的光盘、软 盘、只读存储器(ROM)、随机存取存储器(RAM)、可编程只读存储器(PR0M)、可擦除可编程只 读存储器(EPROM)、磁性或光学卡、闪存或其他类型的适于存储电子指令的机器可读介质。 可替换地,该方法也可由硬件和软件的组合实现。
为了提供有关实施例的深入理解说明书中给出了具体的细节。然而,本领域普通 技术人员应该理解到实施例可以在没有这些具体细节的情况下实现。例如,电路可以用方 框图表示以避免不必要的细节混淆了实施例。在其他实例中,已知的电路、处理方法、算法、 结构和技术可不显示其不必要的细节以避免混淆实施例。同时,也要指出实施例以流程图、流程框图、数据框图、结构框图或方框图的形式 描述成一个过程。尽管流程图可能把操作描述成一个顺序执行的过程,但多个这些操作可 以并行或同时执行。此外,这些操作的顺序可以重新配置。当一个操作完成后该过程终止, 但是该过程可包含突出没有示出的附加步骤。一个过程可对应于一个方法、功能、程序、子 例程、子程序等。当一个过程对应于一个功能时,它的终止对应于该功能对调用功能或主功 能的返回。进一步,实施例可以由硬件、软件、固件、中间件、微代码、硬件描述语言或它们的 任意组合来实现。当用软件、固件、中间件或微代码来实现时,用于执行必要任务的程序代 码或代码片段可以存储在机器可读介质如存储介质上。(一个或多个)处理器可执行必要 任务。代码片段可代表一个进程、功能、子程序、程序、例程、子例程、模块、软件包、类或指 令、数据结构或程序语句的任意组合。一段代码片段可通过传递和/或接收信息、数据、变 元、参数或存储内容同另一段代码片段或硬件电路相耦合。信息、变元、参数、数据等可通过 包括存储共享、消息传递、令牌传递、网络传输等在内的任何合适的方式传递、转发或传输。尽管此处详细阐述了本发明实施例的细节,应该理解的是本发明的内容可以另外 不同的方式具体实现和配置,所附的权利要求意图解释为包括所述不同方式,除了被现有 技术所限制的以外。本发明要求了申请号为61/175,310,于2009年5月4日提交的美国临时申请的优 先权,并在此弓I入其教导的全部内容作为参考。
权利要求
一种用于管理电话呼叫的方法,包括呼叫处理服务器接收激励,其中该呼叫处理服务器是一分布式呼叫处理服务器群组的成员,所述分布式呼叫处理服务器群组管理企业网络中的电话呼叫;响应于该激励,确定是否该群组中另一个呼叫处理服务器是活动的;如果另一个呼叫处理服务器不是活动的,则将所述呼叫处理服务器的已分配带宽设置成等于所管理的带宽,其中所述所管理的带宽是该网络的总带宽;如果另一个呼叫处理服务器是活动的,则所述呼叫处理服务器从所述群组中的另一个呼叫处理器接收带宽的分配。
2.一种用于管理呼叫的系统,包括 两个或更多个分支,每个分支包括呼叫方; 两个或更多个网络;两个或更多个服务器,其中每个服务器通过网络与分支通信,其中每个服务器包括 控制表,所述控制表存储与带宽管理相关联的控制信息;与所述控制表通信的呼叫处理服务器,其中用于各个服务器的各个呼叫处理服务器组 成用于为所述系统管理带宽的群组。
3.如权利要求1或2所述的方法或系统,进一步包括如果另一个呼叫处理服务器不是 活动的,则将该呼叫处理服务器设置为呼叫处理服务器群组的管理员。
4.如权利要求1或2所述的方法或系统,进一步包括 管理员从第二呼叫处理服务器接收用于初始带宽分配的请求; 所述呼叫处理服务器确定该呼叫处理服务器是否能够提供带宽分配;如果所述呼叫处理服务器能够提供带宽分配,则该呼叫处理服务器确定提供多少带宽;所述呼叫处理服务器向所述第二呼叫处理服务器提供所确定的带宽作为所述带宽分 配;并且如果所述呼叫处理服务器不能提供带宽分配,则该呼叫处理服务器拒绝来自所述第二 呼叫处理服务器的请求。
5.如权利要求4所述的方法或系统,其中确定该呼叫处理服务器是否能够提供带宽分 配包括所述呼叫处理服务器确定服务器需要维持的最小带宽minK,可提供的最大带宽MaxG 和可用带宽;所述呼叫处理服务器确定所述可用带宽是否大于所述可提供的最大带宽MaxG ; 如果所述可用带宽大于MaxG,则所述呼叫处理服务器提供MaxG作为所述带宽分配; 如果所述可用带宽不大于MaxG,则所述呼叫处理服务器确定所述可用带宽是否大于 minK ;如果所述可用带宽大于minK,则所述呼叫处理服务器提供所述可用带宽减去minK的 结果作为所述带宽分配;并且如果所述可用带宽不大于minK,则所述呼叫处理服务器拒绝该请求。
6.如权利要求1或2所述的方法或系统,进一步包括管理员发起核查;所述管理员询问所述群组中的每个呼叫处理服务器以获得该呼叫处理服务器的已使 用带宽和已分配带宽;所述管理员确定所有呼叫处理服务器的已分配带宽的总和是否等于所管理的带宽; 如果所有呼叫处理服务器的已分配带宽的总和等于所管理的带宽,则所述管理员停止 核查;如果所有呼叫处理服务器的已分配带宽的总和不等于所管理的带宽,则所述管理员确 定所有呼叫处理服务器的已分配带宽与所管理的带宽之间的差值; 所述管理员确定至少一个呼叫处理服务器的要改变的带宽量;并且 所述管理员向至少一个呼叫处理服务器发送用于该至少一个呼叫处理服务器的新的 分配。
7.如权利要求1或2所述的方法或系统,其中所述呼叫处理服务器在控制表中将带宽 的分配设置为已分配带宽。
8.如权利要求7所述的方法或系统,进一步包括 所述呼叫处理服务器接收呼入呼叫;所述呼叫处理服务器确定该呼入呼叫的带宽与已使用带宽的值的和是否小于所述控 制表中的已分配带宽;如果该呼入呼叫的带宽与已使用带宽的值的和小于已分配带宽,则所述呼叫处理服务 器允许该呼入呼叫;如果该呼入呼叫的带宽与已使用带宽的值的和大于已分配带宽,则所述呼叫处理服务 器延迟该呼入呼叫;所述呼叫处理服务器向所述群组中的至少一个成员请求更多的带宽; 所述呼叫处理服务器确定所接收到的带宽是否足够允许该呼入呼叫; 如果所接收到的带宽足够允许该呼入呼叫,则所述呼叫处理服务器允许该呼叫;和 如果所接收到的带宽不够允许该呼入呼叫,则拒绝该呼入呼叫。
9.如权利要求8所述的方法或系统,进一步包括 第二呼叫处理服务器接收带宽请求;所述第二呼叫处理服务器确定已分配的带宽是否大于该第二呼叫处理服务器的已使 用带宽;如果已分配带宽不大于已使用带宽,则所述第二呼叫处理服务器不向所述呼叫处理服 务器提供带宽;如果已分配带宽大于已使用带宽,则所述第二呼叫处理服务器确定是否提供达到阈值 的量;如果所述第二呼叫处理服务器能够提供达到阈值的量,则该第二呼叫处理服务器提供 所请求的带宽;如果第二呼叫处理服务器不能提供达到阈值的量,则确定要提供的带宽量并且 该第二呼叫处理服务器提供所确定的量。
10.如权利要求9所述的方法或系统,其中确定是否提供达到阈值的量包括确定所请 求带宽量与已使用带宽的和是否小于低带宽阈值。
全文摘要
本发明涉及有效且经济的分布式呼叫准入控制,提供了一种能够在多个呼叫控制器之间分配带宽的分布式呼叫控制系统。该分布式呼叫控制系统包括一个或多个服务器,所述服务器执行两个或更多个管理呼叫控制的呼叫处理服务器实例。呼叫处理服务器构成集群或群组。集群成员协商并确定成员之间的带宽分配。如果一个成员需要更多的带宽,则该成员的呼叫处理服务器评估其自身的需要并从其他成员那里请求更多的带宽。对带宽的协商和请求通过一组使带宽控制系统化的动态和静态的带宽数据来实现。
文档编号H04L12/56GK101883145SQ20101021394
公开日2010年11月10日 申请日期2010年5月4日 优先权日2009年5月4日
发明者库特·H·哈瑟洛特, 斯考特·M·伍兹, 肯尼斯·欧文·米切, 路基·詹迪尔·波尔斯, 钱德拉·拉维帕特 申请人:阿瓦雅公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1