# Patent

## Title
Systems, methods, and computer readable media for location-sensitive called-party number translation in a telecommunications network

## Abstract

Systems, methods, and computer readable media for location-sensitive identifier translation in a telecommunications network are disclosed. According to one aspect, the subject matter described herein includes a method for providing location-sensitive called-party identifier translation in a telecommunications network. The method includes, at a signaling node that includes at least one processor: receiving a first signaling message that includes a called party identifier; determining proximity information associated with the calling party; performing a location-sensitive called party identifier translation based on the proximity information associated with the calling party; and sending the first signaling message or a second signaling message, the sent message including the translated called party identifier.

## Background
PRIORITY CLAIM
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/117,538, filed Nov. 24, 2008; the disclosure of which is incorporated herein by reference in its entirety.


TECHNICAL FIELD
The subject matter described herein relates to providing a service in a telecommunications network. More particularly, the subject matter described herein relates to systems, methods, and computer readable media for location-sensitive number translation in a telecommunications network.
BACKGROUND
A toll-free number is a telephone number in which the cost of the call is charged to the called party rather than to the calling party. In countries that follow the North American Numbering Plan (NANP), telephone numbers are of the form NPA-NXX-YYYY, where NPA is the numbering plan area code, roughly corresponding to a particular geographical area, and NXX is the exchange, which identifies a physical switching facility, called a central office (CO). The remaining digits, YYYY, identify a line card within the CO. When a CO detects that a subscriber whom that CO serves is attempting to place a call to called party telephone number, the values of NPA and NXX of the called party number are used by a switch to determine how to route a call.
A toll-free number, however, may have an “8XX” area code (e.g., 800, 877, 866, etc.), that does not correspond to any geographical location of the called party, and thus cannot be used by itself to determine the destination of the call or how it should be routed. For this reason, switches in conventional telecommunications networks that provide toll free service must send a query to a toll-free database to determine the true destination of the toll-free called party. A query to a toll-free database is herein referred to as a “toll-free query.”A toll-free query typically includes the toll-free number, and the response to the toll-free query typically includes the directory number to which the toll-free number is mapped. For example, Tekelec, Incorporated provides a toll-free number “1-800-TEKELEC” (1-800-835-3532) for sales inquiries. This toll-free number may be mapped to a local directory number for Tekelec corporate world headquarters in Morrisville, N.C., which is 919-460-5500. Thus, a toll-free query for 800-835-3532 would return the directory number 919-460-5500.
Businesses often use a toll-free number as the primary telephone number for callers to use, because the same toll-free number may be used by a caller regardless of the geographical location of the caller. The savings to the business from using the same toll-free number in advertisements around the country, continent, or world, on company business cards and letterhead, and so on, may outweigh the additional expense incurred by the business of paying for the calls. A toll-free number that is very easy for customers or potential customers to remember, as in the 1-800-TEKELEC example, above, may even increase that business organization's sales, help it achieve high name recognition, or provide some other tangible or intangible benefit.
However, business entities or organizations that have a large or dispersed physical presence in the form of branch offices, service centers, or restaurants in different geographic locations, for example, may desire that a call made to the organization be directed to whichever branch office is geographically closest to the calling party. A fictional take-out pizza restaurant chain having stores in multiple geographic locations, for example, may desire that calls to its toll-free number, e.g., 1-800-GO-PIZZA (1-800-467-4992), be routed to the pizza restaurant closest to the geographic location of the calling party. In order to do this, the toll-free query must provide location information for the calling party, and the toll-free database must be able to use this calling party location information to select the appropriate directory number.
The ability to consider the location of the calling party as part of the process of performing a number translation is herein referred to as calling-party-location-sensitive called party number translation, which may be abbreviated to “location-sensitive called party number translation”, or simply “location-sensitive number translation”, for short.
In conventional systems, however, calling party location information may be unavailable or indeterminate. For example, the toll-free query issued by a switch may include the toll-free called party number, but no calling party information. Even if the toll-free query includes calling party information, that calling party information may not indicate the geographic location of the calling party, such as where the calling party number is a mobile subscriber number, in which case the mobile subscriber may be calling from anywhere within the cellular network. Even if the toll-free query includes information that does give some indication of the location of the calling party, conventional toll-free databases may not support calling party information as an input parameter to a toll-free query. The same problems apply to other number translation services that are not location-sensitive.
Accordingly, in light of these disadvantages associated with conventional approaches to providing called-party number translation in a telecommunications network, there exists a need for improved systems and methods for providing location-sensitive called-party number translation in a telecommunications network.
SUMMARY
According to one aspect, the subject matter described herein includes a method for providing location-sensitive called-party number translation in a telecommunications network. The method includes, at a signaling node that includes at least one processor: receiving a first signaling message that includes a called party number; determining proximity information associated with the calling party; performing a location-sensitive called party number translation based on the proximity information associated with the calling party; and sending the first signaling message or a second signaling message, the sent message including the translated called party number.
According to another aspect, the subject matter described herein includes a system for providing location-sensitive called-party number translation in a telecommunications network. The system includes a signaling node for receiving a first signaling message that includes a called party number, and a proximity processing module, operatively associated with the signaling node, for determining proximity information associated with the calling party, performing a location-sensitive called party number translation based on the proximity information associated with the calling party, and sending the first signaling message or a second signaling message, the sent message including the translated called party number.
The subject matter described herein for location-sensitive number translation in a telecommunications network may be implemented in hardware, software, firmware, or any combination thereof. As such, the terms “function” or “module” as used herein refer to hardware, software, and/or firmware for implementing the feature being described. In one exemplary implementation, the subject matter described herein may be implemented using a computer readable medium having stored thereon computer executable instructions that when executed by the processor of a computer control the computer to perform steps. Exemplary non-transitory, computer readable media suitable for implementing the subject matter described herein include disk memory devices, chip memory devices, programmable logic devices, and application specific integrated circuits. In addition, a computer readable medium that implements the subject matter described herein may be located on a single device or computing platform or may be distributed across multiple devices or computing platforms.



BRIEF DESCRIPTION OF THE DRAWINGS
Preferred embodiments of the subject matter described herein will now be explained with reference to the accompanying drawings, wherein like reference numerals represent like parts, of which:
FIG. 1 is a block diagram illustrating an exemplary system for providing location-sensitive called-party number translation according to an embodiment of the subject matter described herein;
FIG. 2A is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein;
FIG. 2B is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein;
FIG. 3 is a flow chart illustrating an exemplary process for providing called-party number translation in a telecommunications network according to an embodiment of the subject matter described herein;
FIG. 4 is a block diagram illustrating an exemplary signaling message routing node for providing toll-free service in a telecommunications network according to another embodiment of the subject matter described herein;
FIG. 5 is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein, in which a number portability query is used to determine the proximity information associated with the calling party;
FIG. 6A is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein;
FIG. 6B is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein;
FIG. 6C is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein;
FIG. 6D is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein;
FIG. 7A is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein;
FIG. 7B is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein; and
FIG. 8 illustrates some of the various allowed formats for E.164 numbers.



DETAILED DESCRIPTION
In accordance with the subject matter disclosed herein, systems, methods, and computer readable media are provided for location-sensitive called-party number translation in a telecommunications network.
FIG. 1 is a block diagram illustrating an exemplary system for providing location-sensitive called-party number translation according to an embodiment of the subject matter described herein. In the embodiment illustrated in FIG. 1, a telecommunications network 100 includes a first switch (S1) 102, via which a subscriber 104 accesses network 100. When S1 102 is the switch that services a calling party, S1 102 may also be referred to as the “originating switch”. In one embodiment, S1 102 may be a service switching point (SSP), such as an end office (EO) for servicing wireline subscribers. In alternative embodiments, S1 102 may be a mobile switching center (MSC) for servicing wireless or mobile subscribers, a tandem office (TO), a call session control function (CSCF), a softswitch (SS), or any other type of switch in a telecommunications network.
Network 100 includes a signaling node 106, such as a signaling message routing node, for routing signaling messages within network 100. In the embodiment illustrated in FIG. 1, signaling node 106 is a signal transfer point (STP). In alternative embodiments, signaling node 106 may be a signaling gateway (SGW), a softswitch (SS), a media gateway controller (MGC), a media gateway (MGW), or other entity for routing signaling messages within network 100.
In one embodiment, network 100 may include a proximity processing module (PRXM) 108 for determining proximity information associated with the calling party and using the proximity information to translate or map called party information. In the embodiment illustrated in FIG. 1, PRXM 108 may determine proximity information associated with either calling subscriber 104, originating switch 102, or both.
In one embodiment, the calling party proximity information may directly identify the geographic location of subscriber 104 or S1 102, and may include, for example, information such as the latitude and longitude, GPS location information, or other form of geographic coordinates of the subscriber or switch.
In another embodiment, the calling party proximity information may indirectly identify the geographic location of a subscriber or switch, and may include information identifying the switch, such as the switch address or switch ID. In a cellular network, the calling party proximity information may include, for example, the address or ID of the mobile switching center currently serving the subscriber, the cell ID, the geographic location of the switch, MSC, base station subsystem or other component of the cellular network, and so on.
In another embodiment, the calling party proximity information may be unrelated to the geographic location. For example, the calling party proximity information may relate to topological proximity, where the topological proximity of one node to another node may be defined by the number of intermediate nodes, or “hops”, between the two nodes, path costs, or some other metric.
In the embodiment illustrated in FIG. 1, PRXM 108 is a component of signaling node 106, but in alternative embodiments, PRXM 108 may be located remotely from signaling node 106. In one example implementation, the functions of PRXM 108 may be performed in whole or in part by a service capabilities interaction manager function, such the TekSCIM® product, available from Tekelec of Morrisville, N.C. One implementation of a service capabilities interaction manager is described in commonly-assigned U.S. patent application Ser. No. 12/106,807, entitled “Systems, methods, and computer program products for providing service interaction and mediation in a communications network”, filed on Apr. 21, 2008, the disclosure of which is incorporated by reference herein in its entirety. Another implementation of a service capabilities interaction manager is described in commonly-assigned U.S. patent application Ser. No. 12/106,869, entitled “Methods, systems, and computer program products for providing fault-tolerant service interaction and mediation function in a communications network”, also filed on Apr. 21, 2008, the disclosure of which is incorporated by reference herein in its entirety.
In one embodiment, the location-sensitive number translation service provided by network 100 may be a location-sensitive toll-free service, in which a toll-free called party number is mapped to one of multiple directory numbers associated with that toll-free called party number based on whichever directory number is most proximate to the calling party. In such embodiments, network 100 may include a location-sensitive toll-free database (TFDB) 110 for mapping toll-free numbers, such as 1-8XX numbers in the United States, to a directory number. An example location-sensitive toll-free database is shown in Table 1, below. Each row in Table 1 represents an entry in TFDB 108, and each entry maps a toll-free number (TFN), shown in the left column, to a DN, shown in the right column, based on calling party proximity information (CGPI), shown in the middle column. A directory number may also be referred to as a “B-party number”.







TABLE 1







Location-Sensitive Toll-Free Database (TFDB)












row
TFN
CGPI
DN







1
800-345-0393
919-XXX-XXXX
919-469-2255



2
800-345-0393
212-XXX-XXXX
212-458-6965




.

.




.

.




.

.



N
800-254-9990
919-682-XXXX
919-682-5400



N + 1
800-254-9990
919-683-XXXX
919-683-1733



N + 2
800-254-9990
919-684-XXXX
919-684-6998




.

.




.

.




.

.










Referring to the example location-sensitive toll-free database illustrated in Table 1, above, rows 1 and 2 show that the first toll-free number (800) 345-0393 would be mapped to the directory number (919) 469-2255 if the calling party is calling from the (919) area code (North Carolina), but would be mapped to the directory number (212) 458-6965 if the calling party is calling from the (212) area code (New York). In this example, the first toll-free number is mapped to a directory number based on an area code; it can be said that the first toll-free number has a geographic resolution at the area code level. In contrast, rows N through N+3 show that the second toll-free number (800) 254-9990 is mapped to a local directory number at a finer geographic resolution, e.g., at the exchange level. In this manner, the level of geographic resolution can vary according to need. For example, a toll-free number may be mapped to one of only two choices, such as a west coast number and an east coast number. Likewise, a toll-free number may be mapped to as many geographic domains as the toll-free database may support.
In an alternative embodiment, the location-sensitive called party number translation service provided by network 100 may be a location-sensitive E.164 telephone number mapping (ENUM) service, in which an E.164-format called party number is mapped to one of multiple Internet protocol (IP) addresses associated with the E.164-format called party number based on whichever IP address is most proximate to the calling party. In such embodiments, network 100 may include an ENUM database (ENUMDB) 112 for mapping E.164 telephone numbers to IP addresses. An example ENUM database is shown in Table 2, below.







