Method, system, and computer readable medium for performing a speed check for an outbound subscriber roaming to a neighboring country - Patents.com

JP2024517480A5Active Publication Date: 2025-01-30ORACLE INT CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023569946
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-05-12
Filing Date
2022-04-26
Publication Date
2025-01-30
Estimated Expiration
2042-04-26

AI Technical Summary

Technical Problem

Current mobile communication networks fail to accurately perform speed checks for subscribers roaming to neighboring countries, leading to false positives and legitimate messages being discarded due to incorrect distance calculations between neighboring countries, which share a border but have significantly shorter travel times than assumed.

Method used

A method and system that utilizes a network gateway to perform speed checks by determining the geographic reference locations of a mobile device's origin and destination, calculating estimated transit time using a half-masen formula, and comparing it with location age information to validate the legitimacy of ingress signaling messages.

Benefits of technology

This approach effectively reduces false positives by ensuring that only legitimate messages are forwarded to the Home Location Register, thereby enhancing security and preventing fraudulent activities in mobile communication networks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method for performing a speed check for an outbound subscriber roaming to a neighboring country includes receiving, by a network gateway associated with a home country, an ingress signaling message for a mobile device roaming in the neighboring country from an MSC associated with the neighboring country, sending a query request message to an HLR in the home country containing a mobile subscriber identifier, and receiving a query response message containing location elapsed time information and cell identifier information corresponding to the mobile subscriber identifier. The method further includes determining two latitude-longitude locations utilizing the cell identifier information and a country code identifier included in the ingress signaling message, determining an estimated transit time of the mobile device using the two latitude-longitude reference locations, and comparing the location elapsed time information to the estimated transit time to determine whether the ingress signaling message should be forwarded to the HLR.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Claiming priority This application claims the benefit of priority to U.S. Patent Application No. 17 / 319,023, filed May 12, 2021, the disclosure of which is incorporated by reference in its entirety herein.

[0002] Technical Field The subject matter described herein relates to fraud prevention in mobile communication networks. More particularly, the subject matter described herein relates to a method, system, and computer-readable medium for performing speed checks for outbound subscribers roaming to neighboring countries. Summary of the Invention [Problem to be solved by the invention]

[0003] background Mobile communication networks are expanding and utilize a multitude of technologies and interconnections to carry signaling messages used to establish communication through the network. The home network element of the core network is typically not connected to the foreign or visited network. In some cases, speed checks are utilized to determine if a subscriber has been unable to travel between two locations within a specified period of time, and currently the origin and destination of a subscriber's travel can be identified using the latitude and longitude of the capital city of the country identified by the country code in the global title address. However, such methods result in false positives (e.g., inaccurate assignment of suspicious ingress messages by traditional speed checks) when a neighboring country allows for false registrations in the network. Therefore, speed checks are typically not performed when neighboring countries are involved. Separate databases of neighboring countries are maintained on many network gateways, such that when a message is received from one of the listed neighboring countries, the traditional speed check algorithm is disabled, thereby allowing messages from the neighboring country to enter the home network without any validation or checks. As an example, if a subscriber is in Punjab, India and then travels to Lahore, Pakistan, the distance between these two cities is approximately 50 kilometers and can be traveled in less than 60 minutes. However, the network is currently configured to use logic that would currently calculate the distance between Delhi, India and Islamabad, Pakistan to be approximately equal to 450 kilometers. Notably, this distance of 450 kilometers cannot be traveled in less than 60 minutes. Therefore, the current system would evaluate this distance and subsequently discard the received message. Therefore, in scenarios involving neighboring countries, even if the distance traveled between the borders may be small and the time taken is less, legitimate messages may be discarded if the existing / current speed check logic is applied. False positives, especially involving neighboring countries, are a major concern for all firewall and gateway vendors in the market today.

[0004] Therefore, what is needed is a method, system, and computer readable medium for performing a speed check for a subscriber roaming to a neighboring country. [Means for solving the problem]

[0005] overview The subject matter described herein includes methods, systems, and computer-readable media for performing a speed check for an outbound subscriber roaming to a neighboring country. One method includes receiving, by a network gateway associated with a home network located in the home country, an ingress signaling message for a mobile device roaming in the visited network from a mobile switching center (MSC) associated with a visited network located in a foreign country neighboring the home country, sending a query request message to a home location register (HLR) in the home network, the query request message including a mobile subscriber identifier associated with the mobile device, and receiving a query response message including age of location information and cell identifier information corresponding to the mobile subscriber identifier. The method further includes determining a first geographic reference location using the cell identifier information and determining a second geographic reference location using a country code identifier included in the ingress signaling message, determining an estimated transit time of the mobile device using the first geographic reference location and the second geographic reference location, comparing the location elapsed time information to the estimated transit time and determining whether the ingress signaling message should be forwarded to the HLR.

[0006] In at least one embodiment of the method of the present disclosure, the ingress signaling message includes a location update message or a send authentication identification (SAI) message.

[0007] In at least one embodiment of the method of the present disclosure, the inquiry request message is a mobile application part (MAP) AnyTimeInterrogation message (ATI) request message and the inquiry response message is a MAP ATI response message.

