Abstract:
Methods, systems, and computer readable media for routing a message service message through a communications network are disclosed. In one embodiment, the method includes, at a signaling node upstream from a sending party message server, receiving a message service message that includes a sending party identifier and a receiving party identifier. A number translation database is queried to determine a routing identifier associated with the receiving party identifier. The method also includes modifying the message service message to include the routing identifier, and routing the message service message to the sending party message server.

Description:
RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/034,760, filed Mar. 7, 2008, the disclosure of which is incorporated herein by reference in its entirety. 
    
    
     TECHNICAL FIELD 
     The subject matter described herein relates to number portability services and short messaging service (SMS) messages directed to ported mobile device numbers. More specifically, the subject matter relates to methods, systems, and computer readable media for routing a message service message through a communications network. 
     BACKGROUND 
     A local wireless mobile network is typically able to send and receive message service messages, such as short messages service (SMS) messages, to and from a plurality of different foreign wireless mobile networks. For example, the communication of SMS messages between the different wireless mobile networks is made possible by utilizing a short message peer-to-peer protocol (SMPP) connection that couples the mobile networks&#39; short message service centers (e.g., via SMPP gateways). By communicating SMPP messages containing SMS messages between short message service centers (SMSCs), SMS messages can be delivered to a receiving party subscribed to a foreign mobile network. For example, a mobile network operator can configure an SMSC to utilize receiving party number ranges to determine whether a receiving party is a subscriber of another mobile network operator as well as a subscriber of its own network. If the receiving party number is determined to be associated with the “home” mobile network, global system for mobile communications (GSM) protocol (or IS-41 protocol) can be used to deliver the SMS message. If the receiving party number is subscribed to a foreign mobile network, SMPP protocol is instead utilized for communicating the SMS message to an appropriate foreign mobile network SMSC. 
     Delivery of SMS messages by an SMSC typically requires that the SMSC query a Home Location Register (HLR) associated with the recipient mobile subscriber in order to determine a forwarding or delivery instructions associated with the message recipient. Location of the HLR to be queried is typically determined by an SMSC based on the recipient mobile a mobile subscriber identifier (e.g., MSISDN) that is contained in the SMS message being delivered. However, in number portability enabled telecommunication networking environments, the mobile subscriber identifier contained in the SMS message being delivered may have been ported into or out of the SMSC&#39;s network. This presents a problem for an SMSC that is attempting to deliver messages in a number portability enabled network environment. 
     One solution that has been implemented by a network operator to address this problem involves simply querying the network operator&#39;s HLR during each SMS delivery attempt. In cases where the recipient mobile subscriber has been ported out of or is not a subscriber of the home network, the HLR responds with an error message/code, which indicates that the message recipient is a foreign subscriber. The SMSC then forwards the SMS message to a foreign network based on the mobile subscriber identifier contained in the SMS message. In cases where the recipient mobile subscriber has been ported in or is a subscriber of the home network, the HLR responds with delivery instructions (e.g., serving mobile switching center address), which the SMSC uses to facilitate routing of the message towards the recipient mobile subscriber. 
     This solution, while operable, is highly inefficient with respect to the usage of HLR resources in the SMSC&#39;s home network. Each query transaction consumes expensive communication and processing bandwidth at the HLR. Hence, it is desirable from a network cost standpoint to minimize the number of HLR query transactions initiated by SMSC nodes in the home network. 
     Accordingly, a need exists for improved methods, systems, and computer readable media for efficiently routing a message service message through a communications network. 
     SUMMARY 
     Methods, systems, and computer readable media for routing a message service message through a communications network are disclosed. In one embodiment, the method includes, at a signaling node upstream from a sending party message server, receiving a message service message that includes a sending party identifier and a receiving party identifier. A number translation database is queried to determine a routing identifier associated with the receiving party identifier. The method also includes modifying the message service message to include the routing identifier, and routing the message service message to the sending party message server. 
     The subject matter described herein for routing a message service message may be implemented using a computer readable medium having stored thereon computer executable instructions that when executed by the processor of a computer perform steps of the aforementioned method (see above). Exemplary computer readable media suitable for implementing the subject matter described herein includes disk memory devices, programmable logic devices, and application specific integrated circuits. In one implementation, the computer readable medium may include a memory accessible by a processor. The memory may include instructions executable by the processor for implementing any of the methods for routing a message service message described herein. In addition, a computer readable medium that implements the subject matter described herein may be distributed across multiple physical devices and/or computing platforms. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The subject matter described herein will now be explained with reference to the accompanying drawings of which: 
         FIG. 1  is a network diagram including a signaling node for routing a message service message to a ported mobile device in accordance with one embodiment of the subject matter described herein; 
         FIG. 2  is an exemplary call flow of utilizing a signaling node to route a message service message to a ported mobile device in accordance with one embodiment of the subject matter described herein; 
         FIG. 3  is a network diagram including a signaling node for intercepting a send routing information SMS message (SRI_SM) associated with a message service message sent to a ported mobile device in accordance with one embodiment of the subject matter described herein; 
         FIG. 4  is an exemplary call flow of utilizing a signaling node to intercept a send routing information SMS message (SRI_SM) associated with a message service message sent to a ported mobile device in accordance with one embodiment of the subject matter described herein; 
         FIG. 5  is a network diagram including a signaling node that utilizes ENUM service to route a message service message to a mobile device in accordance with one embodiment of the subject matter described herein; and 
         FIG. 6  is a network diagram including a signaling node that utilizes presence information to route a message service message to a mobile device in accordance with one embodiment of the subject matter described herein. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  depicts a network diagram illustrating the routing of a message service message (e.g., a short message service (SMS) message) through a wireless networks. In one embodiment, the network may comprise both a home mobile network  100  and a foreign mobile network  101 . More specifically, home mobile network  100  and foreign mobile network  101  may include separate and distinct mobile wireless networks. In  FIG. 1 , home mobile network  100  includes at least a mobile switching center (MSC)  102 , a signaling node (e.g., signaling gateway (SG)  104 ), and a short message service center (SMSC)  106 . Foreign network  101  similarly includes at least an SMSC  108 , which is able to communicate with SMSC  106  using a short message peer-to-peer protocol (SMPP) connection (e.g., via SMPP gateways). In one embodiment, SG  104  may include a signaling transfer point (STP) or any like signaling node. Similarly, the SMSC may also include a multimedia service center (MMSC) or some other like message server. 
     In one embodiment, MSC  102  receives a request from a mobile device to send an SMS message (or any other kind of message service message) to a receiving party. The mobile device may be a subscriber to home mobile network  100  and the receiving party may include a mobile device that subscribes to foreign network  101 . Upon receiving the request from the mobile device, MSC  102  may be configured to generate a mobile application part (MAP) forward short message (FWD_SM) message that includes at least the sending party number (or some other sending party identifier) associated with the sending mobile device and the receiving party number (or some other receiving party identifier) associated with the mobile device of the receiving party. Although  FIG. 1  generally depicts a GSM network utilizing MAP FWD_SM messages, any other type of text message may be used. For example, SMS delivery point to point (SMDPP) messages may instead be utilized if home mobile network  100  includes an IS-41 network. The MAP message generated by MSC  102  is typically directed towards a “downstream” SMSC  106  so that SMSC  106  may query a home network home location register (HLR). In  FIG. 1 , however, the MAP message is initially received or intercepted by STP  104 . In one embodiment, STP  104  is communicatively coupled to a number translation database, such as number portability (NP) database  110 , which may be located within STP  104  (as shown in  FIG. 1 ) or may be embodied as an external stand-alone database. Number portability database  110  may be provisioned or updated in any number of ways, such as periodically receiving NP data from a number portability provisioning service or agency (not shown in  FIG. 1 ). 
     After receiving the MAP message from MSC  102 , STP  104  may initiate a number portability query to NP database  110  using the receiving party number contained in the MAP message. As a result of the number portability query (e.g., performing a lookup), STP  104  may obtain a routing identifier related to the receiving party mobile device if the receiving party number has been previously ported. For example, the routing identifier may include data related to the network a ported receiving party is subscribed to (e.g., foreign mobile network  101 ), a network gateway associated with the receiving party&#39;s subscribed network, an SMSC in the receiving party&#39;s subscribed network, and the like. Specifically, the routing identifier may include, but is not limited to, data such as a location routing number (LRN), a service provider ID (SPID), or a carrier ID (CID). 
     After the routing identifier is obtained, STP  104  may subsequently modify the MAP message (or alternatively, create a new MAP message) so that the message includes the obtained routing identifier. In one embodiment, the routing identifier includes an LRN that is attached or appended to the receiving party number in the modified MAP FWD_SM message. 
     In one embodiment, STP  104  may be provisioned with a number translation module or application that is configured for receiving the MAP FWD_SM, querying the NP database, and subsequently, modifying the MAP FWD_SM message to include the routing identifier. After this modification, the MAP message may then be routed to SMSC  106 . In one embodiment, STP  104  may include a message routing module or application for routing the MAP FWD_SM message to SMSC  106 . In an alternate embodiment, the number translation module or application may be configured for routing the MAP FWD_SM message to SMSC  106 . Although  FIG. 1  represents the routing identifier as the LRN of SMSC  108 , this depiction is understood to only represent an exemplary embodiment as other types of routing identifiers may be included in the modified MAP message. 
     After receiving the modified MAP message from STP  104 , SMSC  106  may examine the receiving party number contained in the MAP message. In one embodiment, SMSC  106  may be configured (e.g., equipped with upgraded logic) to recognize that the receiving party number has been modified to include an appended LRN (or any other routing identifier). Upon recognizing the appended LRN, SMSC  106  forgoes querying the HLR. Rather than attempting to obtain location information from the HLR, SMSC  106  instead uses the routing identifier (e.g., LRN) to route the MAP FWD_SM message. Since the number portability service has already been performed by STP  104 , SMSC  106  does not need to perform a query to either the HLR or a number portability database. Notably, this network configuration significantly reduces signaling traffic at both the SMSC and the HLR. 
     In one embodiment, SMSC  106  forwards the MAP FWD_SM message to SMSC  108 , which is associated with the LRN, by including the MAP FWD_SM message in an SMPP message. For example, the MAP FWD_SM message may be encapsulated in the SMPP message to be delivered to SMSC  108 . In an alternate embodiment, the SMPP message is generated by a home network SMPP gateway (not shown) and delivered to a foreign network SMPP gateway (not shown), which in turn routes the MAP FWD_SM message to SMSC  108 . 
       FIG. 2  is an exemplary call flow that utilizes a signaling node to route a message service message to a ported mobile device. Namely,  FIG. 2  depicts a MAP FW_SM message  202  that contains a sending party (i.e., A-party) identifier and a receiving party (i.e., B-party) identifier. In one embodiment, an STP/SG receives message  202  from an MSC (e.g., MSC  102  in  FIG. 1 ). Instead of immediately routing message  202  to the home network SMSC (i.e., SMSC A-Party ), the STP/SG generates and sends a number portability query message  204  containing the receiving party number to an NP database. The NP database responds by sending, to the STP/SG, a response message  206  containing a routing number (RN) or some other identifier associated with the receiving party or the receiving party&#39;s subscribed network. In response, the STP/SG modifies the originally received MAP FWD_SM to include the obtained routing number as part of the receiving party address and sends modified message  208  to the home network&#39;s SMSC serving the sending party (i.e., A-party). Upon receipt, the home SMSC recognizes and reads the routing number from the modified MAP message (without querying an HLR or NP database) and generates an SMPP message  210 . Notably, SMPP message  210  includes the MAP FWD_SM message that contains both the sending party and receiving party numbers, and is forwarded to the appropriate foreign SMSC as indicated by the routing number. 
       FIG. 3  is a network diagram that includes a signaling node for intercepting a send routing information SMS message (SRI_SM) associated with a message service message sent to a ported mobile device. In one embodiment, the network comprises a home mobile network  300  and a foreign mobile network  301 . In  FIG. 3 , home mobile network  301  includes a home location register (HLR)  302 , a signaling node (e.g., signaling gateway (SG)  304 ), and a short message service center (SMSC)  306 . Foreign network  301  similarly includes a SMSC  308 , which is able to communicate with SMSC  306  using a short message peer-to-peer protocol (SMPP) connection (e.g., via SMPP gateways). In one embodiment, SG  104  may include a signal transfer point (STP). Similarly, the SMSC may also include a multimedia service center (MMSC) or some other like message server. 
     In one embodiment, SMSC  306  receives a request from a subscribing mobile device to send an SMS message (or any other type of message service message) to a receiving party. For example, SMSC  306  receives a MAP FWD_SM message that includes at the least a sending party number and receiving party number. SMSC  306  subsequently generates a sending routing information for short message (SRI_SM) query message, which is directed to HLR  302 . Although  FIG. 3  generally depicts a GSM network utilizing MAP SRI_SM messages, any like request message may be used. For example, SMSREQ messages may instead be utilized if home network  300  includes an IS-41 network. 
     In one embodiment, the SRI_SM query message may be received or intercepted by STP  304 , which may be configured to recognize and process SRI_SM messages (e.g., equipped with upgraded logic). In one embodiment, STP  304  is also configured to query number portability database  310  to obtain a routing identifier (e.g., an LRN, SPID, CID, etc.) associated with the foreign mobile network  301  that provides service to a receiving party number that has been ported from network  300  to foreign network  301  (i.e., in this example, B-party is no longer a subscriber to network  300 ). In one embodiment, number portability database  310  may be provisioned or updated in any number of ways, such as periodically receiving NP data from a number portability provisioning service or agency. 
     After obtaining the identifier, STP  304  may generate a SRI_SM_Ack message that includes the identifier, such as an LRN as depicted in  FIG. 3 . In one embodiment, STP  304  then sends the SRI_SM_Ack message to SMSC  306  (i.e., without forwarding the SRI_SM message to HLR  302 ). By performing these functions, STP  304  responds on behalf, or in lieu, of HLR  302 . After receiving the SRI_SM_Ack message, SMSC  306  may obtain the LRN from the acknowledgement message in order to determine where to route the originally received MAP FWD_SM message. 
     In one embodiment, SMSC  306  forwards the MAP FWD_SM message to SMSC  308 , which is associated with the LRN, by including the MAP FWD_SM message in an SMPP message. For example, the MAP FWD_SM message may be encapsulated in the SMPP message to be delivered to SMSC  308 . In an alternate embodiment, the SMPP message is generated by a home network SMPP gateway (not shown) and delivered to a foreign SMPP network gateway (not shown), which in turn routes the MAP FWD_SM message to SMSC  308 . 
       FIG. 4  illustrates a call flow diagram that uses a signaling node to intercept an SRI_SM message associated with a message service message to a ported mobile device. Namely,  FIG. 4  depicts a MAP SRI_SM message  402  that contains a receiving party (i.e., B-party) identifier being sent by a home network SMSC (i.e., SMSC A-Party ). In one embodiment, message  402  is sent to an STP/SG, or alternatively, is sent to an HLR and is instead intercepted by the STP/SG. The STP/SG then generates and sends a number portability query message  404  containing the receiving party number to a number portability database. The number portability database responds by sending, to the STP/SG, a response message  406  containing a routing number (RN) or other identifier associated with the mobile network serving the receiving party. In response, the STP/SG may generate a MAP SRI_SM_Ack message  408  that contains the routing number or identifier. Message  408  may then be provided to the SMSC A-Party . The SMSC A-Party  then generates an SMPP message  410  that includes the originally received MAP FW_SM message and the sending and receiving party numbers. SMPP message  410  may then be sent to a foreign network SMSC (i.e., SMSC B-Party ) that corresponds to the routing number received in message  408 . Notably, SMSC B-Party  is the SMSC that is providing service to the ported receiving party. 
       FIG. 5  depicts a network diagram that includes a signaling node utilizing an ENUM service to route a message service message to a mobile device that has been effectively “ported” from a 2G service network to a 3G service network. In one embodiment, the network comprises a home mobile network  500  and a foreign mobile network  501 . Home mobile network  500  and foreign mobile network  501  may include separate and distinct mobile wireless networks. In  FIG. 5 , home mobile network  500  includes at least a mobile switching center (MSC)  502 , a signaling node (e.g., signaling gateway (SG)  504 ), and a short message service center (SMSC)  506 . In one embodiment, SG  504  may include a signaling transfer point (STP). Similarly, the SMSC may also include a multimedia service center (MMSC) or some other like message server. Foreign mobile network  501  may similarly include at least a foreign network gateway  508 , which is able to communicate with network SMSC  506  using a short message peer-to-peer protocol (SMPP) connection (e.g., via SMPP gateways). In one embodiment, foreign network gateway  508  may include a session initiation protocol (SIP)/Internet protocol multimedia subsystem (IMS) gateway or some other like message server. 
     In one embodiment, MSC  502  receives a request from a mobile device to send an SMS message (or any other type of message service message) to a receiving party that may have formerly used a 2G device. The sending mobile device may be a subscriber to home mobile network  500  and the receiving party may now include a 3G mobile device that subscribes to foreign mobile network  501 . Upon receiving the request from the sending mobile device, MSC  502  may be configured to generate a MAP FWD_SM message that includes at least the sending party number and the 2G receiving party number associated with the mobile device of the receiving party. Although  FIG. 5  generally depicts a GSM network utilizing MAP FWD_SM messages, any like text message may be used. For example, SMDPP messages may instead be utilized if home network  500  includes an IS-41 network. The MAP message is typically directed towards SMSC  506  in order to query a home network home location register (HLR). In  FIG. 5 , however, the MAP message is initially received by STP  504 . In one embodiment, STP  504  is communicatively coupled to an ENUM translation database  510 , which may be located within STP  504  (as shown in  FIG. 5 ) or may be embodied as an external stand-alone database. ENUM translation database  510  may be provisioned or updated in any number of ways, such as periodically receiving ENUM data from an ENUM provisioning service or agency (not shown). 
     After receiving the MAP message from MSC  502 , STP  504  may initiate an ENUM query to database  510  using the 2G receiving party number contained in the MAP message. As a result of the ENUM query, STP  504  may obtain at least one uniform resource identifier (URI) associated with the receiving party&#39;s 3G device. Specifically, the at least one URI may be mapped to a network routing address, such as an LRN, SPID, or CID, which is associated with a network gateway  508 . In one embodiment, STP  504  may be provisioned with an ENUM translation module that is configured to query the ENUM translation database to obtain the at least one URI. 
     In one embodiment, STP  504  may utilize URI mapping to provide SMSC  506  with an appropriate network routing address (e.g., an LRN) of the network gateway that is servicing the receiving party in network  501 . For example, STP  504  may modify the originally received MAP message (or alternatively, create a new MAP message) to include the recently obtained routing identifier. Notably, the routing identifier may include an LRN which is attached or appended to the receiving party number in the modified MAP FWD_SM message, which is then routed to SMSC  506 . 
     After receiving the modified MAP message from STP  504 , SMSC  506  may examine the receiving party number and LRN contained in the MAP message. In one embodiment, SMSC  106  may be configured (e.g., equipped with upgraded logic) to recognize that the receiving party number has been modified to include an appended LRN (or any other routing identifier). Upon recognizing the appended LRN, SMSC  506  forgoes querying the HLR. Rather, SMSC  506  uses the routing identifier (e.g., LRN) to route the MAP FWD_SM message. In one embodiment, SMSC  506  forwards the MAP FWD_SM message to foreign network gateway  508 , which is associated with the LRN, by including the MAP FWD_SM message in an SMPP message. For example, the MAP FWD_SM message may be encapsulated in the SMPP message to be delivered to SIP gateway  508 . 
       FIG. 6  depicts a network diagram including a signaling node that utilizes presence status information to route a message service message to a mobile device. In one embodiment, the network comprises a home mobile network  600  and a foreign mobile network  601 . In  FIG. 6 , home network  601  includes a home location register (HLR)  602 , a signaling node (e.g., signaling gateway (SG)  604 ), a short message service center (SMSC)  606 , and a presence database  612 . In one embodiment, SG  604  may include a signaling transfer point (STP). Similarly, the SMSC may also include a multimedia service center (MMSC) or some other like message server. Foreign mobile network  501  may similarly include at least a foreign network gateway  608 , which is able to communicate with network SMSC  606  using a short message peer-to-peer protocol (SMPP) connection (e.g., via SMPP gateways). In one embodiment, foreign network gateway  608  may include a SIP/IMS entity, such as an SIP/IMS gateway or other like message server. 
     In one embodiment, MSC  602  receives a request from a mobile device to send an SMS message to a receiving party that may have formerly used a 2G device. The sending mobile device may be a subscriber to home mobile network  600  and the receiving party may now include a 3G mobile device that subscribes to foreign mobile network  601 . Upon receiving the request from the sending mobile device, MSC  602  may be configured to generate a MAP FWD_SM message that includes at least the sending party number and 2G receiving party number associated with the mobile device of the receiving party. Although  FIG. 6  generally depicts a GSM network utilizing MAP FWD_SM messages, any like text message may be used. For example, SMDPP messages may instead be utilized if home network  600  includes an IS-41 network. The MAP message is typically directed towards SMSC  606  in order to query a home network home location register (HLR). In  FIG. 6 , however, the MAP message is initially received by STP  604 . In one embodiment, STP  604  is communicatively coupled to an ENUM/NP database  610 , which may be located within STP  604  (as shown in  FIG. 6 ) or may be embodied as an external stand-alone database. Similarly, the ENUM/NP database  610  may be embodied as separate and distinct ENUM and NP databases that are respectively connected to STP  604 . ENUM/NP database  610  may be provisioned or updated in any number of ways, such as periodically receiving ENUM and NP data from a respective ENUM and number portability provisioning service or agency (not shown). In one embodiment, ENUM and NP services may both be utilized by a network  600  if a home network operator has a preference to deliver SMS messages by utilizing 3G SIP services before attempting to send text messages using 2G GSM services. 
     After receiving the MAP message from MSC  602 , STP  604  may initiate an ENUM query to database  610  using the 2G receiving party number contained in the MAP message. In one embodiment, STP  604  obtains a URI identifier in response to the ENUM query. The URI identifier may be mapped to a network routing address, such as an LRN, SPID, CID, or the like, which is associated with foreign network gateway  608 . In one embodiment, the receiving party&#39;s availability (i.e., “presence status”) may be determined by sending a “subscribe message” containing the obtained URI to a presence service query/subscription, which is represented in  FIG. 6  as a presence database  612 . 
     As used herein, a “presence service” is a service that provides for the monitoring of the availability and disposition of services and/or addresses identified by URIs. Presence information is highly dynamic and generally characterizes whether a user is online or offline, busy or idle, away from communications devices or nearby, and the like. Presence status information is typically stored in a presence database, such as database  612 . In order to obtain presence information regarding a receiving party, a subscribing entity (i.e., network  600  via STP  604 ) may send a subscribe message to presence database  612 . If presence information for the subscribed-to receiving party is available in presence database  612 , presence database  612  (or a server that hosts database  612 ) will respond with presence information for the receiving party. 
     Thus, if the receiving party&#39;s mobile device associated with the URI is available to receive an SMS message, then presence database  612  will send a notification message (i.e., a notify message) to STP  604  indicating the receiving party&#39;s availability. Similarly, database  612  may also be configured to send a notification message to STP  604  indicating that the receiving party is not available for receiving SMS messages if that is the case. 
     In one embodiment, STP  604  modifies the originally received MAP message (or alternatively, create a new MAP message) to include the recently obtained routing identifier. For example, the routing identifier may include an LRN which is attached or appended to the receiving party number in the modified MAP FWD_SM message, which is then routed to SMSC  606 . 
     In one embodiment, SMSC  606  receives the modified MAP message and examines the receiving party number. SMSC  606  may then use the routing identifier (e.g., LRN) to determine where to route the MAP FWD_SM message. In one embodiment, SMSC  606  forwards the MAP FWD_SM message to foreign network gateway  608 , which is associated with the LRN, using SMPP. More specifically, SMSC  606  forwards the MAP FWD_SM message to gateway  608  by including the MAP FWD_SM message in an SMPP message. For example, the MAP FWD_SM message may be encapsulated in the SMPP message to be delivered to gateway  608 . In an alternate embodiment, the SMPP message is generated by a home network SMPP gateway and delivered to a foreign SMPP network gateway, which in turn routes the MAP FWD_SM message to gateway  608 . In yet another embodiment, SMDPP messages may be used in an IS-41 network as opposed to GSM MAP FWD_SM messages. 
     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.