Source: http://www.google.ca/patents/US20070286379
Timestamp: 2017-12-13 17:08:57
Document Index: 379674706

Matched Legal Cases: ['arty 600', 'arty 602', 'arty 600', 'arty 602', 'arty 602', 'arty 602']

Patent US20070286379 - Methods, systems and computer program products for accessing number ... - Google Patents
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...http://www.google.ca/patents/US20070286379?utm_source=gb-gplus-sharePatent US20070286379 - 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
Publication number US20070286379 A1
Application number US 11/605,837
Filing date 29 Nov 2006
Priority date 13 Jun 2006
Also published as EP2033431A2, EP2033431A4, EP2033431B1, US8184798, WO2007146257A2, WO2007146257A3
Publication number 11605837, 605837, US 2007/0286379 A1, US 2007/286379 A1, US 20070286379 A1, US 20070286379A1, US 2007286379 A1, US 2007286379A1, US-A1-20070286379, US-A1-2007286379, US2007/0286379A1, US2007/286379A1, US20070286379 A1, US20070286379A1, US2007286379 A1, US2007286379A1
Inventors Maria A. Wiatrowski, Rohini Marathe, Peter J. Marsico
Patent Citations (72), Referenced by (24), Classifications (10), Legal Events (5)
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
US 20070286379 A1
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).
1. A method for accessing number portability (NP) and E.164 number (ENUM) data in a NP/ENUM database system, the method comprising:
(a) receiving a query including a telephone number (TN);
(b) accessing a common NP/ENUM data locator structure to locate a pointer corresponding to the TN;
(c) in response to the query being a NP query, using the pointer to locate NP data, and returning the NP data; and
(d) in response to the query being an ENUM query, using the pointer to locate at least one uniform resource indicator (URI), and returning at the least one URI.
2. The method of claim 1 wherein accessing a common NP/ENUM data locator structure includes accessing a common NP/ENUM data locator structure located on the same hardware platform as the LNP and ENUM data.
3. The method of claim 1 wherein accessing a common NP/ENUM data locator structure includes accessing a common ENUM/NP data locator structure located on a different hardware platform from at least one of the LNP and ENUM data.
4. The method of claim 1 wherein accessing a common NP/ENUM data locator structure includes accessing a common ENUM/NP data locator structure located on a signal transfer point (STP).
5. The method of claim 1 wherein accessing a common NP/ENUM data locator structure includes accessing a common ENUM/NP data locator structure located on a server.
6. The method of claim 1 wherein accessing a common NP/ENUM data locator structure includes accessing a common ENUM/NP data locator structure located on a service control point (SCP).
7. The method of claim 1 wherein accessing a common NP/ENUM data locator structure includes using the TN to traverse a plurality of tables corresponding to digits in the TN, wherein each of the tables corresponds to ranges of TN digits.
8. The method of claim 7 wherein accessing the plurality of tables includes determining whether ranges of digits in the TN correspond to ranges of TN digits for entries in each of the tables.
9. A method for accessing E.164 number (ENUM) data in a hierarchical ENUM database system, the method comprising:
(a) receiving an ENUM query;
(b) accessing an ENUM data structure to locate data corresponding to the query;
(c) in response to the located data including a uniform resource locator (URI), returning the URI; and
(d) in response to the located data including an location routing number (LRN), using the LRN to access a numbering plan area code and exchange number (NPA-NXX) data structure.
10. The method of claim 9 wherein using the LRN to access the NPA-NXX data structure includes:
(a) locating data corresponding to the LRN;
(b) in response to the data located in the NPA-NXX data structure including a URI, returning the URI; and
(c) in response to the data located in the NPA-NXX data structure including an operator carrier number (OCN), using the OCN to access an OCN data structure.
11. The method of claim 10 wherein accessing the OCN data structure includes locating a URI corresponding to the OCN and returning the URI.
12. A method for accessing peering agreement data in a NP/ENUM database system, the method comprising:
(a) maintaining an ENUM database including voice over IP (VoIP) peering agreement data;
(b) receiving an query for which VoIP peering agreement data is needed;
(c) locating VoIP peering agreement data in the ENUM database based on the ENUM query; and
(d) returning the located peering agreement data as a response to the query.
13. The method of claim 12 wherein maintaining an ENUM database including VoIP peering agreement data includes maintaining a first table mapping operator carrier numbers (OCNs) of different carriers to each other.
14. The method of claim 13 wherein maintaining an ENUM database including VoIP peering agreement data includes maintaining a second table mapping calling party source IP address information to calling party carrier OCN information.
15. The method of claim 14 wherein locating VoIP peering agreement data in the ENUM database includes querying the second table using a calling party IP address to locate a calling party carrier OCN and performing a lookup in the first table the calling party carrier OCN to locate an OCN of a carrier with which the carrier serving the calling party has a VoIP peering agreement.
16. A method for accessing number portability (NP) and E.164 number (ENUM) data, the method comprising:
(b) accessing ENUM data to locate at least one uniform resource indicator (URI) corresponding to the TN;
(c) in response to locating at least one URI corresponding to the TN, returning the at least one URI to an originator of the query;
(d) in response to failing to locate at least one URI, accessing NP data using the TN to locate a routing number corresponding to the query; and
(e) in response to locating a routing number, returning the routing number to the originator of the query.
17. A combined number portability (NP)/E.164 number (ENUM) database system comprising:
(a) common NP/ENUM data locator structure including a plurality of range tables linked using pointers, wherein one of the tables includes a pointer to data corresponding to the pointer; and
(b) an access engine for receiving a query, for determining whether the query is an NP or an ENUM query, for accessing the combined NP/ENUM data locator structure and locating a pointer corresponding to the TN in the query, for in response to the query being an NP query, using the pointer to access NP data to locate an LRN corresponding to the query, and, for, in response to the query being an ENUM query, using the pointer to access ENUM data and locate a URI corresponding to the query.
18. The system of claim 17 wherein the common NP/ENUM data locator structure is located on a signal transfer point (STP).
19. The system of claim 17 wherein the common NP/ENUM data locator structure is located on a service control point (SCP).
20. The system of claim 17 wherein the common NP/ENUM data locator structure is located on a server.
21. A hierarchical ENUM database system comprising:
(a) a first tier ENUM data structure including uniform resource identifiers (URIs) and location routing numbers (LRNs) accessible using telephone numbers (TNs);
(b) a second tier ENUM data structure including URIs accessible using the LRNs located in the first data structure; and
(c) an ENUM data access engine for accessing the first tier ENUM data structure and, in response to locating a URI, returning the URI, and in response to locating an LRN, using the LRN to access a second tier ENUM data structure.
22. The system of claim 21 wherein the second tier ENUM data structure includes operator carrier numbers (OCNs).
23. The system of claim 22 comprising a third tier ENUM data structure comprising uniform resource indicators (URIs) accessible using the OCNs.
24. The system of claim 23 wherein the ENUM data access engine is adapted to use the LRN to access the second tier data structure, and, in response to locating a URI in the second tier ENUM data structure, to return the URI.
25. The system of claim 24 wherein, in response to failing to locate a URI in the second tier ENUM data structure and locating an OCN in the second tier data structure, the ENUM data access engine is adapted to access the third tier ENUM data structure using the OCN and to return a URI corresponding to the OCN.
26. The system of claim 23 comprising at least one VoIP peering structure for identifying an OCN of a carrier serving a calling party and for mapping the OCN of the carrier serving the calling party to an OCN of a carrier that has an agreement with the carrier serving the calling party.
27. A computer program product comprising computer executable instructions embodied in a computer readable medium for performing steps comprising:
29. A computer program product comprising computer executable instructions embodied in a computer readable medium for performing steps comprising:
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.
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 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.
FIG. 1A is a block diagram of an exemplary system for providing access to NP an/or ENUM data using a common ENUM/NP data locator structure according to an embodiment of the subject matter described herein;
FIG. 1B is a block diagram of an alternate system for providing access to NP an/or ENUM data using a common ENUM/NP data locator structure according to an embodiment of the subject matter described herein;
FIG. 2 is a data structure diagram illustrating an exemplary common ENUM/NP data locator structure for locating ENUM and/or NP data according to an embodiment of the subject matter described herein;
FIG. 3 is a flow chart of a process for processing NP and ENUM queries using a common ENUM/NP data locator structure according to an embodiment of the subject matter described herein;
FIG. 4 is a data structure and process flow diagram illustrating an exemplary structure for a hierarchical ENUM database and a method for locating ENUM data using the data structure according to an embodiment of the subject matter described herein;
FIG. 5 is a block diagram illustrating an exemplary implementation of a hierarchical ENUM database according to an embodiment of the subject matter described herein;
FIG. 6 is a block diagram illustrating exemplary nodes that may implement VoIP peering using an ENUM data locator structure with VoIP peering data according to an embodiment of the subject matter described herein;
FIGS. 7A and 7B are data structure diagrams of exemplary data structures for a VoIP peering agreement database according to an embodiment of the subject matter described herein;
FIG. 8 is a call flow diagram illustrating exemplary messages exchanged in implementing VoIP peering using an ENUM data locator structure with VoIP peering data according to an embodiment of the subject matter described herein;
FIG. 9 is a flow chart illustrating an exemplary process for implementing VoIP peering using an ENUM data locator structure with VoIP peering data according to an embodiment of the subject matter described herein; and
FIG. 10 is a flow chart illustrating an exemplary process for routing communications using ENUM and NP data according to an embodiment of the subject matter described herein.
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. FIG. 1A illustrates such an embodiment. More particularly, FIG. 1A is a block diagram illustrating an exemplary internal architecture of an STP that includes a common NP/ENUM data locator structure and NP database according to an embodiment of the subject matter described herein. FIG. 1 also illustrates a block diagram of an exemplary internal architecture of a server that includes an ENUM database and ENUM database access engine according to an embodiment of the subject matter described herein.
Referring to FIG. 1A, STP 100 includes a plurality of internal processing modules 102-108 connected to each other via a counter-rotating, dual-ring bus 110. Processing modules 102-108 may each include an application processor and associated memory for implementing a telecommunications signaling function. In addition, each processing module may include a communications processor for communicating with other processing modules via bus 110.
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 FIG. 1.
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 FIG. 1A, an NP query is transmitted via the PSTN and received by STP 100, where it is forwarded to common NP/ENUM data locator structure 130 and obtains a pointer to an LRN located in NP database 132. The pointer is used to locate an LRN in NP database 132, if any exists, that corresponds to the queried TN. The LRN may be returned in the query response. The query response containing the located LRN value may be transmitted back to the PSTN device that initiated the NP query. From the perspective of a device transmitting a NP query, processing NP queries at an STP containing a combined NP/ENUM data locator structure as described herein is indistinguishable from current methods. However, the use of a combined NP/ENUM data locator structure allows carriers to add ENUM functionality without adding duplicate TN data, which is expensive to store and maintain.
In a second example illustrated in FIG. 1A, an ENUM query is transmitted via IP network and received by server 134. Server 134 forwards the ENUM query to access engine 129, which accesses data locator structure 130 and extracts and returns a pointer or index to ENUM database 138. The pointer is used to access ENUM database 138, which returns the corresponding URI values as the query response. The query response containing the located URI values is then transmitted back to the VoIP device that initiated the ENUM query. Again, from the perspective of a device transmitting an ENUM query, processing ENUM queries at a system utilizing a combined NP/ENUM data locator structure as described herein is indistinguishable from current methods.
In the example illustrated in FIG. 1A, NP data and a common NP/ENUM data locator structure are located on an STP, and ENUM data is located on an ENUM platform or server. In an alternate implementation, the NP data, the ENUM data, and the common NP/ENUM data locator structure may be located on a server, as illustrated by FIG. 1B. In FIG. 1B, server 134 may include message processors 150 and 152 and active and standby OA&M modules 154 and 156. Each message processor 150 may include memory for storing number portability data 132, ENUM data 138, and data locator structure 130. In addition, each message processor 150 and 152 may include access engine 129 for identifying a type of query (i.e., ENUM or NP), for accessing data locator structure 130 at obtaining an index, and for accessing either ENUM data 138 or NP data 132 using the index and the query type. The access engine 129 may return a response to the querying node.
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.
FIG. 2 is a data structure diagram illustrating an exemplary common NP/ENUM data locator structure 130 for locating NP/ENUM data according to an embodiment of the subject matter described herein. The illustrated data structure efficiently maps inputted data, such as a TN, to desired corresponding data by breaking up large data sets into smaller and more manageable data set and linking them with pointers. Referring to FIG. 2, common NP/ENUM data locator structure 130 includes a level 1 range table 200, a level 2 sub-range table 202, a level 3 sub-range table 204, and a level 4 TN data table 206. Tables 200-206 illustrated in FIG. 2 will be explained with regard to number portability data. However, it should be noted that the structure of these tables can apply to other types of data, such as ENUM data including URIs and OCNs.
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.
FIG. 3 is a flow chart of a method for processing NP and ENUM queries using a common NP/ENUM data locator structure according to an embodiment of the subject matter described herein. Referring to FIG. 3, in step 300, an NP or ENUM query is received. A common NP/ENUM data locator structure is accessed to locate a pointer corresponding to the telephone number (TN) in steps 304 or 310, depending on whether the query is an NP query from the PSTN or an ENUM query from a VoIP network. In response to the query being a NP query, the pointer is used to locate NP data in step 306, and the NP data is returned in step 308. In response to the query being an ENUM query, the pointer is used to locate at least one URI in step 312, and at least one uniform resource locators (URIs) is returned in step 314.
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. FIG. 4 is a data structure and process flow diagram illustrating an exemplary structure for a hierarchical ENUM database and a method for accessing ENUM data using such a structure according to an embodiment of the subject matter described herein. The data structure illustrates a logically tiered structure including three tiers, a first tier 400, a second tier 402, and a third tier 404. First tier 400 may include TN or directory number (DN) data which is mapped to LRN and URI data via indexes. First tier 400 may use a data structure, such as that illustrated in FIG. 2 to map the TN data to the URIs. The URI data located in first tier 400 may be subscriber level data and is associated with an individual TN for a subscriber.
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 FIG. 2. Utilizing the series of tables and pointers described in FIG. 2 according to the subject matter described herein, pointers are obtained pointing to locations of LRN and URI data in separate LRN and URI data structures. If a first URI is located, or if both an LRN and a first URI are located, then the value of the first URI is returned. However, the first URI may also point to a second URI also associated with a TN. URI values may be linked together in a chain using pointers. This allows additional URI values to be easily added or deleted from the list of values associated with a particular TN. Alternatively, if an LRN is the only value located in first tier 400, the LRN value is inputted into the second tier data structure.
In FIG. 4, second tier 402 includes NPA-NXX data which is mapped to operating carrier number (OCN) and URI data. The URI data located in the second tier may be carrier level data that is associated with NPA-NXX values. For example, a large carrier may own several TNs across a wide geographical area comprising multiple NPA-NXX values. Each NPA-NXX identifies the point of presence (POP) within the total coverage area of the carrier. Thus, second tier URI data is associated with both a carrier and a POP, such as carrier_A.northeast.com or 919.carrier_A.com.
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.
FIG. 5 is a block diagram illustrating an exemplary implementation of a hierarchical ENUM database according to an embodiment of the subject matter described herein. Referring to FIG. 5, TN data 130 and LRN data 500 are located on DSM card 108 of STP 100. URI data 502, 504, and 506 as well as OCN data 508 are located on server 134. TN data 130 may include the indexes and tables illustrated in FIG. 2. LRN data 500 may include LRN values that either endpoints for NP database lookups or indexes to further levels of the hierarchy. URI data 502 may include subscriber level URI data. URI data 504 may include carrier level URI data. URI data 506 may include carrier level URI data indexed by OCM data 508.
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. FIG. 6 is a block diagram illustrating exemplary network that may implement VoIP peering using an ENUM data locator structure with VoIP peering data according to an embodiment of the subject matter described herein. Referring to FIG. 6, calling party 600 is a subscriber of carrier A's network and initiates a voice over Internet protocol (VoIP) call to called party 602 who is a subscriber of carrier C's network. Carriers A and B are connected via a peering agreement, as are carriers B and C. In order to route the VoIP call from calling party to called party, carrier A queries a hub ENUM database 604, which transmits an ENUM response to carrier A. Hub ENUM database 604 may implement the process flow and structure of FIG. 4 and may also include additional tables for implementing VoIP peering agreements, which will be described below. The response from ENUM database 604 allows carrier A to route the call to carrier B. Carrier B then queries hub ENUM database 604 and receives a different ENUM response based on carrier B's peering agreements rather than carrier A's. This allows carrier B to route the call to carrier C. Carrier C then queries hub ENUM server in order to route the call to the particular subscriber within its network.
FIGS. 7A and 7B are data structure diagrams of exemplary data structures for a VoIP peering agreement database that may be included in hub ENUM database 604 according to an embodiment of the subject matter described herein. When a calling party belonging to a first carrier calls a party belonging to another carrier, difficulties may arise in connecting the call. Peering agreements are agreements between carriers to help connect calls between their networks. In FIG. 7A, a peering agreement database includes a first table mapping OCN values of different carriers to each other, where each mapping corresponds to a peering agreement between carriers. In order to determine the OCN of the carrier serving the calling party, a separate table may be maintained, that maps calling party information, such as source IP address, to calling party OCN. Such a table is illustrated in FIG. 7B. In FIG. 7B, an IP address or range of IP addresses of calling party is mapped to a calling party OCN. The result of an access to the table illustrated in FIG. 7B is an OCN, which may be used to access the peering agreement table of FIG. 7A to determine which carriers have peering agreements. Once the OCN with which a particular carrier has a peering agreement is located, that OCN can be used to locate a URI for routing the call to the particular carrier.
FIG. 8 is a call flow diagram illustrating exemplary messages exchanged in implementing VoIP peering using an ENUM data locator structure with VoIP peering data according to an embodiment of the subject matter described herein. Referring to FIG. 8, the process illustrated is identical to that described by FIG. 6 in which calling party 600 is a subscriber of carrier A's network, and initiates a voice over Internet protocol (VoIP) call to called party 602 who is a subscriber of carrier C's network. Carriers A and B are connected with a peering agreement, as are carriers B and C. In line 1 of the cell flow diagram, carrier A queries hub ENUM database 604. Hub ENUM database 604 uses the calling party's IP address to identify the OCN of the calling party, which, in this example, is the OCN of carrier A. The OCN of carrier A is then used to access the peering agreement table of FIG. 7A to determine the OCN of the carrier with which carrier A has a peering agreement. In this example, that carrier is carrier B. Hub ENUM database 604 uses the OCN of carrier B to locate a URI corresponding to carrier B. In line 2 of the call flow diagram, hub ENUM database 604 returns the URI for carrier B to carrier A. In line 3 of the call flow diagram, carrier A routes the call to the carrier B. In line 4 of the call flow diagram, carrier B queries hub ENUM database 604. Since carrier B has a peering agreement with carrier C, and carrier C has the necessary information to route the call to called party 602, in line 5 of the call flow diagram, hub ENUM database 604 returns the URI of carrier C. In line 6 of the call flow diagram, the call is routed to carrier C. Carrier C then routes the call to called party 602.
FIG. 9 is a flow chart illustrating an exemplary process for implementing VoIP peering using an ENUM data locator structure with VoIP peering data according to an embodiment of the subject matter described herein. Referring to FIG. 9, in step 900 an ENUM database with peering agreement data, such as illustrated in FIGS. 7A and 7B, is maintained.
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.
FIG. 10 is a flow chart illustrating an exemplary process for routing calls using ENUM NP data according to an embodiment of the subject matter described herein. Referring to FIG. 10, in step 1000, a query including a called party TN is received. The query may be an ENUM query received by STP 100 or by standalone server 134. In step 1001, ENUM data is accessed using the called party TN. The ENUM data may be structured according to any of the examples described above, and the access may be an index-based access as described above. In step 1002, it is determined whether any ENUM data (i.e., at least one URI corresponding to the TN) is obtained in the access. If ENUM data is obtained, control proceeds to step 1004, where the ENUM data is forwarded to the query originator and to block 1006, where the communication is routed based on the obtained ENUM data.
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.
US4819156 * 13 Jun 1986 4 Apr 1989 International Business Machines Corporation Database index journaling for enhanced recovery
US6049714 * 31 Oct 1997 11 Apr 2000 Ericsson, Inc. Implementing number portability using a flexible numbering register and an interwork link register
US6097960 * 20 Dec 1999 1 Aug 2000 Alcatel Usa Sourcing, L.P. System and method for application location register routing in a telecommunication network
US6377674 * 30 Dec 1998 23 Apr 2002 At&T Corp. Method for global title translation processing
US6434144 * 6 Jul 1998 13 Aug 2002 Aleksey Romanov Multi-level table lookup
US6577723 * 13 Jul 2000 10 Jun 2003 At&T Wireless Service, Inc. Application of TCAP criteria in SCCP routing
US6748057 * 25 Nov 2002 8 Jun 2004 Netnumber, Inc. Method and apparatus for correlating a unique identifier, such as a PSTN telephone number, to an internet address to enable communications over the internet
US6775737 * 9 Oct 2001 10 Aug 2004 Cisco Technology, Inc. Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
US6836477 * 23 Dec 1999 28 Dec 2004 Tekelec Methods and systems for routing messages in a communications network
US6839421 * 29 Oct 2001 4 Jan 2005 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus to carry out resolution of entity identifier in circuit-switched networks by using a domain name system
US7054852 * 23 May 2001 30 May 2006 Ncr Corporation Performance of join operations in parallel database systems
US7085260 * 22 Aug 2001 1 Aug 2006 Lucent Technologies Inc. Internet protocol based wireless call processing
US7274683 * 3 Jun 2002 25 Sep 2007 Motorola, Inc. Method and apparatus for a telecommunications network to communicate using an internet protocol
US7286839 * 5 Dec 2003 23 Oct 2007 Tekelec Methods and systems for routing messages associated with ported subscribers in a mobile communications network
US7457283 * 13 Dec 2005 25 Nov 2008 Transnexus, Inc. Method and system for securely authorized VoIP interconnections between anonymous peers of VoIP networks
US7627108 * 25 Oct 2004 1 Dec 2009 At&T Mobility Ii Llc Systems and methods for providing ENUM in an LNP environment
US7693135 * 25 Jan 2005 6 Apr 2010 Verizon Services Corp. Methods and apparatus for transferring from a PSTN to a VOIP telephone network
US7715367 * 19 Jul 2005 11 May 2010 Panasonic Corporation IP telephone system, IP telephone apparatus and communications method
US7746864 * 30 Apr 2008 29 Jun 2010 Cello Partnership System and method for routing inter-carrier short message service or multimedia message service messages
US7751386 * 19 Jul 2005 6 Jul 2010 Panasonic Corporation IP telephone apparatus, ENUM server, IP telephone system and method for deleting terminal information
US7787445 * 18 Jul 2007 31 Aug 2010 Tekelec Methods, systems, and computer program products for routing and processing ENUM queries
US7996541 * 2 Aug 2007 9 Aug 2011 Tekelec Methods, systems, and computer program products for identifying a serving home subscriber server (HSS) in a communications network
US20010029182 * 12 Jan 2001 11 Oct 2001 Mccann Thomas Mathew Methods and systems for routing messages associated with ported subscribers in a mobile communications network
US20010055380 * 20 Apr 2001 27 Dec 2001 Benedyk Robby Darren Methods and systems for providing dynamic routing key registration
US20020054674 * 13 Jul 2001 9 May 2002 Chang James Tjin-Tek Methods and systems for providing triggerless intelligent network (in) screening services based on call setup messages
US20020095421 * 13 Dec 2000 18 Jul 2002 Koskas Elie Ouzi Methods of organizing data and processing queries in a database system, and database system and software product for implementing such methods
US20020114440 * 26 Feb 2002 22 Aug 2002 Lila Madour Extended number portability database services
US20020122547 * 21 Dec 2000 5 Sep 2002 Hinchey Allan J. Method and apparatus for telephony route selection
US20020147845 * 4 Mar 2002 10 Oct 2002 Juan-Antonio Sanchez-Herrero Flexible user distribution between user's serving entities
US20020176562 * 10 Jul 2002 28 Nov 2002 Tianbao Hao Signal transfer point local number portability database audit system and method
US20030007482 * 6 Jul 2001 9 Jan 2003 Robert Khello Method and apparatus for resolving an entity identifier into an internet address using a domain name system (DNS) server and an entity identifier portability database
US20030128693 * 3 Jun 2002 10 Jul 2003 Segal Niranjan Nath Method and apparatus for a telecommunications network to communicate using an internet protocol
US20030220951 * 8 May 2003 27 Nov 2003 Oracle International Corporation Dynamic disk space management by multiple database server instances in a cluster configuration
US20040003114 * 27 Jun 2002 1 Jan 2004 Bellsouth Intellectual Property Corporation Intersystem messaging using ENUM standard
US20040243596 * 30 Jul 2003 2 Dec 2004 Roy Lillqvist Enhancement of database performance in a Domain Name System
US20040246965 * 17 Feb 2004 9 Dec 2004 Nokia Corporation System and method for routing messages
US20050101297 * 7 Nov 2003 12 May 2005 Tekelec Methods and systems for distributing application data among multiple processing modules in a telecommunications network element having a distributed internal processing architecture
US20050119017 * 1 Dec 2003 2 Jun 2005 Lovell Robert C.Jr. System and method for virtual carrier addressing and routing for global short message service
US20050182781 * 5 Jun 2003 18 Aug 2005 Bertrand Bouvet System for consulting and/or updating dns servers and/or ldap directories
US20050288531 * 18 Aug 2005 29 Dec 2005 Hideo Shimizu Phosphine compounds, transition metal complexes with the compounds contained as ligands therein, and asymmetric synthesis catalysts containing the complexes
US20060245573 * 2 May 2005 2 Nov 2006 Sbc Knowledge Ventures, L.P. Communication system and method of routing calls to a terminating end point
US20060293021 * 3 Jun 2005 28 Dec 2006 Lucent Technologies Inc. Method and system for wireless number portability
US20070104184 * 7 Nov 2005 10 May 2007 Sbc Knowledge Ventures, L.P. Caller-controlled routing to non-SIP/non-TEL URI destinations for an IMS-based ENUM query
US20070155934 * 19 Dec 2006 5 Jul 2007 Arr-Maz Custom Chemicals, Inc. Novel polyol-polyamine synthesized from vegetable oils
US20070203909 * 28 Feb 2006 30 Aug 2007 Tekelec Methods, systems, and computer program products for indexing, validating, recovering, and consolidating a database indexed by range-bound numeric data
US20070243876 * 5 Apr 2007 18 Oct 2007 Huawei Technologies Co., Ltd. Method and System for Implementing a Message Service Based on IP Multimedia Subsystem
US20070258575 * 5 May 2006 8 Nov 2007 John Douglas Number portability for an IMS network
US20080019356 * 18 Jul 2007 24 Jan 2008 Tekelec Methods, Systems, and computer program products for routing and processing ENUM queries
US20080137832 * 7 Dec 2006 12 Jun 2008 Tekelec Methods, systems, and computer program products for providing quality of service using E.164 number mapping (ENUM) data in a communications network
US20080247526 * 9 Apr 2007 9 Oct 2008 At&T Knowledge Ventures, L.P. System for improving operations in an ims network
US20080281975 * 8 May 2007 13 Nov 2008 Chaoxin Charles Qiu Methods and apparatus to route a communication session in an internet protocol (ip) multimedia subsystem (ims) network
US20080311917 * 2 Aug 2007 18 Dec 2008 Tekelec Methods, systems, and computer program products for identifying a serving home subscriber server (HSS) in a communications network
US20090227276 * 9 Mar 2009 10 Sep 2009 Devesh Agarwal Methods, systems, and computer readable media for routing a message service message through a communications network
US7787445 18 Jul 2007 31 Aug 2010 Tekelec Methods, systems, and computer program products for routing and processing ENUM queries
US8139563 * 3 Oct 2007 20 Mar 2012 At&T Knowledge Ventures, L.P. System for alternate communications in an internet protocol multimedia subsystem network
US8144859 * 14 May 2007 27 Mar 2012 Sprint Communications Company L.P. Integrated ENUM and number portability translation in a communication system
US8254551 7 Dec 2006 28 Aug 2012 Tekelec, Inc. Methods, systems, and computer program products for providing quality of service using E.164 number mapping (ENUM) data in a communications network
US8391273 * 18 Dec 2008 5 Mar 2013 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for providing intra-carrier IP-based connections using a common telephone number mapping architecture
US8432923 18 Dec 2008 30 Apr 2013 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for providing inter-carrier IP-based connections using a common telephone number mapping architecture
US8571015 5 Apr 2011 29 Oct 2013 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for enabling non-IMS queries of a common telephone number mapping system
US8718048 31 Jan 2013 6 May 2014 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for providing intra-carrier IP-based connections using a common telephone number mapping architecture
US8792481 6 Mar 2013 29 Jul 2014 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for providing inter-carrier IP-based connections using a common telephone number mapping architecture
US9398163 9 Dec 2013 19 Jul 2016 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for providing intra-carrier IP-based connections using a common telephone number mapping architecture
US9635526 15 Mar 2013 25 Apr 2017 Tekelec, Inc. Methods, systems, and computer readable media for utilizing a diameter proxy agent to communicate short message service (SMS) messages
US20080263389 * 20 Apr 2007 23 Oct 2008 At&T Knowledge Ventures, L.P. System for monitoring enum performance
US20090093250 * 3 Oct 2007 9 Apr 2009 At&T Knowledge Ventures, L.P. System for alternate communications in an internet protocol multimedia subsystem network
US20090132632 * 16 Nov 2007 21 May 2009 At&T Knowledge Ventures, L.P. Accessing Communication History Using Identification Information from Received Communication
US20100157977 * 18 Dec 2008 24 Jun 2010 At&T Intellectual Property I, L. P. Methods, systems, and computer program products for providing intra-carrier ip-based connections using a common telephone number mapping architecture
US20100158229 * 18 Dec 2008 24 Jun 2010 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for providing inter-carrier ip-based connections using a common telephone number mapping architecture
US20110182287 * 5 Apr 2011 28 Jul 2011 Bernard Ku Methods, Systems, and Computer Program Products for Enabling Non-IMS Queries of a Common Telephone Number Mapping System
Cooperative Classification H04M7/0075, H04L29/1216, H04M3/42297, H04L61/157
European Classification H04L61/15H, H04M7/00M16, H04M3/42N5, H04L29/12A2H
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WIATROWSKI, MARIA A.;MARATHE, ROHINI;MARSICO, PETER J.;REEL/FRAME:018841/0863;SIGNING DATES FROM 20061204 TO 20061222
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WIATROWSKI, MARIA A.;MARATHE, ROHINI;MARSICO, PETER J.;SIGNING DATES FROM 20061204 TO 20061222;REEL/FRAME:018841/0863