CN101507252B - 执行基于范围的目录号码(dn)筛选的方法、系统和计算机程序产品 - Google Patents
执行基于范围的目录号码(dn)筛选的方法、系统和计算机程序产品 Download PDFInfo
- Publication number
- CN101507252B CN101507252B CN2007800285998A CN200780028599A CN101507252B CN 101507252 B CN101507252 B CN 101507252B CN 2007800285998 A CN2007800285998 A CN 2007800285998A CN 200780028599 A CN200780028599 A CN 200780028599A CN 101507252 B CN101507252 B CN 101507252B
- Authority
- CN
- China
- Prior art keywords
- value
- range
- tree
- node
- range tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q3/00—Selecting arrangements
- H04Q3/76—Translation from the called subscriber's number to the outgoing or incoming control information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13097—Numbering, addressing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13102—Common translator
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本文公开了用于执行基于范围的目录号码(DN)筛选的方法、系统和计算机程序产品。根据一个方面,本文所描述的主题包括用于确定电信设备DN是否在允许的一组数值范围内的方法。所述方法包括创建用于表示允许的一组数值DN范围的范围树,其中每一范围由数值上限和数值下限所定义并且将所述范围树存储在存储设备中;接收待分析的电信设备DN;基于分析所述DN的每个数位从所述树的根节点开始遍历所述范围树直到到达叶子节点为止,以及基于与所到达的所述叶子节点相关联的属性确定所述DN是否在允许的一组范围内。
Description
相关申请
本公开的主题要求2006年5月30日提交的美国临时专利申请No.60/809,447和2006年12月14日提交的美国专利申请No.11/639,445的权益;将其公开的全部内容以引用方式并入本文中。
技术领域
本文所描述的主题涉及用于目录号码(DN)分析和呼叫路由选择的方法和系统。更具体地,本文所描述的主题涉及用于执行基于范围的目录号码(DN)筛选的方法、系统和计算机程序产品。
背景技术
目录号码(DN)分析和筛选是在经诸如软交换机之类的数字交换机对呼叫进行路由选择中的必要步骤。DN筛选确定所接收的DN是否属于数字交换机的域,从而确定该交换机如何处理该DN。
DN分析通常包括下列步骤:DN筛选,其确定目录号码是否属于该交换机所服务的域;数位分析,其分析所接收的数位并且基于该分析的结果处理呼叫;和路由选择分析,其基于数位分析的结果确定呼叫所采取的路由选择。DN筛选步骤通常涉及执行数据库查询或前缀模式匹配。
数据库方法通常涉及在数据库中存储交换机的域的每个号码。在操作期间,针对被筛选的每个DN进行数据库访问。尽管该方法容易实现,但由于针对每个DN执行数据库访问或查询,因此数据库访问可能在每个交换机处造成显著的处理开销;这种额外的开销可能降低交换机的整体性能并且因此可能在高峰通信量期间导致不可接受的容量损失。大量的DN筛选可能成为数字交换机的严重瓶颈;在极端情况下,如果在DN筛选阶段交换机耗尽其资源,则呼叫可能会掉线或路由到其他交换机。
前缀模式匹配方法通常涉及创建用于在域内存储每个前缀清单的表格。对于10位号码方案而言,前缀可以是DN的最高有效数位的前7位,反映了可以将1000个号码的块的形式的电话号码分配给话务员。如果例如话务员A被分配有从919.493.8000到919.493.8999的1000个DN的单个块,则话务员A所使用的交换机只需要检查仅单个的前缀(即,“9194938”)就可以确定该号码是否在所分配的块内。在该示例中,域内包含的前缀表可能仅包括一个条目:[9194938]。可以通过单次比较来实现前缀模式匹配。然而,对于具有包含电话号码214.222.2000到310.999.9000的域的交换机而言,前缀表将可以包含967,778个前缀:[2142222,2142223,2142224...,3109997,3109998,3109999],其中每个前缀表示1000个DN的块。该前缀模式匹配方法还具有某些显著的劣势。首先,该方法不适用于处理具有不共享前缀的同一属性的号码块。尽管可以使用数学和其他技术,例如使用不需要执行上述前缀比较以执行前缀模式匹配的分析树,但一个问题是对于最优速度而言,整个表或树都应该在存储器中。然而由于表的大小和对存储器资源的限制,将整个表或树保留在存储器中是不可能的或代价过高。其次,如果使用数据库存储前缀而不存储完全的DN,尽管前缀模式匹配方法可以将必须被存储和比较的条目数量减少1000倍,但由于数据库访问和处理所引起的开销,该数目仍可能足够大以导致交换机的性能损失。第三,如果使用分析树来存储前缀,尽管使用这种树具有快速号码查询的便利(如上述,以潜在的巨大存储器需求为代价),但分析树的维护——添加和删除号码块——是资源非常密集的,因此代价很高并且还需要多次遍历整个树。在与特定交换机域相关联的号码变化相对频繁的情况下,持续地维护该树所引起的额外开销可以导致交换机性能的不可接受的损失。
因此鉴于与数据库查询和DN筛选前缀匹配方法相关联的这些劣势,需要一种执行DN筛选的方法,其速度快、使用最少的处理和存储器资源并且维护起来容易且快速。
发明内容
根据一个方面,本文所描述的主题包括用于确定电信设备目录号码(DN)是否在允许的一组数值范围内的方法。该方法包括创建用于表示允许的一组数值DN范围的范围树,其中每一范围由数值上限和下限所定义,并且将范围树存储在存储设备中;接收待分析的电信设备的DN;基于分析DN的每个数位,从该树的根节点开始遍历该范围树,直到到达叶子节点为止;并且基于与所到达的叶子节点相关联的属性,确定DN是否在允许的一组范围内。
根据另一方面,本文所描述的主题包括用于创建电信设备目录号码的范围树的方法。该方法包括创建根节点并且对表示允许的目录号码范围的数值上限和下限的至少一对号码进行编码,其中对成对的号码中的每个号码N进行编码的步骤包括设置节点指针P使其指向根节点,并且针对N的每个数位D,从N的最高有效数位开始:确定是否存在作为由P所指向的节点的孩子并且包含数位D的值的节点C,并且响应于确定不存在这样的节点C,创建作为由P所指向的所述节点的孩子并且包含所述数位D的值的节点C;移动P以使其指向节点C;并且将指示号码N是表示允许的目录号码范围上限还是下限的属性与由P所指向的节点相关联。
根据另一方面,本文所描述的主题包括在计算机可读介质中包含的表示允许的一组电信设备目录号码(DN)的范围的范围树。该范围树包括根节点和从根节点向下延伸的用于表示电信设备目录号码的数位的多个节点,将多个节点分组以表示电信网络目录号码的范围,并且针对每一范围,所述多个节点表示包括所述范围下限的号码和包括所述范围上限的号码。
根据另一方面,本文所描述的主题包括确定电信设备目录号码(DN)是否在允许的一组范围内的系统。该系统包括用于接收包括DN的呼叫的电信交换机。该交换机包括在计算机可读介质中包含的范围树,该范围树包括根节点和从根节点向下延伸的用于表示通信设备目录号码的数位的多个节点,将所述多个节点分组以表示电信网络目录号码的范围,并且针对每一范围,所述多个节点表示包括该范围下限的号码和包括该范围上限的号码。该交换机还包括用于接收DN并且执行查找以确定DN是否在允许的范围内的查找引擎,其中基于确定的结果该交换机处理呼叫。
根据另一方面,本文所描述的主题包括一种用于确定电信设备目录号码(DN)是否在由电信网络节点处理的允许的一组数值范围内的装置。所述装置包括:(a)用于创建用于表示由电信网络节点处理的允许的一组数值DN范围的范围树,并且将所述范围树存储在存储设备中的模块,其中,由数值上限和下限定义每一范围;(b)用于接收待分析的电信设备的DN的模块;(c)用于基于分析所述DN的每个数位,从所述范围树的根节点开始遍历该树,直到到达叶子节点为止的模块;以及(d)用于基于与所到达的叶子节点相关联的属性,确定所述DN是否在所述允许的一组范围内的模块。
本文所描述的用于执行基于范围的目录号码筛选的主题可以以硬件、软件、固件或它们的任意组合的形式实现。由此,本文中所使用的词语“功能”或“模块”指代实现所描述特征的硬件、软件和/或固件。在一个示例性实现中,可以通过使用包括在计算机可读介质上包含的计算机可执行指令的计算机程序产品来实现本文所描述的主题。适用于实现本文所描述主题的示例性计算机可读介质包括盘片存储设备、芯片存储设备、可编程逻辑装置、专用集成电路和可下载的电信号。此外,实现本文所描述主题的计算机程序产品可以位于单个设备或计算平台上,或可以分布于多个设备或计算平台上。
附图说明
下面参考附图,解释本文所描述的主题的优选实施例,在附图中:
图1是示出了根据本文所描述的主题的实施例的示例性范围树的方框图;
图2是示出了根据本文所描述的主题的实施例的通过使用范围树执行基于范围的筛选的示例性过程的方框图;
图3是示出了根据本文所描述的主题的实施例的创建范围树的示例性过程的方框图;
图4A是示出了根据本文所描述的主题的实施例的示例性简化范围树的方框图;
图4B是示出了根据本文所描述的主题的实施例的响应于允许额外的DN的请求对图4A中的范围树做出修改的方框图;
图4C是示出了根据本文所描述的主题的实施例的响应于允许额外的DN的请求对图4A中的范围树做出另一修改的方框图;
图4D是示出了根据本文所描述的主题的实施例的另一示例性简化范围树的方框图;
图4E是示出了根据本文所描述的主题的实施例的响应于从允许的范围子集中删除DN的请求对图4D中的范围树做出修改的方框图;
图4F是示出了根据本文所描述的主题的实施例的响应于从允许的范围子集中删除DN的请求对图4D中的范围树做出另一修改的方框图;
图5是示出了根据本文所描述的主题的实施例在软交换机中用于执行DN筛选的示例性过程的流程图;以及
图6是示出了根据本文所描述的主题的实施例通过使用用于DN筛选的范围树的示例性系统的方框图。
具体实施方式
根据本文所描述的主题,为基于范围的目录号码(DN)筛选提供了方法、系统和计算机程序产品。为了确定DN是否被包括在由特定交换机处理的DN块内,待处理的DN的范围由预加载在存储器中的紧凑的范围树来表示,并且使用算法以快速遍历该范围树并且报告被分析的DN是否在允许的范围内。该范围树是快速的和确定性的,在较少固定次数的运算下产生结果,其还具有足够低的资源占用率,其可以在存储器中被高速缓冲以额外地提高速度。该范围树很容易支持多个范围以及尺寸变化的范围。在维护期间,可以很容易且快速地更新该范围树。
范围树结构
图1是示出了根据本文所描述的主题的实施例的示例性范围树的方框图。在该实施例中,范围树100的结构包括根节点(NODE0)、由方框指示的子节点(例如,节点A1~A3,E4~E10,F4~F10等)、和由圆形表示的叶子节点(没有其自己的子节点的子节点)。该根节点是整个范围树100的双亲节点。NODE0具有一个或多个子节点。NODE0的孩子被称为第1层节点。第1层节点的孩子被称为第2层节点;第2层节点的孩子被称为第3层节点等等。换言之,第N层节点的孩子是第N+1层节点。孩子节点可以存储与号码中的一个数位或用于表示由范围树100表示的范围的上限或下限的数位串相应的数位值,指示数位串是否指示范围的上限或下限或上限和下限两者的标记值。该标记值通常与叶子节点相关联:在实施例中每个叶子节点存储标记值而不是数位值,叶子节点还可以被称为“标记节点”或“标记层”节点;在实施例中每个叶子节点存储数位值,存在与该叶子节点相关联的标记属性,例如,节点树结构中的保持标记值的域。
双亲节点的孩子通常被称为双亲节点的分支。因此,具有三个孩子的双亲具有三个分支:每个孩子(和该孩子的孩子)构成一个分支。在图1中,每个分支由字母(即,A、B、C等)标识,每个节点由分支标识符和层号的组合标识。因此,NODE0具有4个分支,A、B、C和D;所以,NODE0的孩子的标识符是A1、B1、C1和D1。节点A1只有一个孩子,因此使A分支持续。节点A1的孩子是第2层节点,因此其标识符是A2。节点A2的唯一的孩子是使分支A持续的第3层节点,因此其标识符是A3。由于节点A3具有两个孩子,所以创建了两个新的分支E和F,并且A3的第4层的孩子可以被分别标识为E4和F4。类似地标识图1中剩下的节点。因此,节点L9相应于L分支中的第九层节点。应该注意图1中所使用的节点标识符仅是为了便于描述;无需这样标识每个节点来确保基于范围的DN查找的正常运行。
范围树100通常具有与到来的DN中待分析的数位数量一样多的层数,如果实施例使用标记节点,则还要加上标记层。例如,符合北美电话号码分配方案(NANP)的DN具有10个数位,并且处理符合NANP的DN的范围树具有10层再加标记层(如果使用)。为了易于解释,所有DN假定具有同一长度。然而,对于允许DN的长度变化的系统而言,例如,可以使用多个树,其中每个树存储特定长度的DN。可以并行处理多个树以便加速,其中例如如果任何范围树返回“DN是在有效的范围内”的指示符,则可以认为该DN有效。
在图1中示出的范围树的实施例中,范围树100对DN的4个不同范围进行编码:
在树的一个实现中,所述范围可以不重叠。任何范围可以被分成更小的不重叠的块。范围1的下限由节点A1、A2、A3、E4、E5、E6、E7、E8、E9、E10和Eflag表示;存储在这些节点中的值依次是″2-1-4-2-2-2-1-0-0-0-L″。标记节点Eflag包含值“L”,其指示该组节点表示允许的范围的下限。范围1的上限由节点A1、A2、A3、F4、F5、F6、F7、F8、F9、F10和Fflag表示;存储在这些节点中的值依次是″2-1-4-9-9-9-9-9-9-9-H″。标记节点Fflag包含值“H”,其指示该组节点表示允许范围的上限。类似地将其他范围编码到范围树100。
范围树搜索
DN可以由一个或多个数位组成。例如符合NANP的DN通常由10个数位组成。在基于范围的搜索中,从最高有效数位开始逐位评估DN并且因此可以遍历范围树。如本文中所使用的,“D”指代当前正被分析的数位。为了便于描述,当遍历树时,节点指针“N”被认为是概念上从一节点跳到另一节点。除了叶子节点之外,每个节点具有与其相关联的至少一个孩子节点。如本文中所使用的,“C”指代存储特定值的孩子节点。为了简化的目的,C还可以用来指代由孩子节点存储的值本身。
简言之,遍历范围树涉及确定当前节点是否具有任何孩子,确定包含在或存储在孩子中的值,并且基于孩子节点的值是否与当前数位D的值匹配来确定接下来跳到哪个孩子。总的来说,算法具有4个阶段:
阶段1:执行最长的模式匹配。如果找到一条路径并且完全精确地匹配直至叶子节点,则该DN是在允许的范围内。如果只有部分匹配(尽可能多地匹配DN的数位的匹配),则跳到阶段2。如果不匹配(即,根节点的孩子不包含相等于DN的最高有效数位的值),则跳到阶段3。
阶段2:检查最后一个匹配的节点:如果具有节点值小于DN中的数位这样的节点的孩子,则跳到阶段3;否则,跳到阶段4。
阶段3:查找其值小于该数位的最大孩子节点。遍历该子树的最右边的路径(即,总是跳到存储与由其兄弟节点存储的数字相比的最大数字的孩子节点)直到到达叶子节点为止。如果叶子节点是“L”,则DN落在与该下限相关联的范围内。如果叶子节点是“H”,则DN不落在任何允许的范围。
阶段4:查找其值大于该数位的最小孩子节点。遍历该子树的最左边的路径(即,总是跳到存储与由其兄弟节点存储的数字相比的最小数字的孩子节点)直到到达叶子节点为止。如果叶子节点是“L”,则DN不落在任何允许的范围内。如果叶子节点是“H”,则DN落在与该上限相关联的允许的范围。
图2是示出了根据本文所描述的主题的实施例的通过使用范围树执行基于范围的DN筛选的示例性过程的流程图。在步骤200,例如,可以通过交换机接收新的DN。在步骤202,DN分析通常从根节点开始;即,节点指针N指向NODE0。在步骤204,可以取得DN的数位用于分析。第一次执行步骤204时,可以分析DN中第一数位。第二次执行步骤204时,可以分析DN的第二数位等等。
在步骤206,可以分析由N所指向的节点的孩子以查看它们中的任何一个是否存储与值D相等的值。如果孩子节点存储与值D相等的值,则过程可以跳到步骤208,其中N跳到该孩子节点。该过程然后可以返回到步骤204以取得下一个数位。如果存储与值D相等值的孩子节点不存在,则该过程可以进行到步骤210。
在步骤210,可以确定是否存在存储比值D小的值的由N所指向的节点的孩子节点。如果存在的话,则过程可以进行到步骤212,其中节点指针N被移动以指向存储比值D小的最大值的孩子节点。这里,该过程可以进行到步骤214,其中节点指针N可以被重复地从其当前节点移动到包含最大值的当前节点的任何一个孩子节点直到到达叶子节点为止。该过程然后进行到步骤216,其中可以分析标记值以确定叶子节点是否终止表示允许范围上限或下限的节点链。在一个实施例中,标记值“L”可以指示允许范围的下限,而标记值“H”可以指示允许范围的上限。在使用标记节点的实施例中,标记值可以是存储在叶子节点中的值。在不使用标记节点的实施例中,标记值可以是与叶子节点相关联的属性的值,该叶子节点还可以存储诸如数位之类的另一值。如果标记是“L”,则该过程进行至步骤218,并且可以确定DN是在有效范围内。如果标记是“H”,则该过程进行到步骤220并且可以确定DN在有效范围之外。
然而,如果在步骤210确定用于存储比值D小的值的孩子不存在,则该过程可以进行到步骤222,其可以确定是否具有由N所指向的节点的孩子,其存储比值D大的值。如果这样,则该过程可以进行到步骤224,其中节点指针N可以被移动以使其指向存储比值D大的最小值的孩子节点。这里,该过程可以进行到步骤226,其中节点指针N可以被重复地从其当前节点移动到包含最小值的当前节点的任何一个孩子节点,直到到达叶子节点为止。该过程然后可以进行到步骤228,其中分析标记值。如果标记是“H”,则过程可以进行到步骤218,并且可以确定DN是在有效范围内。如果标记是“L”,则过程可以进行到220,并且可以确定DN是在有效范围之外。
下面呈现了范围树搜索的几个示例。在下面的示例1中,列“层次”指示树内的哪个层次当前正被遍历。列D是被分析的DN的数位的值。列N包含由节点指针N所指向的节点的名字;该节点被称为“当前节点”。列C包含由当前节点的孩子节点存储的值。动作列列出了所采取的动作,包括在图2中示出的流程图的步骤执行的测试和比较。在第一示例中,所接收的DN是(469)666-5432。
示例1:DN=(469)666-5432
范围树的遍历如下:为到来的DN分析做准备,节点指针N被设置为NODE0。下面描述在每个树层次所采取的动作:
在根层次:接收DN,4696665432。D包含DN的第一数位,4。节点指针N被设置为指向NODE0。NODE0具有4个孩子A1、B1、C1和D1,其(在列C中示出的)值分别是2、4、8和9。检查NODE0以查看其任一孩子节点是否包含与存储在D中值相等的值(步骤206,“C=D?”)。孩子节点B1匹配(4=4),因此B1成为当前节点。
在第1层:D包含DN的第二数位,6。N现在指向B1。B1具有一个孩子节点B2,该孩子节点具有列C中示出的值6。检查节点B1以查看其任一子节点是否包含与D相等的值(步骤206,“C=D?”)。子节点B2匹配(6=6),因此B2成为当前节点。
在第2层:D包含DN的第三数位,9。N指向B2。B2具有一个孩子B3,该孩子具有值9;C包含值9。节点B2具有其值与D匹配的孩子(步骤206,“C=D?”):节点B3(9=9),因此B3成为当前节点。
在第3层:D=6,N=B3,其具有孩子B4,该孩子的值是6;C包含6。节点B2具有其值与D匹配的孩子(步骤206,“C=D?”):节点B4(6=6),因此B4成为当前节点。
在第4层:D=6,N=B4,其具有一个孩子B5;C包含6。B5具有与D匹配的值(步骤206,“C=D?”),因此B5成为当前节点。
在第5层:D=6,N=B5,其具有一个孩子B6;C包含6。B5具有与D匹配的值(步骤206,“C=D?”),因此B6成为当前节点。
在第6层:D=6,N=B6,其具有一个孩子B7;C包含2。但在这种情况下,当前节点B6没有包含与D相等的值的孩子节点(步骤206,“C=D?”),因此我们查找包含比D小的值的孩子节点(步骤201,“C<D?”)。孩子节点B7符合该条件(2<5)。具有比D小的最大值的节点成为当前节点(步骤212),因此B7成为当前节点。从这一点开始,通过总是跳到具有最大值的孩子节点来遍历剩下的树,直到到达叶子节点为止(步骤214,“最大C值?”)。
在第7层:B7的具有最大C值的孩子是B8(步骤214,“最大C值?”),其成为当前节点。
在第8层:B8的具有最大C值的孩子是B9(步骤214,“最大C值?”),其成为当前节点。
在第9层:B9的具有最大C值的孩子是B10(步骤214,“最大C值?”),其成为当前节点。
在第10层:B10的具有最大C值的孩子是Bflag(步骤214,“最大C值?”),其成为当前节点。
在标记层:Bflag没有孩子(步骤214,“最大C值?”),这指示Bflag是叶子节点。在一个实施例中,标记是叶子节点的值,在这种情况下是标记节点的值。在另一实施例中,节点B10没有孩子,因此是叶子节点,在这种情况下B10可以具有存储标记值的标记域或属性。分析该标记域(步骤216,“标记=L?”),并且确定DN是在有效的范围内(步骤218)。
如下示出了包括DN不在有效范围内的确定的另一个示例。
示例2:DN=(972)579-4813
示例3:DN=(213)777-8888
示例4:DN=(972)999-3000
创建范围树
根据另一方面,本文所描述的主题可以包括用于创建范围树的过程。
图3是示出了根据本文所描述的主题的实施例用于创建范围树的示例性过程的流程图。为了示意性目的,假定基于一对或多对号码构造范围树,其中每对定义了有效范围的号码的上限和下限。在图3中,“N”是来自一对号码的一个号码,D是号码N的数位,并且P是节点指针。由节点指针P所指向的节点被称为“当前节点”。出于速记目的,P还可以指代当前节点自己。C是孩子节点。出于速记目的,C还可以用于指代由该孩子节点存储的值。
在步骤300,创建了根节点。在步骤302,确定另一号码是否可用于处理。如果不可以,则过程结束。如果可以,该过程可跳到步骤304,其中获得下一个号码N并且节点指针P被设置为根节点。在步骤306,获得号码N的下一个数位D。在步骤308,分析当前节点以确定当前节点是否具有其值与值D相等的任何孩子。如果不具有,该过程进行到步骤310,在步骤310中创建当前节点P的孩子节点C并且将D的值存储到节点C中。在步骤312,P被移动以使其指向包含值D的(预先存在或刚被创建的)孩子节点C。在步骤314,分析N以确定是否有任何要处理的剩余数位;如果是,则该过程返回到步骤306,而如果否,则该过程进行到步骤316。在步骤316,确定N是否是下限;如果是,则该过程进行到步骤318,其创建包含值“L”的标记,而如果否,则该过程进行到步骤320,其创建包含值“H”的标记。在某些实施例中,将创建节点P的新的孩子C以保留标记值,在该情况下该孩子节点是标记节点。在其他实施例中,标记属性将与节点P相关联以存储标记值。该过程然后返回到步骤302以确定是否有更多的要处理的号码。当已处理所有号码时,树创建过程结束。
在某些实施例中,节点可以包括指示存在包含特定值的孩子节点的数据结构,因此不需要跳到每个孩子结点来确定由孩子存储的值。在一个示例性实施例中,节点P可以包含位域,其中位[X]的值指示存在包含值X的P的孩子节点。例如,设置位[5]为1可以指示P具有包含值5的孩子节点。包含二进制值“1001101111”(位[9]-位[0])的位域可以指示P具有包含0的孩子节点、包含1的孩子节点、包含2的孩子节点、包含3的孩子节点、包含5的孩子节点、包含6的孩子节点和包含9的孩子节点。这样的位域可以实现快速的树遍历的原因有两个:首先,在双亲节点上包含关于孩子节点的重要信息;并且其次,可以通过简单的布尔和移位运算来实现确定是否存在如下这样的孩子的操作:所述孩子具有与D匹配的值、小于D的最大孩子值、或是大于D的最小孩子值。
范围树维护
在本文中所使用的词语“范围树维护”指代修改范围树以反映该范围树表示的允许的一组范围中的变化。响应于诸如接收到添加或删除DN或DN块的请求之类的事件,范围树可能需要维护。除了可以将新的DN或块添加到现有的根节点而不创建新的根节点之外,插入新的DN或DN块通常涉及与图3中用于创建范围树的过程几乎相同的过程;换言之,可以跳过步骤300。
添加DN块可能需要添加树的一个或多个新的分支,并且可能需要删除树的一个或多个现有分支中的某些或全部。例如,添加新的范围的DN可能涉及创建两个新的分支以表示新块的数值范围的上限和下限,特别地是当新的范围不与由树表示的任何现有范围邻接的情况下更是如此。扩大现有范围可以涉及添加一个或多个新的分支并且删除一个或多个现有分支中的某些或全部。例如,扩大现有块的上限可以涉及添加新的分支以表示新的上限并且删除表示旧的上限的某些或所有分支。扩大现有范围的两个末端可以涉及创建用于表示上限和下限范围的新分支、和删除用于表示旧的上限和下限范围的某些或所有分支。
图4A至4F示出了根据本文所描述的主题的示例性树维护。图4A示出了用于表示允许的DN数值范围的示例性简化范围树:10,400-10,499。图4B示出了响应于在范围10,000~10,399中允许额外的DN的请求而对范围树做出的修改。由于这些额外的DN邻接现有的范围,因此添加额外的DN范围的请求可以被视为扩大现有范围的请求。如图4B示出的,创建新的分支以表示现有范围新的下限并且删除表示现有范围旧的下限的分支。可替代地,可以通过创建用于表示新范围的上限和下限的新的一对分支来添加DN的额外范围;在这种情况下,不删除现有的树的分支。图4C是添加DN额外范围的另一示例,其中额外的范围邻接现有的范围。这有效地扩大了现有范围的上限。在这种情况下,添加新的分支以表示现有范围的新的上限并且删除用于表示旧的上限的分支。
删除DN的块可能需要删除树中一个或多个分支中的某些或全部。图4D示出了用于表示允许的DN范围20,000-39,999的另一简化范围树。例如,删除其范围由范围树的两个分支表示的DN的整个块可以涉及删除表示上限和下限的两个分支中的某些或全部。另一方面,例如,如图4E示出的,删除DN范围的末端部分的步骤可以涉及删除诸如用于表示范围上限的分支之类一个分支的某些或全部和创建新的分支以表示范围的新的上限。删除DN块的步骤可能需要在树中创建额外的分支。例如,如图4F示出的,删除DN中邻接块的中间部分的步骤可能涉及创建两个新的分支,一个表示下块的新的上限并且另一个表示上块的新的下限。可以分割DN的邻接块而无需通过与用于删除邻接块的中间部分的操作相类似的操作来删除范围内的任何DN,但其中下块的新的上限正好比上块的新的下限小1。
操作
图5是示出了根据本文所描述的主题的实施例在软交换机中用于执行DN筛选的示例性过程的流程图。在步骤500,在软交换机启动时创建范围树并且将其存储在存储器中。在步骤502,接收DN并且相对于该范围树分析该DN以确定DN是否在由该软交换机服务的DN块内。如果DN不在该交换机的DB的范围内(在该交换机中未提供),则该DN被转发到适当的交换机。在步骤504,一旦接收更新范围树的请求或命令,就对存储器中的该范围树执行维护/更新操作。该更新操作可以包括添加新的DN、删除现有的DN或修改现有的DN。
图6是示出了根据本文所描述的主题的实施例的通过使用用于DN筛选的范围树的示例性系统的方框图。在图6中,交换机600包括范围树100和查找引擎602,用于通过使用范围树100来确定到来的DN是否要由交换机600处理。
应该理解可以对本发明的各个细节做出修改而不偏离本发明的范围。此外,上面的描述仅是示意性的,其不对本发明的范围造成限制。
Claims (11)
1.一种用于确定电信设备目录号码(DN)是否在由电信网络节点处理的允许的一组数值范围内的方法,所述方法包括:
(a)创建用于表示由电信网络节点处理的允许的一组数值DN范围的范围树,并且将所述范围树存储在存储设备中,其中,由数值上限和下限定义每一范围;
(b)接收待分析的电信设备的DN;
(c)基于分析所述DN的每个数位,从所述范围树的根节点开始遍历该树,直到到达叶子节点为止;并且
(d)基于与所到达的叶子节点相关联的属性,确定所述DN是否在所述允许的一组范围内。
2.如权利要求1所述的方法,其中,所述允许的一组数值DN范围表示由所述电信网络节点处理的一组DN,并且其中,不在所述允许的一组数值DN范围内的DN不能被所述电信网络节点处理。
3.如权利要求1所述的方法,其中,所述电信网络节点包括软交换机。
4.如权利要求1所述的方法,其中,所述电信网络节点包括媒体网关控制器。
5.如权利要求1所述的方法,其中,遍历所述范围树的步骤包括:
(a)针对所述DN的每个数位D,从所述DN的最高有效数位开始,确定在所述范围树中是否存在包含所述数位D的值的孩子节点C,并且响应于确定在所述范围树中存在包含所述数位D的值的孩子节点C,跳到所述孩子节点C;
(b)响应于确定在所述范围树中不存在包含所述数位D的值的孩子节点,确定在所述范围树中是否存在包含比所述数位D的值小的值的孩子节点,并且响应于确定存在包含比所述数位D的值小的值的孩子节点,从包含比所述数位D的值小的最大值的孩子节点开始,遍历所述范围树中表示比所述DN小的最大号码的分支,直到到达叶子节点为止;并且
(c)响应于确定在所述范围树中不存在包含比所述数位D的值小的值的孩子节点,确定在所述范围树中是否存在包含比所述数位D的值大的值的孩子节点,并且响应于确定在所述范围树中存在包含比所述数位D的值大的值的孩子节点,从包含比所述数位D的值大的最小值的孩子节点开始,遍历所述范围树中表示比所述DN大的最小号码的分支,直到到达叶子节点为止。
6.如权利要求1所述的方法,其中,所述DN的数位包括有序的一组符号。
7.如权利要求1所述的方法,包括修改所述范围树以反映允许的范围的变化。
8.如权利要求7所述的方法,其中,修改所述范围树的步骤包括响应于对于允许的范围的变化的请求来修改所述范围树。
9.如权利要求7所述的方法,其中,修改所述范围树的步骤包括创建所述范围树的分支的至少一部分。
10.如权利要求7所述的方法,其中,修改所述范围树的步骤包括删除所述范围树的分支的至少一部分。
11.一种用于确定电信设备目录号码(DN)是否在由电信网络节点处理的允许的一组数值范围内的装置,所述装置包括:
(a)用于创建用于表示由电信网络节点处理的允许的一组数值DN范围的范围树,并且将所述范围树存储在存储设备中的模块,其中,由数值上限和下限定义每一范围;
(b)用于接收待分析的电信设备的DN的模块;
(c)用于基于分析所述DN的每个数位,从所述范围树的根节点开始遍历该树,直到到达叶子节点为止的模块;以及
(d)用于基于与所到达的叶子节点相关联的属性,确定所述DN是否在所述允许的一组范围内的模块。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US80944706P | 2006-05-30 | 2006-05-30 | |
US60/809,447 | 2006-05-30 | ||
US11/639,445 US8072903B2 (en) | 2006-05-30 | 2006-12-14 | Methods, systems, and computer program products for performing range-based directory number (DN) screening |
US11/639,445 | 2006-12-14 | ||
PCT/US2007/012732 WO2007142964A2 (en) | 2006-05-30 | 2007-05-30 | Methods, systems, and computer program products for performing range-based directory number (dn) screening |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101507252A CN101507252A (zh) | 2009-08-12 |
CN101507252B true CN101507252B (zh) | 2012-08-08 |
Family
ID=38790204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800285998A Active CN101507252B (zh) | 2006-05-30 | 2007-05-30 | 执行基于范围的目录号码(dn)筛选的方法、系统和计算机程序产品 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8072903B2 (zh) |
EP (1) | EP2033430B1 (zh) |
CN (1) | CN101507252B (zh) |
WO (1) | WO2007142964A2 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL2002799C2 (en) * | 2009-04-24 | 2010-10-26 | Univ Delft Tech | Data structure, method and system for address lookup. |
US10810368B2 (en) * | 2012-07-10 | 2020-10-20 | Robert D. New | Method for parsing natural language text with constituent construction links |
CN113434587B (zh) * | 2021-06-30 | 2023-08-18 | 青岛海尔科技有限公司 | 一种数据存储、数据查询方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494301A (zh) * | 2002-10-30 | 2004-05-05 | 华为技术有限公司 | 一种通过数据信息关键域存储和读取数据信息的方法 |
US20040242243A1 (en) * | 2001-11-06 | 2004-12-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Number portability resolving apparatus |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4882699A (en) | 1988-09-19 | 1989-11-21 | International Business Machines Corp. | Communications network routing and management system |
CA2006230C (en) * | 1989-12-20 | 1993-10-26 | Timothy James Littlewood | Method and apparatus for validating character strings |
US5311584A (en) * | 1991-10-31 | 1994-05-10 | At&T Bell Laboratories | Telecommunications call-processing arrangement |
US6647393B1 (en) * | 1996-11-22 | 2003-11-11 | Mangosoft Corporation | Dynamic directory service |
GB9811574D0 (en) * | 1998-05-30 | 1998-07-29 | Ibm | Indexed file system and a method and a mechanism for accessing data records from such a system |
US6341161B1 (en) | 1998-07-24 | 2002-01-22 | Teresa Farias Latter | Method and system for providing enhanced caller identification information including tailored announcements |
US6587874B1 (en) * | 1999-06-29 | 2003-07-01 | Cisco Technology, Inc. | Directory assisted autoinstall of network devices |
US6944598B1 (en) * | 1999-09-17 | 2005-09-13 | I2 Technologies Us, Inc. | Binary trees for detecting inventory problems in an enterprise model |
US6931003B2 (en) * | 2000-02-09 | 2005-08-16 | Bookline Flolmstead Llc | Packet prioritization protocol for a large-scale, high speed computer network |
US6859217B2 (en) * | 2000-07-19 | 2005-02-22 | Microsoft Corporation | System and method to display and manage data within hierarchies and polyarchies of information |
KR100656528B1 (ko) * | 2001-09-10 | 2006-12-12 | 한국과학기술원 | 영역-합 질의를 위한 동적 업데이트 큐브와 하이브리드질의 검색방법 |
US7099677B2 (en) | 2001-11-29 | 2006-08-29 | Bellsouth Intellectual Property Corp. | Smart call delivery GIS integration |
US20040199485A1 (en) * | 2003-04-01 | 2004-10-07 | International Business Machines Corporation | Index for directory database |
US7099882B2 (en) * | 2003-04-29 | 2006-08-29 | Navteq North America, Llc | Method and system for forming, updating, and using a geographic database |
US20050015383A1 (en) * | 2003-07-15 | 2005-01-20 | Microsoft Corporation | Method and system for accessing database objects in polyarchical relationships using data path expressions |
EP1803310B1 (en) | 2004-10-22 | 2015-12-23 | Genband US LLC | Mobility management apparatus and methods |
US7984388B2 (en) * | 2004-12-10 | 2011-07-19 | International Business Machines Corporation | System and method for partially collapsing a hierarchical structure for information navigation |
US20070203909A1 (en) * | 2006-02-28 | 2007-08-30 | Tekelec | Methods, systems, and computer program products for indexing, validating, recovering, and consolidating a database indexed by range-bound numeric data |
-
2006
- 2006-12-14 US US11/639,445 patent/US8072903B2/en active Active
-
2007
- 2007-05-30 WO PCT/US2007/012732 patent/WO2007142964A2/en active Application Filing
- 2007-05-30 EP EP07795485.7A patent/EP2033430B1/en active Active
- 2007-05-30 CN CN2007800285998A patent/CN101507252B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040242243A1 (en) * | 2001-11-06 | 2004-12-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Number portability resolving apparatus |
CN1494301A (zh) * | 2002-10-30 | 2004-05-05 | 华为技术有限公司 | 一种通过数据信息关键域存储和读取数据信息的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2033430B1 (en) | 2019-01-02 |
EP2033430A4 (en) | 2015-01-28 |
US20070280466A1 (en) | 2007-12-06 |
CN101507252A (zh) | 2009-08-12 |
WO2007142964A2 (en) | 2007-12-13 |
WO2007142964A3 (en) | 2008-02-21 |
EP2033430A2 (en) | 2009-03-11 |
US8072903B2 (en) | 2011-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101388030B (zh) | 数据库和数据库处理方法 | |
CN101611292B (zh) | 道路地图数据的生成方法及装置 | |
US8327021B2 (en) | Technique of determining connectivity solutions for network elements | |
US20100250536A1 (en) | Method for integrating road names and points of interest in source data | |
US4882699A (en) | Communications network routing and management system | |
JP2008543233A (ja) | ネットワーク保全用解析システム | |
CN106981024B (zh) | 一种交易限额计算处理系统及其处理方法 | |
FI100443B (fi) | Liikenteen väylöitys tietoliikenneverkon solmussa | |
CN107545021A (zh) | 一种数据存储方法及装置 | |
CN101507252B (zh) | 执行基于范围的目录号码(dn)筛选的方法、系统和计算机程序产品 | |
CN108509505A (zh) | 一种基于分区双数组Trie的字符串检索方法及装置 | |
CN107330466A (zh) | 极速地理GeoHash聚类方法 | |
CN109741034B (zh) | 一种网格树形组织管理方法及装置 | |
CN104008205A (zh) | 一种内容路由的查询方法及系统 | |
US7738640B1 (en) | Methods for reconciling discrepancies in circuit information among various telecommunication network management systems | |
US6839749B1 (en) | Network representation and manipulation thereof | |
CN102088362B (zh) | 性能数据的采集方法及装置 | |
CN100407634C (zh) | 一种可在多信令点之间实现负荷分担的gt翻译方法 | |
US7383268B2 (en) | Indexing technique for an efficient best-pattern matched lookup | |
KR101927689B1 (ko) | Cim 계통도 처리 방법 | |
CN102262687B (zh) | 一种线束网络中的路径查找方法和线长计算方法 | |
US7065181B2 (en) | System and method for improving the automated loop makeup process | |
JPH05207132A (ja) | 通信網設計のための交換機間接続経路の生成、整理及び決定方法 | |
KR102668821B1 (ko) | 회전기반 최적경로 탐색 방법 및 시스템 | |
Du et al. | On optimal routing trees |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |