The subject matter described herein relates to ENUM queries. More specifically, the subject matter relates to methods, systems, and computer program products for routing and processing ENUM queries.
E.164 number mapping (ENUM) refers to the translation of E.164-formatted telephone numbers into uniform resource indicators (URIs) resolvable by a domain name system (DNS) server into Internet protocol (IP) addresses. ENUM has been extensively deployed worldwide in order to provide integration between IP networks, such as the Internet, and the public switched telephone network (PSTN). In one proposal, as described in RFC 2916, the telephone number format used in ENUM translation is the E.164 number format. According to ITU-T standards, an E.164 telephone number may include up to 15 digits and include a leading + symbol indicating that the number is globally unique. For example, a valid E.164 telephone number may include +420-123456789. ENUM translation of an E.164 number into an IP network identifier may include formulating an ENUM query including the E.164 number and querying an ENUM database containing one or more naming authority pointer (NAPTR) records that associate individual E.164 numbers with one or more IP network identifiers. A NAPTR record is a type of DNS record that supports regular-expression-based rewriting, where each network identifier within the NAPTR record may differentiated based on a variety of parameters. Thus, a NAPTR record may contain multiple URIs associated with a single telephone number, where each URI may be differentiated based on an order, a preference, and a service. For example, the E.164 telephone number +420-123456789 may be associated with SIP URI smith@domain.org, H.323 URI smith@domain.org, and email URI smith@domain.org within a NAPTR record located in an ENUM database.
Upon receiving an ENUM query, the ENUM database may locate and return the NAPTR record associated with the telephone number included in the query. Additional translations may be required in order to select a particular network identifier from within the provided NAPTR record to first attempt to connect to. Typically, ENUM queries are processed by an ENUM database located near the query originator in order to reduce the response time for an ENUM response. Therefore, conventionally, multiple identically provisioned ENUM databases may be distributed throughout a particular geographic area such that each database is capable of responding to an ENUM query associated with any subscriber within the network.
One problem with some conventional ENUM systems is that all ENUM databases contain a complete set of ENUM data associated with all subscribers in the network. Yet as more subscribers and services are added to existing networks, including text and multimedia messaging services, voice over IP (VoIP), and other Internet multimedia subsystem (IMS) services, the volume of ENUM data stored in each of these ENUM databases increases correspondingly. As the volume of ENUM data increases, it becomes increasingly difficult to maintain all ENUM data within a single ENUM database.
In ENUM database systems where multiple identically provisioned databases serve a network, routing is simple because queries can be sent to any of the databases for translations. For example, queries may be load shared among identically provisioned ENUM databases.
In some instances, ENUM databases that serve a network may not be identically provisioned. For example, when an operator's existing ENUM database becomes maximally utilized, the operator may desire to bring a new ENUM database into service and move a portion of the subscriber data from the old ENUM database to the new ENUM database. As a result of moving the portion of the subscriber data to the new ENUM database, the new and old ENUM databases do not contain identical sets of subscribers ENUM data. Consequently, switches that formulate ENUM queries must be provisioned with location information that identifies the ENUM database that holds a particular subscriber's data. Requiring switches to be reprovisioned with ENUM database location information for each subscriber is labor intensive, especially in networks with a large number of existing switches. Such reprovisioning can be required any time the service provider desires to move subscriber ENUM data among ENUM databases. As a result, there exists a need for improved methods, systems, and computer program products for routing and processing ENUM queries.
The subject matter described herein includes methods, systems, and computer program products for routing ENUM queries to an ENUM database. According to one aspect, the subject matter described herein includes a method for routing ENUM queries to an ENUM database. The method includes receiving an ENUM query including a subscriber identifier. An ENUM database is identified among a plurality of non-identically provisioned ENUM databases based on the subscriber identifier. The ENUM query is routed to the identified ENUM database.
According to another aspect, the subject matter described herein includes a flexible ENUM routing node for routing ENUM queries to an ENUM database. The flexible ENUM routing node includes a communications module for receiving an ENUM query including a subscriber identifier and an E.164-to-ENUM database identifier mapping data structure for associating one or more subscriber identifiers with one or more ENUM database identifiers. The flexible ENUM routing node further includes an ENUM database identifier function for identifying, based on the subscriber identifier and using the E.164-to-ENUM database identifier mapping data structure, an ENUM database from a plurality of non-identically provisioned ENUM databases, and for routing the ENUM query to the identified ENUM database.
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, disc memory devices, application specific integrated circuits, and programmable logic devices. 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:
The subject matter described herein includes methods, systems, and computer program products for routing and processing ENUM queries.
SP 102 may be any suitable network element for generating and/or transmitting ENUM queries within network 100 according to the subject matter described herein. For example, SP 102 may include be a mobile switching center (MSC), a media gateway controller (MGC), a session initiation protocol (SIP) proxy server, an H.323 gatekeeper, an IP multimedia subsystem (IMS) node, or other suitable node for generating ENUM queries.
ENUM data may be distributed across ENUM databases 106-110, where, in one example, each ENUM database 106-110 may contain a subset of the ENUM data associated with subscribers within network 100. For example, ENUM database 106 may contain ENUM data associated with a first set of subscribers, ENUM database 108 may contain ENUM data associated with a second set of subscribers, and ENUM database 110 may contain ENUM data associated with a third set of subscribers. Therefore, collectively, ENUM databases 106-110 contain a complete set of ENUM data associated with subscribers in network 100. In another example, ENUM databases 106-110 may include some overlapping data.
Within network 100, ENUM databases 106-110 may be identified by one or more network identifiers. In the embodiment illustrated in
In
In the example illustrated in
Upon receiving ENUM query 114, flexible ENUM routing node 104 may perform a lookup in E.164-to-ENUM database identifier mapping data structure 112 as described above to locate a URI or an IP address/port number associated with one of ENUM databases 106-110. In this example, a lookup performed may result in determining that 1-234-234-2341 is within the range indicated by the first row of table 112, and therefore, network address information corresponding to ENUM database 106 is returned. For example, flexible ENUM routing node 104 may locate URI ENUM1@translate.net and IP address/port number 100.98.10.0/port x and modify ENUM query 118 to include the determined ENUM database address.
In one embodiment, flexible ENUM routing node 104 may modify ENUM query 114 to include the ENUM database address determined in the lookup and route the query to the determined ENUM database, as indicated by modified ENUM query 116 illustrated in
Upon receiving modified ENUM query 116, ENUM database 106 may locate a NAPTR record associated with the subscriber identifier included in query 114 and generate ENUM response 118. ENUM response 118 may be sent directly to SP 102 in one embodiment or, alternately, may be routed to SP 102 via flexible ENUM routing node 104.
In the scenario illustrated in
Alternately, if a lookup performed in exception-based data structure 201 fails to locate a match, a lookup may be performed in range-based data structure 200 in a manner like that described above with respect to
In block 302, an ENUM database is identified among a plurality of non-identically provisioned ENUM databases based on the subscriber identifier. For example, as illustrated in
As described above, E.164-to-ENUM database identifier mapping data structure may include a range-based data structure, a combination of exception-based and range-based data structures, or any other suitable data structure indexed by E.164 numbers. Such a data structure may be implemented using any suitable construct, such as a table, a flat file, a list, an array, a tree, or a trie. As stated above, in
In block 304, the ENUM query is routed to the identified ENUM database. For example, based on ENUM database identifier 100.98.10.0/port x, flexible ENUM routing node 104 may route a received ENUM query to ENUM database 106. According to one embodiment, routing the ENUM query to the appropriate ENUM database may include modifying the ENUM query to include the ENUM database identifier determined in block 302. For example, flexible ENUM routing node 104 may generate modified ENUM query 116 including IP address 100.98.10.0 and port x for delivery to ENUM database 106. It is appreciated that in addition to the exemplary network components shown in
It is further appreciated that the components and/or the functionality of flexible ENUM routing node 104 may be implemented in a standalone network element, may be incorporated into an existing network element, or may be distributed across multiple network elements. For example, flexible ENUM routing according to the subject matter described herein may be provided by a signaling gateway node, a network router, an SS7-IP router, an IP router, a SIP server, an IMS node such as a CSCF, a softswitch, an application server, or any other communications network element.
Communication module 400 may include an SS7 or IP stack 408 and a distribution module 410. Stack 408 may be configured to send and receive messages, such as ENUM query and response messages, via a communications network. For example, stack 408 may be connected to an SS7 or IP network and configured to receive ENUM query 405 and send modified ENUM query 409. Distribution module 410 may receive messages from stack 408 and distribute them among ENUM processing modules 402. For example, distribution module 410 may receive ENUM query 405 from stack 408 and send the query to ENUM processing module 402 for processing. In one implementation, ENUM processing modules 402 and 404 may be identically provisioned. As a result, distributions module 410 may load share queries between ENUM processing modules 402 and 404.
ENUM processing module 402 may include an ENUM database identifier function 412, an E.164-to-ENUM database mapping data structure 414, and a routing function 416. ENUM database identifier function 412 may receive ENUM query messages from distribution function 410 via internal communications bus 406 and may extract an E.164 subscriber identifier used to query E.164-to-ENUM database identifier mapping data structure 414. Data structure 414 may be provisioned as a range-based data structure (see
In the examples described above, flexible routing node 104 routes ENUM queries to ENUM databases. In alternate implementation, flexible routing node 104 may terminate ENUM queries, store state information relating to ENUM transactions, originate new ENUM queries, process responses, pair responses with queries using stored state information, and forward ENUM responses to query originators. Such an implementation is illustrated in
When ENUM database 106 responds to the ENUM query from routing node 104, the ENUM response is received by communication interface 400 illustrated in
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/832,084 filed Jul. 20, 2006; the disclosure of which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4310727 | Lawser | Jan 1982 | A |
4754479 | Bicknell et al. | Jun 1988 | A |
4819156 | DeLorme et al. | Apr 1989 | A |
5089954 | Rago | Feb 1992 | A |
5237604 | Ryan | Aug 1993 | A |
5247571 | Kay et al. | Sep 1993 | A |
5251248 | Tokunaga et al. | Oct 1993 | A |
5400390 | Salin | Mar 1995 | A |
5422941 | Hasenauer et al. | Jun 1995 | A |
5423068 | Hecker | Jun 1995 | A |
5430719 | Weisser, Jr. | Jul 1995 | A |
5442683 | Hoogeveen | Aug 1995 | A |
5455855 | Hokari | Oct 1995 | A |
5457736 | Cain et al. | Oct 1995 | A |
5481603 | Gutierrez et al. | Jan 1996 | A |
5502726 | Fischer | Mar 1996 | A |
5504804 | Widmark et al. | Apr 1996 | A |
5526400 | Nguyen | Jun 1996 | A |
5579372 | â„«ström | Nov 1996 | A |
5590398 | Matthews | Dec 1996 | A |
5594942 | Antic et al. | Jan 1997 | A |
5623532 | Houde et al. | Apr 1997 | A |
5689548 | Maupin et al. | Nov 1997 | A |
5706286 | Reiman et al. | Jan 1998 | A |
5711002 | Foti | Jan 1998 | A |
5819178 | Cropper | Oct 1998 | A |
5822694 | Coombes et al. | Oct 1998 | A |
5832382 | Alperovich | Nov 1998 | A |
5854982 | Chambers et al. | Dec 1998 | A |
5878347 | Joensuu et al. | Mar 1999 | A |
5890063 | Mills | Mar 1999 | A |
5953662 | Lindquist et al. | Sep 1999 | A |
5953663 | Maupin et al. | Sep 1999 | A |
5983217 | Khosravi-Sichani et al. | Nov 1999 | A |
6006098 | Rathnasabapathy et al. | Dec 1999 | A |
6011803 | Bicknell et al. | Jan 2000 | A |
6014557 | Morton et al. | Jan 2000 | A |
6018657 | Kennedy, III et al. | Jan 2000 | A |
6038456 | Colby et al. | Mar 2000 | A |
6049714 | Patel | Apr 2000 | A |
6097960 | Rathnasabapathy et al. | Aug 2000 | A |
6115463 | Coulombe et al. | Sep 2000 | A |
H1895 | Hoffpauir et al. | Oct 2000 | H |
6128377 | Sonnenberg | Oct 2000 | A |
6137806 | Martinez | Oct 2000 | A |
6138016 | Kulkarni et al. | Oct 2000 | A |
6138017 | Price et al. | Oct 2000 | A |
6138023 | Agarwal et al. | Oct 2000 | A |
6144857 | Price et al. | Nov 2000 | A |
6148204 | Urs et al. | Nov 2000 | A |
6192242 | Rollender | Feb 2001 | B1 |
6205210 | Rainey et al. | Mar 2001 | B1 |
6226517 | Britt et al. | May 2001 | B1 |
6236365 | LeBlanc et al. | May 2001 | B1 |
6263212 | Ross et al. | Jul 2001 | B1 |
6308075 | Irten et al. | Oct 2001 | B1 |
6327350 | Spangler et al. | Dec 2001 | B1 |
6377674 | Chong et al. | Apr 2002 | B1 |
6411632 | Lindgren et al. | Jun 2002 | B2 |
6424832 | Britt et al. | Jul 2002 | B1 |
6434144 | Romanov | Aug 2002 | B1 |
6463055 | Lupien et al. | Oct 2002 | B1 |
6505046 | Baker | Jan 2003 | B1 |
6515997 | Feltner et al. | Feb 2003 | B1 |
6535746 | Yu et al. | Mar 2003 | B1 |
6539077 | Ranalli et al. | Mar 2003 | B1 |
6560216 | McNiff et al. | May 2003 | B1 |
6560456 | Lohtia et al. | May 2003 | B1 |
6574481 | Rathnasabapathy et al. | Jun 2003 | B1 |
6577723 | Mooney | Jun 2003 | B1 |
6594258 | Larson et al. | Jul 2003 | B1 |
6611516 | Pirkola et al. | Aug 2003 | B1 |
6643511 | Rune et al. | Nov 2003 | B1 |
6662017 | McCann et al. | Dec 2003 | B2 |
6683881 | Mijares et al. | Jan 2004 | B1 |
6684073 | Joss et al. | Jan 2004 | B1 |
6731926 | Link, II et al. | May 2004 | B1 |
6738636 | Lielbriedis | May 2004 | B2 |
6748057 | Ranalli et al. | Jun 2004 | B2 |
6775737 | Warkhede et al. | Aug 2004 | B1 |
6795701 | Baker et al. | Sep 2004 | B1 |
6836477 | West, Jr. et al. | Dec 2004 | B1 |
6885872 | McCann et al. | Apr 2005 | B2 |
6917612 | Foti et al. | Jul 2005 | B2 |
6950441 | Kaczmarczyk et al. | Sep 2005 | B1 |
6993038 | McCann | Jan 2006 | B2 |
7035239 | McCann et al. | Apr 2006 | B2 |
7079524 | Bantukul et al. | Jul 2006 | B2 |
7079853 | Rathnasabapathy et al. | Jul 2006 | B2 |
7085260 | Karaul et al. | Aug 2006 | B2 |
7092505 | Allison et al. | Aug 2006 | B2 |
7221952 | Cho et al. | May 2007 | B2 |
7286839 | McCann et al. | Oct 2007 | B2 |
7366530 | McCann et al. | Apr 2008 | B2 |
20010008532 | Lee | Jul 2001 | A1 |
20010029182 | McCann et al. | Oct 2001 | A1 |
20010030957 | McCann et al. | Oct 2001 | A1 |
20010040957 | McCann et al. | Nov 2001 | A1 |
20020095421 | Koskas | Jul 2002 | A1 |
20020147845 | Sanchez-Herrero et al. | Oct 2002 | A1 |
20020173320 | Aitken et al. | Nov 2002 | A1 |
20020176382 | Madour et al. | Nov 2002 | A1 |
20030007482 | Khello et al. | Jan 2003 | A1 |
20030026289 | Mukherjee et al. | Feb 2003 | A1 |
20030054844 | Anvekar et al. | Mar 2003 | A1 |
20030065788 | Salomaki | Apr 2003 | A1 |
20030081754 | Esparza et al. | May 2003 | A1 |
20030109271 | Lewis et al. | Jun 2003 | A1 |
20030128693 | Segal | Jul 2003 | A1 |
20030193967 | Fenton et al. | Oct 2003 | A1 |
20030220951 | Muthulingam et al. | Nov 2003 | A1 |
20030227899 | McCann | Dec 2003 | A1 |
20040034699 | Gotz et al. | Feb 2004 | A1 |
20040076126 | Qu et al. | Apr 2004 | A1 |
20040081206 | Allison et al. | Apr 2004 | A1 |
20040082332 | McCann et al. | Apr 2004 | A1 |
20040087300 | Lewis | May 2004 | A1 |
20040142707 | Midkiff et al. | Jul 2004 | A1 |
20040198351 | Knotts | Oct 2004 | A1 |
20040202187 | Kelly et al. | Oct 2004 | A1 |
20040246965 | Westman et al. | Dec 2004 | A1 |
20050003838 | McCann et al. | Jan 2005 | A1 |
20050101297 | Delaney et al. | May 2005 | A1 |
20050119017 | Lovell, Jr. et al. | Jun 2005 | A1 |
20050251509 | Pontius | Nov 2005 | A1 |
20050286531 | Tuohino et al. | Dec 2005 | A1 |
20050286695 | Pershan et al. | Dec 2005 | A1 |
20060067338 | Hua et al. | Mar 2006 | A1 |
20060098621 | Plata et al. | May 2006 | A1 |
20060136557 | Schaedler et al. | Jun 2006 | A1 |
20070061397 | Gregorat et al. | Mar 2007 | A1 |
20070121879 | McGary et al. | May 2007 | A1 |
20070133574 | Tejani et al. | Jun 2007 | A1 |
20070203909 | Marathe et al. | Aug 2007 | A1 |
20070286379 | Wiatrowski et al. | Dec 2007 | A1 |
20080130856 | Ku et al. | Jun 2008 | A1 |
20080311917 | Marathe et al. | Dec 2008 | A1 |
20090103707 | McGary et al. | Apr 2009 | A1 |
20090227276 | Agarwal et al. | Sep 2009 | A1 |
Number | Date | Country |
---|---|---|
0 512 962 | Nov 1992 | EP |
0 936 825 | Aug 1999 | EP |
0 944 276 | Sep 1999 | EP |
1 527 536 | Dec 2003 | EP |
1 558 004 | Jul 2005 | EP |
WO 9512292 | May 1995 | WO |
WO 9611557 | Apr 1996 | WO |
WO 9733441 | Sep 1997 | WO |
WO 9856195 | Dec 1998 | WO |
WO 9911087 | Mar 1999 | WO |
WO 9957926 | Nov 1999 | WO |
WO 0016583 | Mar 2000 | WO |
WO 0060821 | Oct 2000 | WO |
WO 0147297 | Jun 2001 | WO |
WO 0148981 | Jul 2001 | WO |
WO 0154444 | Jul 2001 | WO |
WO 03005664 | Jan 2003 | WO |
WO 03021982 | Mar 2003 | WO |
WO 03105382 | Dec 2003 | WO |
WO 2004006534 | Jan 2004 | WO |
WO 2004087686 | Jan 2004 | WO |
WO 2004075507 | Sep 2004 | WO |
WO 2004102345 | Nov 2004 | WO |
WO 2005013538 | Feb 2005 | WO |
WO 2007045991 | Apr 2007 | WO |
WO 2007064943 | Jun 2007 | WO |
WO 2007092205 | Aug 2007 | WO |
WO 2007146257 | Dec 2007 | WO |
WO 2008157213 | Dec 2008 | WO |
Number | Date | Country | |
---|---|---|---|
20080019356 A1 | Jan 2008 | US |
Number | Date | Country | |
---|---|---|---|
60832084 | Jul 2006 | US |