[0008] In at least one embodiment of the method of the present disclosure, the estimated transit time is determined by using the first geographic reference location and the second geographic reference location as inputs to a haversine formula.

[0009] In at least one embodiment of the method of the present disclosure, in response to determining that the estimated transit time value is less than the elapsed time information of the location, the ingress signaling message is forwarded by the network gateway to the HLR.

[0010] In at least one embodiment, a method of the present disclosure includes rejecting, by the network gateway, the ingress signaling message in response to determining that the estimated transit time value is greater than the elapsed time information of the location.

[0011] In at least one embodiment, the method of the present disclosure includes transmitting, by the network gateway, a warning message to a network operator in response to determining that the estimated transit time value is greater than the elapsed time information for the location.

[0012] A system for performing a speed check for an outbound subscriber roaming to a neighboring country includes a network gateway including at least one processor, the network gateway being associated with a home network located within the home country, and the system further includes a location mapping database for storing geographically referenced position data mapped to a plurality of cell identifiers. The system further includes a speed check engine in the network gateway implemented with at least one processor, the speed check engine for receiving an ingress signaling message from an MSC associated with a visited network located in a foreign country adjacent to the home country for a mobile device roaming in the visited network, sending a query request message to an HLR in the home network including a mobile subscriber identifier associated with the mobile device, receiving a query response message including location elapsed time information and cell identifier information corresponding to the mobile subscriber identifier, determining a first geographical reference location using the cell identifier information and determining a second geographical reference location using a country code identifier included in the ingress signaling message, determining an estimated transit time of the mobile device using the first geographical reference location and the second geographical reference location, and determining whether the ingress signaling message should be forwarded to the HLR by comparing the location elapsed time information with the estimated transit time.

[0013] In at least one embodiment of the system of the present disclosure, the ingress signaling message includes a location update message or a transmission authentication identification (SAI) message.

[0014] In at least one embodiment of the system of the present disclosure, the inquiry request message is a Mobile Application Part (MAP) AnyTimeInterrogation Message (ATI) request message and the inquiry response message is a MAP ATI response message.

[0015] In at least one embodiment of the system of the present disclosure, the estimated transit time is determined by using the first geographic reference location and the second geographic reference location as inputs to a haversine formula.

[0016] In at least one embodiment of the system of the present disclosure, in response to determining that the estimated transit time value is less than the elapsed time information of the location, the ingress signaling message is forwarded by the network gateway to the HLR.

[0017] In at least one embodiment of the system of the present disclosure, the network gateway is configured to reject the ingress signaling message in response to determining that the estimated transit time value is greater than the elapsed time information of the location.

[0018] In at least one embodiment of the system of the present disclosure, the network gateway is configured to send a warning message to a network operator in response to determining that the estimated transit time value is greater than the elapsed time information for the location.

[0019] The subject matter described herein may be implemented in the form of hardware, software, firmware, or any combination thereof. Thus, the terms "function", "node", or "engine" as used herein refer to hardware, which may also include software and / or firmware components, for implementing the features described. In one exemplary implementation, the subject matter described herein may be implemented using a non-transitory computer-readable medium having stored thereon computer-executable instructions that, when executed by a processor of a computer, control a computer to perform steps. Exemplary computer-readable media suitable for implementing the subject matter described herein include non-transitory computer-readable media, such as disk memory devices, chip memory devices, programmable logic devices, and application specific integrated circuits. In addition, the computer-readable medium implementing 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.

[0020] To describe the subject matter described herein for performing speed checks for outbound subscribers roaming to neighboring countries, the following terminology is used: ● Outbound roaming subscriber: A home network subscriber who is roaming within a foreign network (eg, a visited or foreign network).

[0021] ● Inbound roaming subscriber: A foreign network mobile subscriber who is roaming into the home network of a mobile network operator (MNO).

[0022] ● Home Network: The network operated by a mobile network operator with which a mobile subscriber has a subscriber subscription.

[0023] ● Visited Network: A foreign network located within the foreign country in which a visiting mobile subscriber is roaming.

[0024] ● location update (LU): A Mobile Application Part (MAP) signaling message used to update the subscriber's location in the HLR.

[0025] ● Send Authentication Information (SAI) Request: A MAP signaling message used to authenticate a subscriber using HLR information.

[0026] ● international mobile subscriber identity (IMSI): A unique identity for a mobile subscriber. [Brief description of the drawings]

[0027] [Figure 1] 1 is an image of an exemplary map of two bordering countries according to one embodiment of the subject matter described herein. [Diagram 2] FIG. 2 is a block diagram illustrating an example network for performing speed checks for outbound subscribers roaming to a neighboring country using a network gateway according to one embodiment of the subject matter described herein. [Figure 3A] 1 is a signaling diagram illustrating communication of messages for performing a speed check for an outbound subscriber roaming to a neighboring country according to one embodiment of the subject matter described herein. [Figure 3B] 1 is a signaling diagram illustrating communication of messages for performing a speed check for an outbound subscriber roaming to a neighboring country according to one embodiment of the subject matter described herein. [Figure 4]FIG. 2 is a block diagram of a cell identifier mapping database table utilized to perform speed checks for outbound subscribers roaming to neighboring countries according to one embodiment of the subject matter described herein. [Diagram 5] 4 is a flowchart illustrating an example process for performing a speed check for an outbound subscriber roaming to a neighboring country in accordance with one embodiment of the subject matter described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0028] Detailed Description A method, system, and computer readable medium are disclosed for implementing a speed check security measure for a mobile subscriber roaming into a neighboring country. Specifically, the subject matter of the present disclosure presents a method and system for implementing an improved speed check security measure implemented at a network gateway and / or firewall node when a mobile subscriber roams outside of a home network and into a visited network located in a neighboring country.