TABLE 2 







Location-Sensitive ENUM Database (ENUMDB)










row
E.164 ID
PI
URI





1
018004445678
GPS(A, B, C)
Serv1@Network.net


2
018004445678
GPS(D, E, F)
Serv2@Network.net


3
018004445678
GPS(G, H, I)
Serv3@Network.net



.

.



.

.



.

.


N
019194695858
Proximity ID (X)
Serv4@Network.net


N + 1
019194695858
Proximity ID (Y)
Serv5@Network.net


N + 2
019194695858
Proximity ID (Z)
Serv6@Network.net



.

.



.

.



.

.









Each row in Table 2 represents an entry in ENUMDB 112, and each entry maps an E.164 subscriber ID (E.164 ID), shown in the left column, to a uniform resource identifier (URI), shown in the right column, based on proximity information (PI), shown in the middle column. The value of the E.164 ID column shown in Table 2, above could be in E.164 format (e.g., 8.7.6.5.4.4.4.0.0.8.1.0) or in directory number format (e.g., 018004445678). For simplicity, the E.164 IDs shown in Table 2 are in directory number format. In alternative embodiments, ENUMDB 112 may map E.164 numbers to IP addresses.
As shown in Table 2, the proximity information can take on various forms. For example, as shown in rows 1 ̃3 of Table 2, above, the proximity information may be global positioning system (GPS) coordinates that define a position, such as a location on the surface of the earth, including height above or below the surface of the planet. Other positioning coordinate systems may also be used. Alternatively, as shown in rows N through N+2 of Table 2, above, the proximity information may be in the form of a proximity ID that identifies an object whose location is known or is readily determinable.
Where the proximity information is a location, in one embodiment, the proximity information stored in ENUMDB 112 may be position of the URI, in which case the query message to ENUMDB 112 may include the position of the calling party (or of the switch that is serving the calling party) along with the called party number. In this scenario, ENUM DB 112 may select records whose E.164 ID value matches the called party number, calculate a geometric distance between the calling party and the PI value for each selected record, and then select the record with the smallest calculated difference. The record thus selected includes the URI of the server that is geographically closest to the calling party. In this example, the proximity information stored in ENUM DB 112 refers to the location of the respective URI.
Where the proximity information is a location, in another embodiment, the proximity information stored in ENUMDB 112 may define an area served by the respective URI. In this scenario also, the query message to ENUMDB 112 may including the position of the calling party or originating switch. ENUMDB 112 may determine whether the calling party position falls within an area served by a URI, and if so, respond to the ENUM query with that URI. In this example, the proximity information stored in ENUM DB 112 refers to the allowable locations that the calling party may be in order for that calling party's call to be redirected to that particular URI.
Where the proximity information is a proximity ID, the proximity information stored in ENUMDB 112 may identify the switch from which the call originates, in which case the proximity ID may be the switch ID, the switch address, or the switch name. Thus, as shown in rows N through N+2 in Table 2, above, an ENUM query that includes a called party E.164 number 8.5.8.5.9.6.4.9.1.9.1.0, which corresponds to a directory number of 019194695858, will return different results depending on whether the calling party is calling from an MSC having an MSC_ID=“X” or from an MSC having an MSC_ID=“Y”. In the former case, the URI returned will be “Serv4@Network.net”, and in the latter case, the URI returned will be “Serv5@Network.net”. Because switches are typically not mobile but fixed to a particular location, ENUMDB 112 may avoid the need to calculate distance between the calling party and the URI or determine whether the calling party is located within an area served by the URI.
There is a trade-off, however. In one approach, the PI field of ENUMDB 112 stores location information for the URI. In this scenario, ENUMDB 112 would calculate a distance from the calling party location to each URI and then select the closest URI. In such embodiments, ENUMDB 112 need only store, for each called party number, a record for each possible destination URI. For example, if the called party number can only be routed to one of two destination URIs, then ENUMDB 112 may need only store two records for that called party number.
Using a second approach, the PI field of ENUMDB 112 may contain a switch ID. In this scenario, ENUMDB 112 may avoid the need to calculate distance, but it may instead require that ENUMDB 112 include a record for each potential originating switch ID. In a network with only two destination URIs but dozens of potential originating switches, this second approach may require that ENUMDB 112 contain dozens of records, rather than just the two records required under the first approach.
In one embodiment, network 100 may support number portability. In the embodiment illustrated in FIG. 1, network 100 may include a number portability database (NPDB) 114, which maps a ported subscriber's directory number (DN) to the routing number (RN) of the recipient switch. Alternatively, PRXM 108 may use NPDB 114 to determine calling party proximity information, as will be illustrated in FIG. 5 and described below.
In one embodiment, network 100 may support mobile subscribers. In the embodiment illustrated in FIG. 1, network 100 may include a home location register and/or home subscriber server (HLR/HSS) 116 for maintaining information for each mobile subscriber, including information about the current location of a roaming mobile subscriber. Alternatively, PRXM 108 may use HLR 116 to determine calling party proximity information, as will be illustrated in FIG. 7B and described below. Other databases may be used, as well, including location servers, presence servers, and the like.
In one embodiment, network 100 may include a proximity information database (PRXDB) 118 for mapping proximity information to geographic location, such as GPS coordinates. An example proximity information database is shown in Table 3, below. Each row of Table 3 represents an entry in PRXDB 118, and each entry maps a proximity ID, shown in the left column, to GPS coordinates, shown in the right column. The proximity information may be a switch ID or switch address, or other proximity information associated with the calling party.







TABLE 3







Proximity Information Database (PRXDB)









row
Proximity Information
Location Information





1
PROXY_ID1
GPS(J, K, L)


2
MME_ID1
GPS(M, N, O)


3
MSC_ID1
GPS(P, Q, R)


.
.
.


.
.
.


.
.
.









