The subject matter described herein relates to providing number portability (NP) and E.164 number (ENUM) services. More particularly, the subject matter described herein relates to methods, systems and computer program products for accessing number portability (NP) and E.164 number (ENUM) data using a common NP/ENUM data locator structure.
Number portability (NP) is a service that allows subscribers to change service providers and/or locations and keep the same telephone number. The term “number portability,” as used herein, is intended to include local number portability (LNP), which refers to porting of landline telephone numbers, and mobile number portability, which refers to porting of mobile telephone numbers. In order to provide number portability service, carriers must maintain a database that translates dialed telephone numbers into exchange identifiers. As the number of subscribers increases, the size of number portability databases will also increase.
ENUM service refers to a service where the E.164-formatted telephone number of a subscriber is translated into one or more uniform resource identifiers (URIs). For example, the telephone number 19194605500 may be translated into 19194605500@tekelec.com. ENUM service allows subscribers to contact Internet protocol (IP) devices, such as IP phones, by dialing an E.164 telephone number. ENUM service requires a database that translates the E.164-formatted number to the corresponding URI(s). Like number portability, as the number of subscribers increases, the size of ENUM databases will also increase.
Current NP and ENUM databases are indexed, in whole or in part, by telephone numbers (TNs). For example, local number portability databases are indexed based on the first six digits of a telephone number, referred to as the numbering plan area code and exchange number (NPA-NXX). If a number within an NPA-NXX range is ported, its entry in the LNP database will contain a location routing number (LRN), which is a ten digit number corresponding to a ported-to end office.
When a ported TN is dialed, the call is routed to the appropriate end office using the LRN associated with the dialed TN. An LRN acts as a pointer to the ported-to end office and can point to switches located in a different geographical area or belonging to a different provider from the donor end office without changing the TN with which the LRN is associated. By maintaining databases containing TNs and any associated LRNs for ported numbers, carriers are able to provide NP service to their customers.
As stated above, NP database size is increasing due to an increased number of subscribers. One drawback of conventional NP databases is that as their size increases, their lookup time and storage requirement increases as well. For example, NP databases in the United States and other countries may now include hundreds of millions of entries. The resulting lookup times delay call setup. In addition, NP databases must be stored in memory, which increases data storage costs. Therefore, a need exists for reducing NP lookup times and storage requirements. Similar problems will occur for ENUM databases as the number of subscribers that require ENUM services increases.
Currently, NP and ENUM databases are separately maintained and accessed, even though some of the data required to access each database type is the same. That is, both ENUM and NP databases have data that can be accessed using a TN. Currently, TN data is duplicated for NP and ENUM data, resulting in wasted storage.
Conventional TN database lookups are typically implemented using binary tree data structures (b-trees). A binary tree data structure is a series of linked nodes wherein each node has at most two dependent nodes, called children. In order to locate an entry in a b-tree data structure, a search key, such as a called party telephone number, is compared with data associated with different branches in the tree. However, a binary tree data structure has several drawbacks.
One drawback associated with binary tree data structures is that as the number of ENUM database entries increases, the number of branches in the tree must also increase, thus increasing the search time as well. Another problem with using b-trees is that sophisticated balancing algorithms are required to ensure that the trees do not become unbalanced. Also, the size of the key in a b-tree structure may be greater than the size of data associated with a key. Another problem associated with b-tree structures is that they cannot be recovered in smaller data blocks since entries in a b-tree relate to each other as branches. Therefore, data recovery requires a reload of the entire database when data is identified as invalid.
In connecting VoIP calls that require ENUM queries, network traffic may be exchanged between administratively distinct networks through the use of peering agreements between the operators of the various networks. Peering agreements are typically contractual arrangements whereby routing information is exchanged between carriers for their mutual benefit. However, complications may arise given the wide variety of peering agreements and network implementations involved. For example, a subscriber on carrier A's network may initiate a voice over Internet protocol (VoIP) call to a subscriber on carrier Z's network. Carrier A may not have a peering agreement directly with carrier Z and thus would not be able to route the calling subscriber's call because it would not have the necessary routing information. However, carrier A may have a peering agreement with carrier B, who may have a peering agreement with carrier C, and so on. In this way, carrier A may be connected using a series of peering agreements, to carrier Z. Since no single carrier has a view of the entire chain, it may not be possible to complete VoIP calls that require multiple peering agreements. Alternatively, each carrier could maintain a copy of all peering agreements between other carriers to select the correct path for the call. However, peering agreements may be proprietary to the carriers involved in each agreement and thus may be unavailable to non-party carriers.
Accordingly, there exists a need for improved methods, systems, and computer program products for providing NP and ENUM services in a telecommunications network.
According to one aspect, the subject matter described herein comprises methods, systems, and computer program products for accessing number portability (NP) and E.164 number (ENUM) data in a combined NP/ENUM database. One method includes receiving a query including a telephone number (TN). A common NP/ENUM data locator structure is accessed to locate a pointer corresponding to the TN. In response to the query being a NP query, the pointer is used to locate NP data, and the NP data is returned. In response to the query being an ENUM query, the pointer is used to locate at least one URI and returning at least one uniform resource locators (URIs).
According to another aspect, the subject matter described herein comprises a method for accessing ENUM data in a hierarchical ENUM database system. One method includes receiving an ENUM query. A common NP/ENUM data locator structure is accessed to locate data corresponding to the query. In response to the local data including a uniform resource locator (URI), returning the URI. In response to the local data including a location routing number (LRN), the LRN is used to access a numbering plan area code and exchange number (NPA-NXX) data structure.
The subject matter described herein may be implemented using a computer program product comprising computer executable instructions embodied in a computer readable medium. Exemplary computer readable media suitable for implementing the subject matter described herein include chip memory devices, disk memory devices, application specific integrated circuits, programmable logic devices, and downloadable electrical signals. In addition, a computer program product that implements a subject matter described herein may reside on a single device or computing platform or maybe distributed across multiple devices or computing platforms.
The subject matter described herein will now be explained with reference to the accompanying drawings of which:
In order to provide greater efficiency in accessing, maintaining, and storing number portability (NP) and ENUM data, systems and methods are described herein for accessing NP and ENUM data using a common ENUM/NP data locator structure. First, a combined NP/ENUM database system is described that allows both NP and ENUM queries to be answered by a single system without maintaining duplicate TN data as in current systems. Second, a hierarchical ENUM database system providing ENUM translation services with greater data granularity than provided by current systems is described. Finally, a peering agreement database system interfacing with the combined NP/ENUM and hierarchical ENUM database systems and efficiently routing network traffic between carriers with peering agreements is described.
The methods for accessing NP and ENUM data using a common ENUM/NP data locator structure described herein can be implemented using any suitable hardware platform. Suitable platforms can include multiple or single hardware devices, examples of which include signal transfer points (STPs), service control points (SCPs), service switching points (SSPs), and servers. As used herein, a server is defined as a platform including hardware and software for providing database services to clients. A server may respond to received queries from a client.
In one implementation, NP data may be maintained in its traditional location such as on an STP or an SCP, and ENUM data may be located on a standalone server. A common NP/ENUM data locator structure may be located on the STP.
Referring to
In the illustrated example, processing module 102 comprises a link interface module (LIM) for interfacing with SS7 signaling links. Link interface module 102 includes a message transfer part (MTP) level 1 and 2 function 112, a gateway screening function 114, a discrimination function 116, a distribution function 118, and a routing function 120. MTP level 1 and 2 function 112 performs MTP level 1 and 2 operations, such as error correction, error detection, and sequencing of SS7 signaling messages. Gateway screening function 114 screens incoming SS7 signaling messages based on one or more parameters in the messages. Discrimination function 116 determines whether a received SS7 signaling message should be distributed to another processing module within STP 100 for further processing or whether the message should be routed over an outbound signaling link. Discrimination function 116 forwards messages that are to be distributed for internal processing to distribution function 118. Distribution function 118 forwards the messages to the appropriate internal processing module. Routing function 120 routes messages that are required to be routed based on MTP level 3 information in the messages.
Processing module 104 comprises a data communications module (DCM) for sending and receiving signaling messages via IP signaling links. DCM 104 includes a network and physical layer function 122, a transport layer function 124, an adaptation layer function 126, and layers 112-120 described with regard to LIM 102. Network and physical layer function 122 performs network and physical layer functions for sending and receiving messages over IP links. For example, function 122 may implement Internet protocol (IP) over Ethernet. Transport layer function 124 implements transport layer functions. For example, transport layer function 124 may implement transmission control protocol (TCP), user datagram protocol (UDP), or stream control transmission protocol (SCTP). Adaptation layer function 126 performs operations for adapting signaling messages, such as SS7 signaling messages, for transport over an IP network. Adaptation layer function 126 may implement using any of the IETF adaptation layer protocols, such as M3UA, M2PA, SUA, TALI, or other suitable adaptation layer protocol. Functions 114-120 perform the operations described above for the correspondingly numbered components of LIM 102.
Processing modules 108 are database service modules (DSMs) for providing database services for received signaling messages. Each DSM 108 includes a service selection function 128 for determining the type of database service to be applied to a received signaling message. If NP service is selected, an access engine 129 uses a combined NP/ENUM data locator structure 130 to obtain a pointer or index to NP data in an NP database 132. If the selected service is ENUM service, access engine 129 may access NP/ENUM data locator structure 130, obtain a pointer or index to ENUM data, and return the pointer or index to an ENUM database. After the database access has been performed, routing function 120 may route the received signaling message or a response to a received signaling message to its destination.
Combined NP/ENUM data locator structure 130 may be used to implement the indexing methods described herein for accessing data in database 132. In addition, data locator structure 130 may be used to perform validation of database access results at access time based on data stored in database 132.
DSMs 108 each contain common NP/ENUM data locator structure 130 and NP database 132. Each DSM 108 is connected to other processing modules located on STP 100 via bus 110 as well as server 134. However, NP queries can be processed entirely on STP 100 in the embodiment illustrated in
Server 134 includes an ENUM database 138 and an ENUM database access engine 136. Server 134 may be connected via a communications link to STP 100 for receiving and transmitting data related to accessing data stored in ENUM database 138. Additionally, server 134 may be connected to an Internet protocol (IP) communications network for receiving ENUM queries, such as queries necessary for connecting VoIP calls.
In one example illustrated in
In a second example illustrated in
In the example illustrated in
Active OA&M 154 may perform provisioning of memory managed by message processors 150 and 152. A standby OA&M 156 may perform provisioning in the event that active OA&M 154 fails. LNP data may be obtained from a centralized authority, such as local service management system (LSMS) 158. ENUM data may be obtained from a similar service or from a provisioning interface of an operator. In the illustrated example, message processors 150 and 152 are assumed to be identically provisioned and may operate in a load sharing manner. An exemplary hardware platform suitable for implementing server 134 is the TekServer platform available from Tekelec of Morrisville, N.C.
In the illustrated example, level 1 range table 200 may include entries indexed by NPA-NXX values. For illustrative purposes, a single entry is shown. In the illustrated example, the entry includes a pointer to a record in level 2 sub-range table 202. Each entry in level 2 sub-range table 202 is indexed by ranges of 1000 numbers from 0000 to 9999, corresponding to the last four digits of a telephone number used as a search key. Each entry in level 2 sub-range table 202 includes a pointer to an entry in level 3 sub-range table 204 for the corresponding range. Level 3 sub-range table 204 includes entries indexed by ranges of 100 numbers from 000 to 999 corresponding to the last three digits of a telephone number. Each entry in level 3 sub-range table 204 includes a bitmap, a ported count, and a pointer to level 4 data table 206. The ported count for each entry indicates the number of TNs within each range that are ported. The bitmap includes bits that indicate the presence or absence of data for a key corresponding to each bit. The pointer points to the block of data in level 4 TN data table 206 corresponding to each range in level 3 sub-range table 204. Level 4 TN data table 206 includes the data desired to be accessed. For example, for number portability data, level 4 TN data table 206 may include LRN data. In addition, level 4 data table 206 may include a portion of a search key, such as the numbering plan area code and exchange number (NPA-NXX) value, so that results of a database access can be validated at access time.
According to another aspect of the subject matter described herein, a hierarchical ENUM data structure and a method for locating ENUM data using the same is provided.
When an ENUM query is received at first tier 400, a TN is extracted from the query and inputted into the level 1 range table illustrated in
In
When an LRN is passed from first tier 400 to second tier 402, the method of traversing a series of tables and pointers as described above may be repeated for different values. In second tier 402, the first six digits of an LRN received from first tier 400 may correspond to an NPA-NXX value in second tier 402. If a first URI value is located using the LRN, or if both an OCN and a first URI value are located, the first URI value is returned. Alternatively, if only an OCN value is the only value located in second tier 402 associated with the NPA-NXX value of a particular TN, the OCN value is passed to third tier 404.
Third tier 404 includes OCN data which is mapped to URI data. The URI data located in third tier 404 also comprises carrier level data. However, third tier URI data is separated by carrier, and therefore possesses the lowest granularity of the three tiers. For OCN values passed from the second tier, URIs are located in a third URI data table. One or more URIs exist for all OCNs because the total number of OCNs is small and changes very little compared to NP data located in the first tier, and therefore requires very little effort to maintain accurate data. In one exemplary implementation, a hierarchical ENUM database may be implemented on a traditional telecom platform, such as an STP and a server.
According to another aspect of the subject matter described herein, the data structures and access methods described above may be extended to implant VoIP peering agreements.
In step 902, an ENUM query for which voice over IP peering agreement information is needed is received. An example of an ENUM query for which VoIP peering agreement information is needed is an ENUM query from a carrier associated with a calling party for a call that cannot be directly routed to the called party because the calling and called party networks do not have direct peering agreements with each other.
In step 904, voice over IP peering agreement data is located in the ENUM database based on the peering agreement query. Locating the peering agreement data may include using the source IP address of the calling party to locate the OCN of the carrier serving the calling party and using the OCN of the carrier serving the calling party to determine a carrier with which the calling party's carrier has a peering agreement. In block 906, the VoIP peering agreement data is returned. In block 908, the VoIP peering agreement data is used to route the call to the called party. Block 908 may include one or more subsequent queries to the ENUM database to locate the URI corresponding to the called party.
In the some of the examples described above, NP data is accessed before accessing ENUM data to first determine whether a number is ported. In an alternate implementation, it may be desirable to access ENUM data first, for example, to first try to route the call to a 3G network. If the ENUM data access fails to locate a matching record, an NP lookup may be performed to route the communication to the correct 2G destination.
In block 1002, if ENUM data is not located, NP data is accessed using the called TN in step 1007. In step 1008, it is determined whether NP data (i.e., a location routing number (LRN)) corresponding to the dialed TN is located in the NP data access. If NP data corresponding to the called TN is located, control proceeds to step 1010, where the NP data is returned to the query originator. In block 1012, the communication is routed to a 2G destination based on the NP data. If NP data corresponding to the called TN is not located, control proceeds to block 1014, where the empty lookup results are communicated to the query originator. In block 1016, the communication is routed to a 2G destination using the original called party TN.
It will be understood that various details of the subject matter described herein may be changed without departing from the scope of the subject matter described herein. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation, as the subject matter described herein is defined by the claims as set forth hereinafter.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/813,309 filed Jun. 13, 2006, the disclosure of which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4819156 | DeLorme et al. | Apr 1989 | A |
6049714 | Patel | Apr 2000 | A |
6097960 | Rathnasabapathy et al. | Aug 2000 | A |
6377674 | Chong et al. | Apr 2002 | B1 |
6434144 | Romanov | Aug 2002 | B1 |
6539077 | Ranalli et al. | Mar 2003 | B1 |
6577723 | Mooney | Jun 2003 | B1 |
6748057 | Ranalli et al. | Jun 2004 | B2 |
6775737 | Warkhede et al. | Aug 2004 | B1 |
6836477 | West, Jr. et al. | Dec 2004 | B1 |
6839421 | Ferraro Esparza et al. | Jan 2005 | B2 |
7027582 | Khello et al. | Apr 2006 | B2 |
7054652 | Luis | May 2006 | B2 |
7085260 | Karaul et al. | Aug 2006 | B2 |
7274683 | Segal | Sep 2007 | B2 |
7286839 | McCann et al. | Oct 2007 | B2 |
7457283 | Dalton et al. | Nov 2008 | B2 |
7627108 | Enzmann et al. | Dec 2009 | B1 |
7664495 | Bonner et al. | Feb 2010 | B1 |
7693135 | Pershan | Apr 2010 | B2 |
7715367 | Nishida et al. | May 2010 | B2 |
7746864 | Asawa et al. | Jun 2010 | B1 |
7751386 | Kobayashi et al. | Jul 2010 | B2 |
7787445 | Marsico | Aug 2010 | B2 |
7996541 | Marathe et al. | Aug 2011 | B2 |
20010029182 | McCann et al. | Oct 2001 | A1 |
20010055380 | Benedyk et al. | Dec 2001 | A1 |
20020054674 | Chang et al. | May 2002 | A1 |
20020095421 | Koskas | Jul 2002 | A1 |
20020114440 | Madour et al. | Aug 2002 | A1 |
20020122547 | Hinchey et al. | Sep 2002 | A1 |
20020147845 | Sanchez-Herrero et al. | Oct 2002 | A1 |
20020176562 | Hao | Nov 2002 | A1 |
20030007482 | Khello et al. | Jan 2003 | A1 |
20030081754 | Esparza et al. | May 2003 | A1 |
20030095541 | Chang et al. | May 2003 | A1 |
20030128693 | Segal | Jul 2003 | A1 |
20030220951 | Muthulingam et al. | Nov 2003 | A1 |
20040003114 | Adamczyk | Jan 2004 | A1 |
20040034699 | Gotz et al. | Feb 2004 | A1 |
20040082332 | McCann et al. | Apr 2004 | A1 |
20040243596 | Lillqvist et al. | Dec 2004 | A1 |
20040246965 | Westman et al. | Dec 2004 | A1 |
20050101297 | Delaney et al. | May 2005 | A1 |
20050119017 | Lovell, Jr. et al. | Jun 2005 | A1 |
20050182781 | Bouvet | Aug 2005 | A1 |
20050251509 | Pontius | Nov 2005 | A1 |
20050286531 | Tuohino et al. | Dec 2005 | A1 |
20060002308 | Na et al. | Jan 2006 | A1 |
20060034270 | Haase et al. | Feb 2006 | A1 |
20060067338 | Hua et al. | Mar 2006 | A1 |
20060136557 | Schaedler et al. | Jun 2006 | A1 |
20060165068 | Dalton et al. | Jul 2006 | A1 |
20060245573 | Sheth et al. | Nov 2006 | A1 |
20060293021 | Zhou | Dec 2006 | A1 |
20070061397 | Gregorat et al. | Mar 2007 | A1 |
20070104184 | Ku et al. | May 2007 | A1 |
20070115934 | Dauster et al. | May 2007 | A1 |
20070116250 | Stafford | May 2007 | A1 |
20070121879 | McGary et al. | May 2007 | A1 |
20070203909 | Marathe | Aug 2007 | A1 |
20070243876 | Duan | Oct 2007 | A1 |
20070258575 | Douglas et al. | Nov 2007 | A1 |
20080019356 | Marsico | Jan 2008 | A1 |
20080109532 | Denoual et al. | May 2008 | A1 |
20080112399 | Cohen et al. | May 2008 | A1 |
20080130856 | Ku et al. | Jun 2008 | A1 |
20080137832 | Heinze et al. | Jun 2008 | A1 |
20080247526 | Qiu et al. | Oct 2008 | A1 |
20080281975 | Qiu et al. | Nov 2008 | A1 |
20080311917 | Marathe et al. | Dec 2008 | A1 |
20090074174 | Allen et al. | Mar 2009 | A1 |
20090103707 | McGary et al. | Apr 2009 | A1 |
20090227276 | Agarwal et al. | Sep 2009 | A1 |
20110098049 | Gosnell et al. | Apr 2011 | A1 |
Number | Date | Country |
---|---|---|
0 669 771 | Aug 1995 | EP |
0 944 276 | Sep 1999 | EP |
1 285 545 | Oct 2004 | EP |
2000-0037801 | Jul 2000 | KR |
2003-0040291 | May 2003 | KR |
10-2007-0061774 | Jun 2007 | KR |
WO 9733441 | Sep 1997 | WO |
WO 9911087 | Mar 1999 | WO |
WO 0016583 | Mar 2000 | WO |
WO 0147297 | Jun 2001 | WO |
WO 0148981 | Jul 2001 | WO |
WO 0154444 | Jul 2001 | WO |
WO 03005664 | Jan 2003 | WO |
WO 2007045991 | Apr 2007 | WO |
WO 2007092205 | Aug 2007 | WO |
WO 2008011101 | Jan 2008 | WO |
WO 2008073226 | Jun 2008 | WO |
WO 2008157213 | Dec 2008 | WO |
Number | Date | Country | |
---|---|---|---|
20070286379 A1 | Dec 2007 | US |
Number | Date | Country | |
---|---|---|---|
60813309 | Jun 2006 | US |