[0029] As described herein, an improved speed check includes a security measure used to mitigate the occurrence of false positives that occur when a user equipment (e.g., a mobile device) owned by a mobile subscriber roams from a first home country to a second neighboring country. In some embodiments, the speed check (e.g., time distance check) is a security measure that determines whether a mobile subscriber is physically capable of moving or roaming from a first country (i.e., a country associated with the mobile subscriber's home network) to a second neighboring country (i.e., a foreign country adjacent to the home country) within an estimated transit time (i.e., a predefined amount of transit time determined to be likely or possible). Specifically, the speed check security measure may be applied to outbound roaming mobile subscribers leaving their home network within a home country and is configured to use a cell identifier of the most recent cell or cell tower that can be compared to a capital location corresponding to the current country in which the mobile subscriber is actually located. The speed check security measure further determines whether the mobile subscriber is physically capable of moving from the most recent cell location to the current capital location within an estimated amount of time. In some embodiments, the determination may be accomplished by maintaining a location mapping database in the network gateway (or firewall) that maps geographic reference locations (e.g., longitude and latitude reference locations) to cell identifiers. Specifically, if a mobile subscriber travels from a first country to a second neighboring country and the estimated transit time is found to be less than the location elapsed time information (as described below), then the network gateway will detect and flag the current ingress signaling message (e.g., SAI / LU message) from the visited network in the neighboring foreign country as potentially suspicious.

[0030] For example, after the speed check engine calculates that the minimum estimated transit time required for a mobile subscriber to travel from reference point A (in the home network within the home country) to reference point B (in the visited network within the neighboring country) is 2 hours (i.e., 120 minutes), the speed check engine then subsequently determines whether the minimum estimated transit time is greater than a location age parameter that represents a value of the duration of the subscriber's last known activity within the home network (and home country). For example, if a SAI / LU message is received by the network gateway from the visited location at 10:00 AM and it is determined that the location age (as indicated in the ATI response received by the network gateway) is 30 minutes (which means that according to the home VLR, the mobile subscriber was last active within the home network approximately 30 minutes ago), then a problem is detected when it is determined that the SAI / LU message was received from a location (e.g., a capital city) that takes at least 2 hours to travel from reference point A. Ideally, the mobile subscriber should have started traveling from reference point A in the home network before 8:00AM to reach reference point B according to the minimum travel time requirement. However, since the subscriber likely left reference point A in the home network 30 minutes ago, and since the location elapsed time (i.e., 30 minutes) is significantly less than the estimated transmit time of 2 hours, the SAI / LU message would be designated as invalid. In contrast, if the time value of the location elapsed time (i.e., the time elapsed since the last detected activity in the home network) was greater than the estimated transit time elapsed to traverse between reference point A and reference point B (e.g., a location in the capital city of the visited network), the SAI / LU message would have been valid and would have been accepted in the home network.

[0031] As an example, FIG. 1 shows a map 100 of two exemplary neighboring countries, India (i.e., home country) and Pakistan (i.e., adjacent foreign country). As used herein, "neighboring countries" or "neighboring countries" are two nations or countries that share a geographical border. As shown in FIG. 1, the map 100 includes two Indian cities, Delhi (see pin marker 101) and Amritsar (see pin marker 102). Similarly, the map 100 in FIG. 1 shows two of Pakistan's cities, Lahore (see pin marker 103) and Islamabad (see pin marker 104). Notably, some conventional speed checks / methods utilize both the longitude-latitude location information of the home capital (e.g., reference point A) and the adjacent foreign capital (e.g., reference point B) in determining the estimated transit time between the two networks. Functioning in this manner would result in a significant number of false positives (e.g., inaccurate designation of suspect ingress signaling messages (e.g., authentication and / or registration messages) by traditional speed checks). For example, if a mobile subscriber is registered and located in a home network in Amritsar 102 and then roams / moves to Lahore 103, the actual distance traveled between the two cities would be approximately 50 kilometers, which can be traversed in less than 60 minutes. However, the logic utilized in most existing speed check systems would instead calculate the distance between Delhi 101 and Islamabad 104 (i.e., the capital cities of neighboring countries) to be approximately 450 kilometers, regardless of the actual and / or approximate location of the mobile subscriber. Notably, this approximately 450-kilometer distance between the capital cities cannot be traveled in less than 60 minutes. Hence, traditional systems would improperly discard the first received SAI / LU request message. Therefore, in a neighboring country scenario, legitimate Transmission Authentication Information (SAI) request messages and / or Location Update (LU) request messages may be discarded (if existing speed check logic is applied) even though the distance traveled between the borders may be small and the time taken is much less.

[0032] FIG. 2 is a block diagram illustrating an example communication system 200 configured to facilitate communication of Signaling System No. 7 (SS7) or Global System for Mobile Communications (GSM) based signaling messages between its network nodes. As shown in FIG. 2, communication system 200 includes a home network 201 located in a first country (e.g., home country X) and a visited network 202 (e.g., a "foreign network" or "non-home network") located in a second country (e.g., neighboring foreign country Y). Home network 201 includes user equipment (UE) 212, base stations 203, a mobile switching center (MSC) 204, a home location register (HLR) 206, and a network gateway 208 (e.g., a signal transfer point (STP), a firewall node, and the like).

[0033] In some embodiments, the user equipment 212 may include any device directly utilized by a mobile subscriber end user to receive or transmit data, such as a handheld smartphone, a GSM mobile station, a laptop computer equipped with a mobile broadband adapter, or any other similar device or user entity. In some embodiments, the user equipment 212 is initially roaming within a home network 201 in country X and is communicatively connected (e.g., attached) to the MSC 204 via a base station 203. For example, the user equipment 212 may utilize an air interface to establish a wireless connection with the base station 203, which in turn is connected to the MSC 204. As used herein, the base station 203 may include a base station subsystem (BSS), a base station controller (BSC), a base transceiver station (BTS), a UTMS terrestrial radio access network (UTRAN), and / or the like.

[0034] In some embodiments, the MSC 204 serves as a control node for a third generation (3G) access network (e.g., the home network 201) and manages the network switching subsystem elements of the home network 201. For example, the MSC 204 is responsible for monitoring and managing the UE attachment and detachment processes. In particular, the MSC 204 is responsible for selecting a network gateway to serve the user equipment 212 at initial attachment and during intra-network handover. The MSC 204 is also responsible for authenticating the mobile subscriber associated with the user equipment 212 (e.g., by interacting with the HLR 206). In particular, the MSC 204 is communicatively coupled to the HLR 206, which comprises a master subscription database for the subscriber user's home network 201. The HLR 206, among other things, maintains a record of the user equipment devices that are registered with the home network 201. In some embodiments, the HLR 206 serves as a main subscriber database used in the 3G network and is configured to provide mobile subscriber details to other entities in the communication system 200. The use of the HLR 206 allows the network to grant or deny user access to different services depending on the status of the mobile subscriber. As described below, the HLR 206 may be configured to store cell identifiers and location age information that is mapped to mobile subscriber identifiers.

[0035] In some embodiments, both the MSC 204 and the HLR 206 are communicatively coupled to a network gateway 208. The network gateway 208 may include a router device or element (e.g., STP) and / or a firewall node configured to relay signaling messages into or out of the home network 201. In particular, the network gateway 208 is configured to receive Mobile Application Part (MAP) messages, including Transmission Authentication Information (SAI) request messages and Location Update (LU) request messages, Any Time Interrogation (ATI) request messages, and the like. The network gateway 208 is further configured to send Transaction Capabilities Application Protocol (TCAP) error messages to an MSC or VLR in the visited network 202 in the foreign country Y.

[0036] 2 further illustrates a visited network 202 located in a foreign country (i.e., a country separate and distinct from country A) and includes an MSC / VLR 210 and a base station 215. The MSC 210 may be similar in form and general functionality to the MSC 204 (except that it serves the visited network 202 instead of the home network 201). Similarly, the base station 215 is similar in form and function to the base station 203 and is configured to establish wireless connections with UEs roaming into the visited network 202 (e.g., roaming UE 212′).

[0037] As used herein, the term "Location Update Request Message" refers to a signaling message for updating the location of a mobile subscriber in a telecommunications network. The "Location Update Request Message" is intended to include an SS7-based Location Update (LU) message, or any other signaling message or packet for updating the location of a mobile subscriber in a telecommunications network at the network. In some embodiments, the Location Update Request Message is a message used between the MSC and the HLR for the purpose of updating the location of the mobile subscriber's user equipment 212 in the home network 201. The MSC 210 can also direct the Location Update Request Message message to the network gateway 208 in response to the user equipment 212 roaming in the visited network 202. Similarly, the SAI message is intended to include a MAP-based Subscriber Authentication Information Request Information message, or any other signaling message for authenticating a mobile subscriber. In some embodiments, the SAI message is used between the MSC and the network gateway 208 for the purpose of authenticating the mobile subscriber's user equipment 212 as it is activated or enters the visited network 202.

[0038] Notably, each of the location update request message and the SAI message includes an identifier, such as an IMSI, a Mobile Station International Subscriber Directory Number (MSISDN), and / or an International Mobile Equipment Identity (IMEI), that identifies the user equipment 212 and / or its mobile subscriber. The location update request message and the SAI message may also include a VLR global title (GT) address identifier that identifies the visited network VLR supporting the message source. Additionally, a mobile country code (MCC) identifier that identifies the country associated with the foreign MSC / VLR may be extracted by the network gateway 208 from the VLR GT address identifier included in the location update request or SAI message. In some embodiments, the location update request message and the SAI message may also include a mobile network code (MNC) identifier.

[0039] As shown in FIG. 2, the network gateway 208 may include one or more processors 214, such as a central processing unit (e.g., single core or multiple processing cores), microprocessor, microcontroller, network processor, application-specific integrated circuit (ASIC), or the like. The network gateway 208 may also include memory 216. The memory 216 may include random access memory (RAM), flash memory, magnetic disk storage drive, and the like. In some embodiments, the memory 216 may be configured to store a speed check engine 218 and a location mapping database 220. In particular, the speed check engine 218 in the memory 216, when executed by the one or more processors 214, may perform various monitoring, management, and / or repair functionalities for the network gateway 208. In some embodiments, the location mapping database 220 may reside locally within the network gateway 208, as shown in FIG. 1. Alternatively, the location mapping database 220 may be contained in a separate and distinct database host that may be accessed by the network gateway 208. In some embodiments, the location mapping database 220 contains geographic location dates that are mapped to cell identifiers, thereby providing an accuracy of up to a 3-5 kilometer radius.

[0040] In some embodiments, the speed check engine 218 may include algorithms and / or software components responsible for extracting the VLR GT address and / or country code from the LU message and / or SAI message received by the network gateway 208. As described in more detail below, the network gateway 208 may receive an ingress SAI / LU message from the MSC / VLR 210 in response to the user equipment 212′ entering or being activated within the visited network 202 in neighboring country B. For purposes of this example, it is understood that the user equipment 212 was originally located in country X (e.g., attached to the home network 201) at some point before entering the visited network 202 in neighboring country Y.

[0041] In response to receiving the SAI / LU message, the network gateway 208 launches a speed check engine 218 configured to extract the VLR GT address from the received message and then obtain the MCC from the VLR GT address information. The speed check engine 218 may be further configured to use the MCC to determine whether the source MSC / VLR is located in a foreign country (e.g., by comparing the MCC with a country code associated with the home network 201). If the speed check engine 218 determines that the source MSC / VLR is located in a neighboring country, the speed check engine 218 may determine the latitude and longitude location of the neighboring country's capital city (e.g., by reference to a database containing a mapping of country codes and latitude and longitude location data). The speed check engine 218 is then configured to generate an ATI request message including an IMSI corresponding to the source mobile subscriber user equipment. In particular, the IMSI may be included in the SAI / LU message originally received by the network gateway 208.

[0042] In response to receiving the ATI request message from the network gateway 208, the HLR 206 is configured to generate an ATI response message that includes stored cell ID information and location age information associated with the user equipment 212. In some embodiments, the location age information is a value measured in minutes (and / or seconds) that represents the amount of time that has elapsed since the last activity (e.g., a location update caused by roaming into a visited network) performed by the mobile subscriber and / or mobile device. In some embodiments, the HLR 206 is configured with a location update time (i.e., location age parameter) that defines the last received location update message and / or last known activity of the mobile subscriber. This location age value should be greater than the estimated time it will take to travel to the visited network (as described in more detail below). The HLR 206 may then transmit the generated ATI response message to the network gateway 208 that includes the cell identifier information and the location age information.

[0043] In response to receiving the ATI response message, the network gateway 208 (and / or the speed check engine 218) extracts the cell identifier information from the ATI response message and then accesses the location mapping database 220 to obtain corresponding / mapped geographic reference location information, such as latitude and longitude location information (as described in more detail below). Additionally, the network gateway 208 (and / or the speed check engine 218) can use the country code identifier to access a database containing geographic reference location information corresponding to the capital cities of neighboring countries. Using these two geographic reference points as inputs to an algorithm (e.g., a haversine formula), a distance value is determined. The network gateway 208 (and / or the speed check engine 218) is configured to determine an estimated transit time (as described further below).

[0044] Once the estimated transit time is calculated, the rate check engine 218 can access the location mapping database 220 and compare the estimated transit time value to the location elapsed time parameter / value contained within the ATI response message. If the rate check engine 218 determines that the estimated transit time is less than the location elapsed time value, then the rate check engine 218 can designate or tag the ingress SAI / LU signaling message received from the MSC 210 as potentially suspicious. In contrast, if the rate check engine 218 determines that the estimated transit time is greater than or equal to the location elapsed time value, then the rate check engine 218 can designate or tag the ingress SAI / LU signaling message received from the MSC 210 as safe, and then forward the ingress signaling message to the HLR 206.

[0045] 3A and 3B show signaling diagrams illustrating communication of messages for performing a speed check for an outbound subscriber roaming to a neighboring country according to one embodiment of the subject matter described herein. Referring to FIG. 3A, a user equipment (e.g., a mobile device) may enter or be activated within a home network of an associated mobile subscriber (e.g., in the home country). In response, the user equipment transmits an attachment request message to the home network MSC 204 via a base station (not shown) (e.g., see block 302). After receiving the attachment request message, the home network MSC 204 generates and transmits a location update message 304 to the HLR 206 in the home network (located in the home country).

[0046] After sending the LU message 304 to the HLR 206, the MSC 204 records when the LU message 304 was sent and / or the timestamp of the UE attachment (see block 306). Similarly, the HLR 206 creates a record indicating the MSC 204 as the MSC serving the attached user equipment (i.e., stores the MSC identification and / or address information that is mapped to the user equipment identifier).

[0047] At some future time after the attachment of the user equipment in the home network, the user equipment enters a second country (e.g., neighboring foreign country Y) adjacent to the home country containing the home network. For example, the mobile subscriber roams into a visited network associated with country Y that is located separately from the mobile subscriber's home network (e.g., in home country "X") but adjacent thereto. In a similar manner as described above, the user equipment sends an attachment request message to the foreign MSC / VLR 210 via a base station (not shown). In response to receiving the attachment request message, the visited MSC / VLR 210 (which may also be embodied as a separate MSC and / or VLR) generates an SAI and / or LU message as part of the authentication and location update procedure. Furthermore, the foreign MSC / VLR 210 may then send the generated SAI / LU message 305 to the network gateway 208 (which has a local mapping database provisioned with travel time information; see box 303). After receiving the SAI / LU message 305, the network gateway 208 parses the SAI / LU message 305 and extracts (and stores) the contained VLR GT address information and mobile subscriber identity information (e.g., IMSI information) (see block 312). In particular, the network gateway 208 (and / or the speed check engine) first obtains a Mobile Country Code (MCC) from the VLR GT address contained in the received SAI / LU message 305 to identify the foreign country in which the UE is located. In some embodiments, the network gateway 208 can utilize the speed check engine to compare the extracted MCC with a predefined home country code value (i.e., corresponding to the country hosting the network gateway) to determine whether the visited foreign country is a neighboring country to the home network country. If the visited foreign country is determined to be a neighboring country, the speed check engine performs the following improved speed check:

[0048] At block 314, the network gateway 308 detects that the user equipment has roamed from the home network to a visited network located in a neighboring country Y. In response, the network gateway 208 is configured to initiate and send an ATI request message 316 to the HLR 206. In some embodiments, the network gateway 308 inserts a mobile subscriber identifier (e.g., IMSI) associated with the roaming UE and / or mobile subscriber into the ATI request message 316. In some embodiments, the network gateway 208 obtains an address or identity associated with the HLR 206 by extracting data from the received ingress SAI / LU message. In some embodiments, the SAI / LU message includes an IMSI or called party address (CdPA) parameter that can be used to access the mapped HLR identity. After receiving the ATI request message 316, the HLR 206 uses the mobile subscriber identity (e.g., IMSI) information included in the ATI request message 316 to locate stored cell identifier information associated with the most recent serving cell and / or cell tower (see block 317). Additionally, the HLR 206 may use the IMSI information to obtain location age information corresponding to the roaming UE.

[0049] After obtaining the cell identifier information and location age information, the HLR 206 may then provide the obtained information to the network gateway 208 via an ATI response message 318 .

[0050] With reference to FIG. 3B, the network gateway 208 may extract the cell identifier information and location age information from the ATI response message 318 (see block 319) and query a location mapping database. In some embodiments, the location mapping database (not shown) resides locally on and / or is accessible by the network gateway 208. One exemplary location mapping database accessible by the network gateway 208 and / or the speed check engine 218 is shown as database table 400 in FIG. 4. With reference to FIG. 4, the local mapping database table 400 is represented as a grid table having columns 401-408. Although the database table 400 is shown as having eight columns, any number of columns may be used in the database without departing from the scope of the subject matter of this disclosure. As shown in FIG. 4, column 401 is a "sample schema" or city list column. Column 402 is an MCC column. Columns 403-404 are MMC and LAC columns, respectively. Column 405 contains cell identifier information. Additionally, columns 406-407 each contain longitude and latitude information that is mapped to a corresponding cell identifier in column 405. In particular, the cell identifier information contained in column 405 is mapped to longitude and latitude location information in columns 406-407. Finally, column 408 contains last update information (e.g., a time value indicating when the database was last updated). Although only two cities are shown in database table 400, additional cities and neighboring countries may be shown without departing from the scope of the subject matter of this disclosure. It is understood that network gateway 208 is also configured to utilize a separate database that contains capital city latitude-longitude information that is mapped to MCC, MNC, and / or other country codes in estimating the geographic location of the source of original SAI / LU message 305.

[0051] Returning to FIG. 3B, network gateway 208 (and / or its speed check engine) cross-references entries in a location mapping database using the cell identifier contained within ATI response message 318. In particular, the cell identifier is compared to entries in column 405 (as shown in FIG. 4) until a matching cell identifier value is found. If a matching cell identifier is found, the speed check engine is configured to obtain corresponding mapped geographic location data, such as longitude and latitude location data contained within columns 406-407 (see, e.g., block 320). After obtaining the longitude and latitude location data, the speed check engine is configured to designate this combination of location data as "Reference Point A."

[0052] In addition to determining this first reference point, the network gateway 208 is also configured to determine a second reference point (e.g., "reference point B") corresponding to a latitude-longitude position location of the capital city of the neighboring country into which the user equipment has roamed. For example, the network gateway 208 is configured to utilize the MCC in the initially received SAI / LU request message 305 to determine the identity of the neighboring country. Using the MCC code, the network gateway 208 will access a database of capital city locations (not shown) and obtain the corresponding longitude and latitude location information that is mapped to the MCC. In particular, the network gateway 208 is configured to designate the longitude and latitude location information associated with the capital city of the neighboring country as "reference point B."

[0053] Once both reference point A and reference point B are specified, the network gateway 208 is configured to use these two reference points as inputs for a haversone formula (which may be performed by a speed check engine). After processing the two reference points, the speed check engine returns the distance (e.g., miles or kilometers) that exists between the two reference points. The network gateway may then be configured to determine an estimated transit time between the two reference points. The estimated transit time may represent the shortest amount of time (e.g., in minutes and / or hours) that a mobile subscriber (and UE) can reasonably and / or possibly travel from one reference point to the other. In some embodiments, the network gateway 208 is configured to access predefined average speed values ​​(e.g., miles / hour, kilometers / hour, etc.) stored locally on the network gateway 208 (e.g., a local database) and / or on a non-local database accessible by the network gateway 208. For example, the network gateway (and / or speed check engine) may be configured to query a local database or another network element to request a vSTPSccpOptions managed object (MO) parameter that includes an average speed parameter (e.g., a predefined and / or standard air travel speed). This obtained average speed parameter may be used in conjunction with the previously determined distance to calculate an estimated travel / transit time.

[0054] After the estimated transit time value is calculated, the speed check engine is configured to compare the estimated transit time with the location elapsed time information obtained from the ATI response message (e.g., see block 322). If the speed check engine determines that the estimated transit time is less than or equal to the location elapsed time information, then the speed check engine will establish that the speed check is successful (e.g., see block 325). In response to the speed check engine determining that the speed check is successful, the network gateway 208 and / or the speed check engine are configured to forward a SAI / LU request message 326 (i.e., the same message as the original SAI / LU message 305) to the HLR 206.

[0055] If the speed check engine instead determines that the estimated transit time is greater than the location elapsed time information, then the speed check engine will establish that the speed check is unsuccessful (e.g., see block 328). In response to the speed check engine determining that the speed check is unsuccessful, the network gateway 208 and / or its speed check engine is configured to reject, reject, and / or block the originally received SAI / LU request message 305. In some embodiments, the network gateway 208 may be configured to send a TCAP error message 330 to the MSC / VLR 210 in the neighboring country that originally sent the SAI / LU request message 305. Additionally, the network gateway 208 may also be configured to send a warning message to the network operator or some other security network element in the home network.

[0056] 5 is a flow chart illustrating an example process or method 500 for performing a speed check for an outbound subscriber roaming to a neighboring country in accordance with one embodiment of the subject matter described herein. In some embodiments, the method 500 illustrated in FIG. 5 is an algorithm stored in memory that, when executed by a hardware processor, performs steps 501-506. At block 501, an ingress signaling message is received for a mobile subscriber from an MSC located in a visited network in a neighboring foreign country. In some embodiments, the ingress signaling message received from the MSC is an SAI message or an LU message.

[0057] At block 502, a query request message containing a mobile subscriber identifier associated with the mobile subscriber is sent to an HLR located in the mobile subscriber's home network. In some embodiments, the network gateway accesses an internal database to determine an HLR serving the roaming mobile subscriber. The network gateway may determine an address for the identification of the HLR by extracting the mobile subscriber identifier, such as an IMSI, from an ingress signaling message received from the foreign network MSC. The network gateway may then generate an ATI request message containing the mobile subscriber identifier (e.g., IMSI). The network gateway may also utilize the mobile subscriber identifier to determine the identity or address of the HLR. Using this address information, the network gateway may direct the ATI request message to an HLR in the mobile subscriber's home network.

[0058] In block 503, an inquiry response message is received by the network gateway. In response to receiving the ATI request message, the HLR utilizes the mobile subscriber identifier to identify the cell (and / or cell tower) that most recently provided support to the mobile subscriber's UE in the home network. The HLR also obtains location age information corresponding to the UE. After obtaining the above cell identifier information and location age information, the HLR generates an ATI response message including this information. The HLR then sends the ATI response message to the network gateway.

[0059] At block 504, the cell identifier information is utilized to determine a first geographic reference location (e.g., a first latitude-longitude reference location) and a second geographic reference location (e.g., a latitude-longitude reference location). In some embodiments, the speed check engine extracts the cell identifier from the ATI response message and cross-references the cell identifier with the latitude-longitude values ​​contained in the location mapping database. The speed check engine may also use a country code identifier contained in the original ingress SAI / LU message to obtain latitude-longitude data corresponding to the capital city of the neighboring country into which the mobile device has roamed. In particular, the speed check engine may be configured to designate a location corresponding to the cell identifier as the first geographic reference location and a location corresponding to the capital city of the neighboring country as the second geographic reference location.

[0060] In block 505, the first geographic reference location and the second geographic reference location are used to determine an estimated transit time for the mobile device. In some embodiments, the speed check engine uses the first and second geographic reference locations as inputs for a haversine formula that outputs a distance. The speed engine further utilizes the calculated distance and a movement-speed value from the vSTPSccpOptions MO (e.g., a speed algorithm) to calculate an estimated transit time between the two geographic reference locations.

[0061] In block 506, the ingress signaling message is compared to the location elapsed time information with the estimated transit time to determine whether it should be forwarded to the HLR. In some embodiments, the rate engine is configured to compare the location elapsed time information obtained from the ATI response message with the estimated transit time. If the rate engine determines that the location elapsed time value is greater than the estimated transit time, then the network gateway will forward the original SAI / LU message to the HLR. In contrast, if the rate engine determines that the location elapsed time value is less than the estimated transit time, then the network gateway will designate the original ingress SAI / LU message as a suspicious ingress message. If the ingress signaling message is designated as a suspicious ingress message, the rate check engine and / or the network gateway can reject or discard the ingress signaling message, thereby preventing any potentially fraudulent activity. Furthermore, if the ingress signaling message is designated as a suspicious ingress message, the rate check engine can also issue a warning signal or message to the network operator. The rate engine and / or the network gateway may also send a TCAP error message to the MSC that originally sent the ingress signaling message to the network gateway.

[0062] It will be understood that various details of the presently disclosed subject matter may be changed without departing from the scope of the presently disclosed subject matter. Further, the above description is by way of example only and not by way of limitation.

Claims

1. 1. A method for performing a speed check for an outbound subscriber roaming to a neighboring country, the method comprising: receiving, by a network gateway associated with a home network located within a home country, from a mobile switching center (MSC) associated with a visited network located within a foreign country adjacent to the home country, an ingress signaling message regarding a mobile device roaming within the visited network; sending a query request message to a home location register (HLR) in the home network, the query request message including a mobile subscriber identifier associated with the mobile device; receiving a query response message containing location age information and cell identifier information corresponding to the mobile subscriber identifier; determining a first geographical reference location using said cell identifier information and determining a second geographical reference location using a country code identifier included in said ingress signaling message; determining an estimated transit time of the mobile device using the first geographic reference location and the second geographic reference location; comparing the location elapsed time information to the estimated transit time to determine whether the ingress signaling message should be forwarded to the HLR.

2. The method of claim 1 , wherein the ingress signaling message comprises a location update message or a send authentication identification (SAI) message.

3. 2. The method of claim 1, wherein the inquiry request message is a mobile application part (MAP) AnyTimeInterrogation message (ATI) request message and the inquiry response message is a MAP ATI response message.

4. The method of claim 1 , wherein the estimated transit time is determined by using the first geographic reference location and the second geographic reference location as inputs to a haversine formula.

5. 2. The method of claim 1, comprising forwarding, by the network gateway, the ingress signaling message to the HLR in response to determining that the estimated transit time value is less than elapsed time information for the location.

6. 2. The method of claim 1, further comprising: rejecting, by the network gateway, the ingress signaling message in response to determining that the estimated transit time value is greater than elapsed time information for the location.

7. 2. The method of claim 1, comprising sending, by the network gateway, a warning message to a network operator in response to determining that the estimated transit time value is greater than elapsed time information for the location.

8. 1. A system for performing a speed check for an outbound subscriber roaming to a neighboring country, the system comprising: a network gateway including at least one processor, the network gateway being associated with a home network located within a home country; The system comprises: a location mapping database for storing geographically referenced position data mapped to a plurality of cell identifiers; a speed check engine in the network gateway implemented with the at least one processor; the speed check engine is for receiving an ingress signaling message from a mobile switching center (MSC) associated with a visited network located in a foreign country adjacent to the home country for a mobile device roaming in the visited network; sending a query request message to a home location register (HLR) in the home network, the query request message including a mobile subscriber identifier associated with the mobile device; receiving a query response message including elapsed time of location information and cell identifier information corresponding to the mobile subscriber identifier; determining a first geographic reference location using the cell identifier information and determining a second geographic reference location using a country code identifier included in the ingress signaling message; determining an estimated transit time of the mobile device using the first geographic reference location and the second geographic reference location; and determining whether the ingress signaling message should be forwarded to the HLR by comparing the elapsed time of location information with the estimated transit time.

9. 10. The system of claim 8, wherein the ingress signaling message comprises a location update message or a send authentication identification (SAI) message.

10. 9. The system of claim 8, wherein the inquiry request message is a mobile application part (MAP) AnyTimeInterrogation message (ATI) request message and the inquiry response message is a MAP ATI response message.

11. The system of claim 8 , wherein the estimated transit time is determined by using the first geographic reference location and the second geographic reference location as inputs to a haversine formula.

12. The system of any one of claims 8 to 11, wherein in response to determining that the estimated transit time value is less than the location elapsed time information, the ingress signaling message is forwarded by the network gateway to the HLR.

13. The system of any one of claims 8 to 11, wherein the network gateway is configured to reject the ingress signaling message in response to determining that the estimated transit time value is greater than elapsed time information for the location.

14. The system of any one of claims 8 to 11, wherein the network gateway is configured to send a warning message to a network operator in response to determining that the estimated transit time value is greater than the elapsed time information for the location.

15. A computer program which, when executed by a processor of a computer, controls the computer to perform a method according to any one of claims 1 to 7.