Referring to Table 3, if PRXM 108 receives a number translation request, such as a toll-free query or an ENUM query, from a switch identified as “MSC_ID1”, PRXM 108 may use PRXDB 118 to determine that switch MSC_ID1 is located at GPS coordinates (P,Q,R). PRXM 108 may then include those GPS coordinates in the query message and forward the modified number translation request to the appropriate database (e.g., TFDB 110, ENUMDB 112, NPDB 114, HLR/HSS 116.) Like PRXM 108, above, PRXDM 116 may be internal or external to signaling node 106.
In the embodiment illustrated in FIG. 1, network 100 includes a second switch (S2) 120, which serves toll-free called party 122. When a switch, such as S2 118, services a called party, such as called party 122, that switch may also be referred to as the “terminating switch”. Like S1 102, S2 120 may be an SSP, an EO, an MSC, a TO, a CSCF, an SS, or other type of switching point.
FIG. 2A is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein. FIG. 2A illustrates an embodiment of a location-sensitive toll-free service, in which the location of the calling party is considered while performing the toll-free lookup of the called party. In the embodiment illustrated in FIG. 2A, a telecommunications network 200 that supports mobile subscribers includes a mobile switching center, S1 102, which currently serves a mobile subscriber 104 who is making a call to a toll-free called party number 800-234-5678. Mobile subscriber 104 has a mobile phone number “MS#”, and S1 102 has a switch identity “MSC_ID”. S1 102 sends a toll-free query (FIG. 2A, message 1), such as a transactions capabilities part (TCAP) message, that includes parameters or fields for the called party number (CDPN) and the calling party number (CGPN). This message also includes the calling party address used by the SCCP protocol (SCCP_CGPA), which is the address of the switch that issued the message, MSC_ID. In alternative embodiments, the message may be an advanced intelligent network (AIN), wireless intelligent network (WIN), or customized applications for mobile networks enhanced logic (CAMEL) query. This message is received by signaling node 106, which in the embodiment illustrated in FIG. 2A is an STP, and is processed by the proximity processing module PRXM 108.
Since the call is from a mobile subscriber 104, the calling party identifier (i.e., the mobile subscriber's cell phone number, MS#) does not convey any proximity or location information. PRXM 108 therefore determines proximity information associated with the calling party. In the embodiment illustrated in FIG. 2A, originating switch S1 102 is associated with a geographic location, and thus PRXM 108 may use information identifying S1 102 as the proximity information associated with the calling party. In the embodiment illustrated in FIG. 2A, the proximity information associated with the calling party may be the switch ID, which is stored in the calling party address information field contained in the SCCP portion of a intelligent network (IN) query message. Alternatively, the proximity information associated with the calling party may include an SS7 point code address contained within the message transfer part (MTP) layer of an SS7 or SIGTRAN-based message.
PRXM 108 may then either modify the original query message or generate a new query message and send this message (FIG. 2A, message 2) to TFDB 110. In this message, the value that was stored in the original calling party number field CGPN has been changed from the mobile subscriber number, MS#, to the switch ID of the originating switch S1 102, MSC_ID. TFDB 110 receives the modified message and performs a toll-free query on the called party number, using the calling party proximity information stored in the CGPN field, and returns a directory number (FIG. 2A, message 3), hereinafter referred to as the translated DN. PRXM 108 then forwards the translated DN to S1 102 (FIG. 2A, message 4).
In an alternative embodiment, the toll-free query (FIG. 2A, message 1) that is sent from S1 102 may not include any calling party number information, i.e., the message may not include a CGPN field, or the CGPN field may be blank. In such embodiments, PRXM 108 may create a CGPN field or parameter and populate that field with the proximity information associated with the calling party as described above. Such an embodiment would look very much like the embodiment illustrated in FIG. 2A, except that the first message (FIG. 2A, message 1), would not contain a CGPN field or the CGPN field would be blank.
FIG. 2B is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein. In the embodiment illustrated in FIG. 2B, S1 102 is a central office or end office that serves a fixed line subscriber 104 having a telephone number, 919-313-4545. In response to fixed line subscriber 104 placing a call to toll-free number 800-234-5678, S1 102 issues a toll-free query (FIG. 2B, message 1) to TFDB 110, the toll-free query including the called party number, the calling party number, and the calling party address information in the SCCP portion of the message. In the embodiment illustrated in FIG. 2B, the calling party address is the switch ID for the end office, EO1_ID. Signaling node 106 intercepts the toll-free query, and PRXM 108 modifies the query by replacing the calling party number with the end office ID, EO1_ID, and forwards the modified query to TFDB 110 (FIG. 2B, message 2). TFDB 110 performs a toll-free query using the proximity information for the calling party, end office identifier EO1_ID, to determine the directory number that is most proximate to the calling party. TFDB 110 returns the selected DN (FIG. 2B, message 3), which signaling node 106 forwards to S1 102 (FIG. 2B, message 4).
FIG. 3 is a flow chart illustrating an exemplary process for providing location-sensitive called-party number translation in a telecommunications network according to an embodiment of the subject matter described herein.
At block 300, a first signaling message, containing a called party number, is received at a signaling node that includes at least one processor. The first signaling message may include, but is not limited to, a call setup message, a toll-free query, and an ENUM query. For example, in one embodiment, S1 102 may send a call setup message, such as an ISUP initial address message (IAM), an ISUP subsequent address message (SAM), a bearer-independent call control (BICC) message, or a SIP INVITE message, that includes the called party number.
In another embodiment, calling subscriber 104 may be a mobile subscriber and S1 102 may be a mobile switching center (MSC), which may issue a mobility management message, such as a mobile application part (MAP) send routing information (SRI) message, a MAP send routing information for short message (SRI_SM) message, an anytime interrogation (ATI) message, or an ANSI-41 location request (LOCREQ) message, that includes the called party number.
In yet another embodiment, calling subscriber 104 may be a wireline subscriber and S1 102 may be an end office (EO), a central office (CO), a service switching point (SSP), or similar entity, which may issue a call setup message that includes the toll-free called party number. In another embodiment, S1 102 may issue a number portability (NP) query that includes the called party number.
In yet another embodiment, calling subscriber 104 may be a user agent client (UAC) in a session initiation protocol (SIP) network and S1 102 may be a SIP router, SIP application server (SAS), media gateway (MOW), or similar entity, which may issue SIP INVITE message, a number translation request, such as an ENUM query, or other message that includes the called party number.
At block 302, proximity information associated with the calling party is determined. For example, PRXM 108 may extract information contained within the received message, such as: the name, number, address or other identifier of the calling party; GPS or other location information for the calling party; the name, number, address, or other identifier of the switch or node from which the first signaling message was sent; GPS or other location information for the switch or node from which the first signaling message was sent; or other information that is associated with the calling party.
In one embodiment, the proximity information so extracted may be used directly. For example, in FIG. 2A, the switch ID, “MSC_ID” is the proximity information that was included in the toll-free query (FIG. 2A, message 1); that switch ID is included in the toll-free query sent to TFDB 110 (FIG. 2A, message 2). In an alternative embodiment, the proximity information extracted from the received message may be mapped to another kind or form of proximity information. For example, PRXM 108 may use proximity database 118, which may operate as an origination point code (OPC) to routing number (RN) mapping database to translate the OPC of the received message to a routing number, which is then included in the toll-free query. An example of an OPC-to-RN database is shown in Table 4, below. Each row of Table 4 represents an entry in PRXDB 118, and each entry maps an SS7 origination point code (OPC), shown in the left column, to a routing number (RN), shown in the right column.







TABLE 4







OPC-to-RN database









row
Origination Point Code
Routing Number





1
1-2-1
9194690000


2
2-4-3
2124580000


.
.
.


.
.
.


.
.
.









In another embodiment, the proximity information may come from sources other than data included in the received first signaling message. For example, if a signaling node has multiple ports, each port connecting to entities in different locations, the port number which received the message may indicate a geographic or topological proximity that may be associated with the calling party.
At block 304, a location-sensitive called party number translation is performed based on the calling party proximity information. For example, PRXM 108 may: issue a toll-free query to TFDB 108; issue a number portability query to NPDB 110; issue a mobility management query to HRL 112; issue an ENUM query to ENUM database 122; or some combination of the above.
At block 306, the first signaling message or a second signaling message is sent, the sent message including the translated called party number. For example, the original message (i.e., the first signaling message) may be modified and sent forward to the intended destination, or a new message (i.e., the second signaling message) may be generated and sent forward to the intended destination. Alternatively, a new signaling message (i.e., the second signaling message) may be generated and sent back to the sender of the first message, e.g., the second message may be a response to the first message query.
FIG. 4 is a block diagram illustrating an exemplary signaling message routing node 106 for providing location-sensitive called party number translation service in a telecommunications network according to another embodiment of the subject matter described herein. In one embodiment, signaling node 106 may be a signal transfer point (STP). In the embodiment illustrated in FIG. 4, signaling node 106 includes a link interface module (LIM) 400, a data communications module (DCM) 402, and a database services module (DSM) 404. Each module 400, 402, and 404 may include a printed circuit board having one or more processors. For example, each module may include an application processor for performing application level processing of signaling messages, and a communications processor for controlling inter-processor communications via inter-processor communications system (IPC) 406. IPC 406 may be any suitable mechanism for providing message communication between processing modules 400, 402, and 404. For example, IPC 406 may be a bus, an Ethernet LAN, or any other suitable mechanism for providing communications between processors.
LIM 400 includes various functions for sending and receiving signaling messages over SS7 signaling links. In the illustrated example, LIM 400 includes a message transfer part (MTP) level 1 and 2 function 408, an I/O buffer 410, a gateway screening (GWS) function 412, a discrimination function 414, a distribution function 416, and a routing function 418. MTP level 1 and 2 function 408 performs MTP level 1 and 2 functions, such as error detection, error correction, and sequencing of signaling messages. I/O buffer 410 stores inbound signaling messages before the messages are processed by higher layers. I/O buffer 410 also stores outbound signaling messages waiting to be transmitted over a signaling link by MTP level 1 and 2 function 408. Gateway screening function 412 screens inbound signaling messages based on destination point code and, optionally, based on originating point code to determine whether the messages should be allowed into the network. Discrimination function 414 analyzes the destination point code in each received signaling message to determine whether the signaling message should be processed by an internal processing module within node 106 or whether the message should be routed over an outbound signaling link. Discrimination function 414 forwards messages that are to be internally processed to distribution function 416. Discrimination function 414 forwards messages that are to be routed over an outbound signaling link to routing function 418. Distribution function 416 distributes messages that are identified as requiring internal processing to the appropriate internal processing module. For example, distribution function 416 may forward SCCP messages to database services module 404 for SCCP processing. Routing function 418 routes signaling messages that are addressed to point codes other than the point code of node 106. For example, routing function 418 may forward messages to another link interface module (not shown in FIG. 4) or to data communications module 402 for transmission over an outbound signaling link.
DCM 402 includes various functions for sending and receiving signaling messages over IP signaling links. Example signaling messages include SS7 over IP messages, session initiation protocol (SIP) messages, and others. In FIG. 4, these functions include a physical layer function 420, a network layer function 422, a transport layer function 424, an adaptation layer function 426, and SS7 MTP functions 410, 412, 414, 416, and 418 as described with regard to LIM 400. Physical layer function 420 may be any suitable physical layer function for sending and receiving frames that encapsulate network layer packets. In one exemplary implementation, physical layer function 420 may be implemented using an Ethernet transceiver. Network layer function 422 may be implemented using Internet protocol, such as IPv4 or IPv6. Transport layer function 424 may be implemented using any suitable transport layer protocol. Examples of transport protocols suitable for use with embodiments of the subject matter described herein include user datagram protocol (UDP), transmission control protocol (TCP), and stream control transmission protocol (SCTP). Adaptation layer function 426 may be implemented using any suitable adaptation layer, including adaption layers for sending SS7 messages over IP. Examples of adaptation layers suitable for use with the subject matter described herein include M3UA, M2PA, SUA, and TALI, as described in the correspondingly named IETF Internet drafts and RFCs. The remaining functions of DCM 402 are the same as those described with regard to LIM 400. Hence, a description thereof will not be repeated herein.
DSM 404 includes various functions and databases for processing signaling messages. In the illustrated example, DSM 404 includes a service selection function 428, a target message screening function 430, and a routing function 432. Database services module 404 also includes proximity processing module (PRXM) 108 for determining proximity information associated with a calling party. Service selection function 428 receives messages from interface processors and determines the type of service required for each message. For example, service selection function 428 may determine whether further screening of messages is required or whether the messages are simply to be global title translated and routed. For CAP or INAP messages, service selection function 428 may forward the messages to target message screening function 430. Target message screening function 430 screens CAP or INAP messages received by DSM 404 to identify targeted message types. According to the subject matter described herein, target message screening function 430 may identify call setup messages, such as ISUP IAM or SAM, as a targeted message type requiring further processing. For call setup messages, targeted message screening function 430 may communicate with PRXM 108 to determine proximity information for a calling party. For example, PRXM 108 may process signaling messages associated with toll-free calls and determine the called party directory number associated with the toll-free called party that is most proximate geographically or topologically to the calling party.
Signaling node 106 may include one or more processors. For example, in the embodiment illustrated in FIG. 4, DSM 404 includes a processor 434. In alternative embodiments, each module within signaling node 106, such as LIM 400, DCM 402, DSM 404, IPC 406, etc., may include one or more processors suitably programmed to perform some or all of the functions associated with the particular module, such as discrimination function 414, target message screening function 430, inter-processor communications 406, and so on.
In one embodiment, PRXM 108 may receive a mobility management message related to a toll-free call. For example, PRXM 108 may receive an SRI message including a toll-free number. In response, PRXM 108 may identify the SRI message as one that requires toll-free processing and take appropriate action. For example, PRXM 108 may generate a TF query and send the generated query to TFDB 108 via LIM 400 or DCM 402 as appropriate. PRXM 108 may subsequently receive a response to the TF query, and perform additional queries to other databases as needed.
In the embodiment illustrated in FIG. 1, databases TFDB 108, NPDB 110, and HLR 112 are external to signaling node 106, which issues queries and receives responses via network 100. In the embodiment of signaling node 106 illustrated in FIG. 4, signaling node 106 may include a local proximity information database 118. In one embodiment, DSM 404 may include an internal toll-free database, an internal number portability database, an internal HLR database, etc., or some combination of the above. It will be obvious to one of skill in the art that the subject matter described herein contemplates both internal and external, local and remote databases, in any combination.
As used herein, the term “database” refers to a database, a table, a data structure, a portion of memory or data storage, or other means to store and retrieve data, in particular two pieces of data in a key/value relationship. Thus, the term “database query” refers to not only a database query, but also a table lookup or access to a data structure, for example. A database query, such as may be used to determine a directory number associated with a toll-free called party number or to determine routing information associated with a directory number, could be performed using one or more protocols, including but not limited to a TCAP or MAP protocol, an Internet protocol (IP), a signaling connection and control part (SCCP) user adaptation (SUA) protocol, a session initiation protocol (SIP), or other protocols usable to perform a data query.
FIG. 5 is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein, in which a number portability query is used to determine the proximity information associated with the calling party. In the embodiment illustrated in FIG. 5, network 500 includes a central office, S1 102, that services a fixed-line subscriber 104 having a directory number 919-313-4545, who is attempting to call toll-free number 800-234-5678. S1 102 is associated with a local routing number, “LRN1”. S1 102 determines that subscriber 102 is calling a toll-free number, and issues a toll-free query (FIG. 5, message 1) to TFDB 110. Signaling node 106, such as an STP, intercepts the toll-free query and passes it to proximity processing module PRXM 108. In the embodiment illustrated in FIG. 5, PRXM 108 extracts the calling party number, e.g., 9193134545, and uses it in a number portability (NP) query (FIG. 5, message 2) to number portability database NPDB 114. Rather than using the NP query to determine a routing number for the called party, PRXM 108 uses the NP query to determine a routing number for the calling party, which is returned by NPDB 114 (FIG. 5, message 3) to PRXM 108. An example of an NP database is shown in Table 5, below. Each row of Table 5 represents an entry in NPDB 114, and each entry maps an directory number or range of directory numbers, shown in the left column, to a routing number (RN), shown in the right column. The routing number may also be a mobile switch routing number (MSRN), local routing number (LRN), or similar.







TABLE 5







Number Portability Database (NPDB)









row
DN Range
Routing Number





1
9190000000~9199999999
3365550000


2
2120000000~2129999999
3365550001


.
.
.


.
.
.


.
.
.









Since subscriber 104 is a fixed line subscriber who is served by central office S1 102, NPDB 114 returns the local routing number associated with S1 102, “LRN1”. The routing number LRN1 is the proximity information associated with the calling party, which PRXM 108 will use in a query to TFDB 110 (FIG. 5, message 4). In one embodiment, the routing number may be appended or prepended to the calling party number in the TF query. Alternatively, the calling party number may be replaced by the routing number in the TF query. TFDB 110 sends to PRXM 108 the translated directory number DN (FIG. 5, message 5) that is most proximate to calling party 104. Finally, signaling node 106 sends a toll-free response (FIG. 5, message 6) that includes the translated DN associated with the called party.
FIG. 6A is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein. In the embodiment illustrated in FIG. 6A, a telecommunications network 600 that supports the session initiation protocol (SIP) includes a SIP proxy server S1 102 that is identified by the source proxy ID “PROXY1”. Calling party subscriber 104, which may be a UAC or other SIP-compatible device, may issue a call setup message, such as a SIP INVITE message, to a toll-free number, such as 800-234-5678. In the embodiment illustrated in FIG. 6A, the SIP INVITE message is forwarded through S1 102 and is received or intercepted by signaling node 106, which may be a SIP server/router (SSR). In the embodiment illustrated in FIG. 6A, the SIP INVITE message (FIG. 6A, message 1) includes a TO field, identifying the destination of the message, 800-234-5678, a FROM field, identifying the URI of the message source, “CGP_URI”, and a SRC_PRX_ID field, which identifies the source proxy ID, “PROXY1”.
In the embodiment illustrated in FIG. 6A, the source proxy ID is the proximity information that is associated with the calling party, and PRXM 108 includes an intermediate database 602 which maps source proxy ID to a dummy calling party number, which can then be used in a TF query to TFDB 110. This mapping may implement a SIP redirect function, which maps a SIP proxy or proxy call session control function (P-CSCF) identifier or address to a dummy NPA-NXX or CGPN that is representative of a geographic area or region that is served by the SIP proxy/P-CSCF. Referring to intermediate database 602, the source proxy ID for S1 102, “PROXY1”, is mapped to a dummy calling party number of “919-469-0000”, which PRXM 108 uses in a TF query (FIG. 6A, message 2) to location-sensitive TFDB 110. The TF query includes the called party information, 800-234-5678, and at least some of the proximity information associated with the calling party, such as dummy CPGN 919-469-0000. Location-sensitive TFDB 110 uses both pieces of information to determine the DN associated with the toll-free called party number that is most proximate to calling subscriber 104. Location-sensitive TFDB 110 then returns the selected DN (FIG. 6A, message 3) to PRXM 108. PRXM 108 then uses this information to respond to the original SIP INVITE (FIG. 6A, message 1) with a SIP 3XX MOVED message (FIG. 6A, message 4), which includes destination information, i.e., the translated DN, which either S1 102 or calling subscriber 104 may used to restart the call to the translated DN address.
In one embodiment, intermediate database 602 may map other identifiers, such as client IP addresses, to a temporary DN. Client IP addresses, which may be correlated with a smaller geographic region than a proxy, may be extracted from the bottom-most Via header field and/or he Contact header field of the INVITE message (FIG. 6A, message 1). Other information that may be used as keys into intermediate database 602 include various access-information parameters from the P-Access-Network-Info header field, such as the Cell ID, which may be tightly correlated to a physical location. These parameters are described in more detail in section 4.4 of IETF RFC 3455, available on the world wide web at http://www.ietf.org/rfc/rfc3455.txt, and in section 7.2A.4 of the 3GPP technical specification TS 24.229, at http://www.3gpp.org/ftp/Specs/archive/24_series/24.229/24229-851.zip, both of which are herein incorporated by reference in their entireties.
FIG. 6B is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein. In the embodiment illustrated in FIG. 6B, the first three messages, (FIG. 6B, message 1, 2, and 3) are essentially the same as the first three messages of FIG. 6A, and therefore their descriptions will not be repeated herein. However, in the embodiment illustrated in FIG. 6B, PRXM 108 sends a second signaling message (FIG. 6B, message 4) forward, using the translated DN supplied by TFDB 110 as the contact URI, instead of sending the SIP MOVED message back to S1 102, as was done in FIG. 6A.
FIG. 6C is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein. FIG. 6C illustrates yet another variation of telecommunication network 600. In the embodiment illustrated in FIG. 6C, the first three messages, (FIG. 6C, message 1, 2, and 3) are essentially the same as the first three messages of FIG. 6A, and therefore their descriptions will not be repeated herein. However, in the embodiment illustrated in FIG. 6C, PRXM 108 performs the additional step of mapping the translated DN that was received from TFDB 110 (FIG. 6C, message 3) into a URI by issuing an ENUM query (FIG. 6C, message 4) to ENUMDB 112 and receiving a response (FIG. 6C, message 5) that includes the URI corresponding to the translated DN. In the embodiment illustrated in FIG. 6C, PRXM 108 issues a SIP MOVED message (FIG. 6C, message 6) that includes the URI instead of the translated DN that is returned in FIG. 6A.
FIG. 6D is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein. FIG. 6D illustrates yet another variation of telecommunication network 600. In the embodiment illustrated in FIG. 6D, the first five messages, (FIG. 6D, message 1, 2, 3, 4, and 5) are essentially the same as the first five messages of FIG. 6C, and therefore their descriptions will not be repeated herein. However, in the embodiment illustrated in FIG. 6D, PRXM 108 sends a second signaling message (FIG. 6D, message 6) forward, using the translated DN supplied by TFDB 110 as the contact URI, instead of sending the SIP MOVED message back to S1 102, as was done in FIG. 6C.
FIG. 7A is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein. FIG. 7A illustrates an embodiment of a location-sensitive ENUM service, in which the location of the calling party is considered while performing the ENUM lookup of the called party. In the embodiment illustrated in FIG. 7A, a telecommunications network 700 that supports the session initiation protocol (SIP) includes a SIP proxy server S1 102 that is identified by the source proxy ID “PROXY1”. S1 102 may, on behalf of calling party subscriber 104, issue an ENUM query (FIG. 7A, message 1) to location-sensitive ENUM database ENUMDB 112, the query including the called party number, 800-444-5678, which in one E.164 number format is “8.7.6.5.4.4.4.0.0.8.1.0”. In the embodiment illustrated in FIG. 7A, the ENUM query includes the source proxy ID of S1 102, “PROXY1”. The ENUM query is received by signaling node 106, which may be a SIP server/router (SSR).
In the embodiment illustrated in FIG. 7A, PRXM 108 includes an intermediate database 702 which maps source proxy ID to proximity information associated with the calling party, which can then be used in an ENUM query to location sensitive ENUM database ENUMDB 112. Referring to intermediate database 702, the source proxy ID for S1 102, “PROXY1”, is mapped to a set of GPS coordinates, (X,Y,Z), which PRXM 108 uses in an ENUM query (FIG. 7A, message 2) to ENUMDB 112. Location-sensitive ENUMDB 112 uses the calling party E.164 number and the proximity information GPS coordinates to return a URI (FIG. 7A, message 3) that is most proximate to the GPS coordinates (X,Y,Z) and thus most proximate to calling subscriber 104. In one embodiment, PRXM 108 may forward this ENUM response to the source of the original query (FIG. 7A, message 4.)
FIG. 7B is a block diagram illustrating signaling messages communicated within an exemplary system for providing location-sensitive called-party number translation according to another embodiment of the subject matter described herein. In the embodiment illustrated in FIG. 7B, long term evolution (LTE) network 700 includes an LTE mobility management entity (MME)-compliant switch S1 102, which has a source proxy ID “MME1”. S1 102 may, on behalf of calling party subscriber 104, issue an ENUM query (FIG. 7B, message 1), for the called party number, 800-444-5678, which in E.164 number format is “8.7.6.5.4.4.4.0.0.8.1.0”. In the embodiment illustrated in FIG. 7A, the ENUM query includes the source proxy ID of S1 102, “MME1”, and the calling party identifier, “CGPID”. The ENUM query is received by signaling node 106, which may be a SIP server/router (SSR).
PRXM 108 may maintain provisioned data that maps a node identifier to geo-location coordinates or a geo-location proximity identifier that is representative of the geographic area or region served by the node. The mode identifier may be a SIP proxy, softswitch, P-CSCF, LTE MME, or MSC server identifier (e.g., network node identifier, network address, IP address, URI, routing number, etc.) or address. PRXM 108 may infer the source or originating proxy based on the signaling link or linkset, signaling association, signaling connection, signaling session, physical or logical port, etc., on which the ENUM query is received. In the embodiment illustrated in FIG. 7B, PRXM 108 extracts calling party/from party identification information generates a new query or modifies the original query, and forwards that query (FIG. 7B, message 2) to a network element/register/server 116, such as an HSS, an HLR, a visitor location register (VLR), a location server, a presence server, etc., which responds with location information for the calling party (FIG. 7B, message 3), such as GPS coordinates or other form of geographic location information.
In an alternative embodiment, the location information associated with the calling party returned by server 116 may be in the form of network topological information, such as a switch identity or address. Thus, in the embodiment illustrated in FIG. 7B, PRXM 108 includes an intermediate database 704 which maps network topological information, such as switch identifiers, to proximity information associated with the calling party, such as geographic location information.
PRXM 108 may then use the geographic location information associated with the calling party in an ENUM query (FIG. 7B, message 4) to location sensitive ENUM database ENUMDB 112. Location-sensitive ENUMDB 112 uses the calling party E.164 number and the proximity information GPS coordinates to return a URI (FIG. 7B, message 5) that is most proximate to the GPS coordinates (X,Y,Z) and thus most proximate to calling subscriber 104. In one embodiment, PRXM 108 may forward this ENUM response to the source of the original query (FIG. 7A, message 4.)
FIG. 8 illustrates some of the various allowed formats for E.164 numbers.
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.

## Claims

1. A method for providing location-sensitive called-party identifier translation in a telecommunications network, the method comprising:
at a signaling system 7 (SS7) signal transfer point (STP) that includes at least one processor:
receiving, from an originating switch, a first signaling message that includes a called party identifier and a mobile subscriber number within a calling party identifier field of the first signaling message;
determining proximity information associated with the first signaling message by extracting a switch identifier of the originating switch from the first signaling message;
modifying the first signaling message to create a modified message by removing the mobile subscriber number from the calling party identifier field of the first signaling message and inserting, in place of the mobile subscriber number, a value based on the switch identifier of the originating switch extracted from the calling party identifier field of the first signaling message;
forwarding the modified message to a translation database system for performing a location-sensitive called party identifier translation based on the proximity information associated with the calling party, wherein performing a location-sensitive called party identifier translation based on the proximity information associated with the calling party includes selecting a called party identifier from a plurality of called party identifiers based on the proximity information associated with the calling party, wherein performing the location-sensitive called party identifier translation based on the proximity information associated with the calling party comprises:
performing a toll-free query to a location-sensitive toll-free database for mapping a toll-free number to a directory number based on the proximity information associated with the calling party; and
in response to obtaining the mapped directory number, performing an E.164 number translation (ENUM) query to a location-sensitive ENUM database for mapping E.164 telephone numbers to IP addresses; and

sending the first signaling message or a second signaling message, the sent message including the translated called party identifier.

2. The method of claim 1 wherein the first signaling message is a signaling system 7 (SS7) message comprising one of:
a call setup message;
a transaction capabilities application part (TCAP) query; and
a mobile application part (MAP) query.

3. The method of claim 1 wherein determining the proximity information associated with the calling party comprises issuing one of:
a transaction capabilities application part (TCAP) query;
a mobile application part (MAP) query;
an intelligent network (IN) query;
a wireless intelligent network (WIN) query;
an advanced intelligent network (AIN) query; and
a customized applications for mobile networks enhanced logic (CAMEL) query.

4. The method of claim 1 wherein sending the first signaling message comprises modifying the first signaling message to include the translated called party identifier and forwarding the first signaling message to a destination of the first signaling message.

5. The method of claim 1 wherein sending the second signaling message comprises sending the second signaling message to the originating switch.

6. The method of claim 1 wherein sending the second signaling message comprises sending the second signaling message to a destination of the first signaling message.

7. A system for providing location-sensitive called-party identifier translation in a telecommunications network, the system comprising:
a signaling system 7 (SS7) signal transfer point (STP) for receiving, from an originating switch, a first signaling message that includes a called party identifier and a mobile subscriber number within a calling party identifier field of the first signaling message; and
a proximity processing module operatively associated with the signal transfer point for determining proximity information associated with the first signaling message by extracting a switch identifier of the originating switch from the first signaling message, for modifying the first signaling message to create a modified message by removing the mobile subscriber number from the calling party identifier field of the first signaling message and inserting, in place of the mobile subscriber number, a value based on the switch identifier of the originating switch extracted from the calling party identifier field of the first signaling message, for forwarding the modified message to a translation database system for performing a location-sensitive called party identifier translation based on the proximity information associated with the calling party, and for sending the first signaling message or a second signaling message, the sent message including the translated called party identifier, wherein performing a location-sensitive called party identifier translation based on the proximity information associated with the calling party includes selecting a called party identifier from a plurality of called party identifiers based on the proximity information associated with the calling party, wherein performing the location-sensitive called party identifier translation based on the proximity information associated with the calling party comprises:
performing a toll-free query to a location-sensitive toll-free database for mapping a toll-free number to a directory number based on the proximity information associated with the calling party; and
in response to obtaining the mapped directory number, performing an E.164 number translation (ENUM) query to a location-sensitive ENUM database for mapping E.164 telephone numbers to IP addresses.

8. The system of claim 7 wherein the first signaling message is a signaling system 7 (SS7) message comprising one of:
a call setup message;
a transaction capabilities application part (TCAP) query; and
a mobile application part (MAP) query.

9. The system of claim 7 wherein the proximity processing module determines the proximity information associated with the calling party by issuing one of:
a transaction capabilities application part (TCAP) query;
a mobile application part (MAP) query;
an intelligent network (IN) query;
a wireless intelligent network (WIN) query;
an advanced intelligent network (AIN) query; and
a customized applications for mobile networks enhanced logic (CAMEL) query.

10. The system of claim 7 wherein the proximity processing module sends the first signaling message by modifying the first signaling message to include the translated called party identifier and forwarding the first signaling message to a destination of the first signaling message.

11. The system of claim 7 wherein the proximity processing module sends the second signaling message by sending the second signaling message to the source of the first signaling message.

12. The system of claim 7 wherein the proximity processing module sends the second signaling message by sending the second signaling message to a destination of the first signaling message.

13. A non-transitory computer readable medium having stored thereon executable instructions that when executed by the processor of a computer control the computer to perform steps comprising:
receiving, at a signaling system 7 (SS7) signal transfer point (STP), and from an originating switch, a first signaling message that includes a called party identifier and a calling party identifier within a calling party identifier field of the first signaling message;
determining proximity information associated with the calling party first signaling message by determining a switch identifier of the originating switch;
modifying the first signaling message to create a modified message by replacing the calling party identifier with a value based on the switch identifier of the originating switch in the calling party identifier field of the first signaling message;
forwarding the modified message to a translation database system for performing a location-sensitive called party identifier translation based on the proximity information associated with the calling party, wherein performing a location-sensitive called party identifier translation based on the proximity information associated with the calling party includes selecting a called party identifier from a plurality of called party identifiers based on the proximity information associated with the calling party, wherein performing the location-sensitive called party identifier translation based on the proximity information associated with the calling party comprises:
performing a toll-free query to a location-sensitive toll-free database for mapping a toll-free number to a directory number based on the proximity information associated with the calling party; and
in response to obtaining the mapped directory number, performing an E.164 number translation (ENUM) query to a location-sensitive ENUM database for mapping E.164 telephone numbers to IP addresses; and

sending the first signaling message or a second signaling message, the sent message including the translated called party identifier.

14. The method of claim 1 wherein the called party identifier comprises a called party number.

15. The system of claim 7 wherein the called party identifier comprises a called party number.