Dynamically Variable Geofence Enforcement Based on Cellular Network Conditions
By dynamically adjusting the radius of the geofence and optimizing the configuration based on the cell network signal strength data, the alarm delay problem caused by signal fluctuations in the geofence service is solved, and the reliability and response speed of the service are improved.
Patent Information
- Application Number
- JP2024556288
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-03-21
- Filing Date
- 2023-03-07
- Publication Date
- 2025-04-14
AI Technical Summary
When providing geofencing services to mobile network devices, alarms triggered by geofencing entrance or exit events may be delayed or lost due to fluctuations in cell network connections, resulting in delays in customer action and even security risks.
By dynamically adjusting the radius of the geofence, the geofence configuration is optimized based on the cell network signal strength data to ensure more reliable alarm transmission in areas with better signal strength.
It effectively reduces the delay and loss of alarms caused by weakening of signals, improves the reliability and response speed of geofencing services, and reduces the security risks caused by delays.
Smart Images

Figure 2025510057000001_ABST
Abstract
Description
[Technical field]
[0001] TECHNICAL FIELD This disclosure relates generally to wireless communication networks and location-based services.
[0002] Geofencing is a technique whereby a virtual perimeter is established for monitoring the location of a device with respect to a geographic area. In geofencing, radio frequency identification (RFID), Wi-Fi, Global Positioning System (GPS) data, or cellular data is used to monitor the location of a location services enabled device. One or more actions can be defined, such as an alert that is triggered when a device is determined to have crossed the virtual perimeter established through geofencing. [Brief description of the drawings]
[0003] Aspects of the present disclosure may be better understood with reference to the following drawings. [Figure 1] FIG. 1 is a conceptual diagram of dynamically modifying a geofence based on observed conditions of a cellular network. [Diagram 2] FIG. 2 is a conceptual diagram of modifying an ongoing geofence to return to an originally configured geofence. [Diagram 3] FIG. 3 is a flow chart of example operations for implementing dynamically alterable geofences for devices connected to a cellular network. [Figure 4] FIG. 4 is a flow chart of example operations for modifying geofence parameters based on cellular network signal strength. [Diagram 5] FIG. 5 is a flow chart of example operations for reverting to original geofence parameters from the modified ones based on observed cellular network connectivity. [Figure 6] FIG. 6 is a flowchart of an example operation for creating and maintaining a heatmap showing signal strength of a cellular network. [Figure 7] FIG. 7 illustrates an example computer system with a dynamically changeable geofencing service. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0004] The following description includes example systems, methods, techniques, and program flows embodying aspects of the present disclosure. However, it is understood that the present disclosure may be practiced without these specific details. For example, the present disclosure refers to implementing dynamically changeable geofences for a software-defined wide area network (SD-WAN) edge router, where the edge router is a mobile / cellular router in an example example. Aspects of the present disclosure may also be applied to other devices that connect to a cellular network or a mobile / cellular router that is not configured as an SD-WAN edge router. In other examples, well-known instruction instances, protocols, structures, and techniques have not been shown in detail so as not to obscure the description.
[0005] Terminology
[0006] For efficiency and ease of description, this specification uses shorthand terminology related to cloud technology. When referring to the "cloud," the description is referring to the resources of a cloud service provider. For example, a cloud can encompass a cloud service provider's servers, virtual machines, and storage devices. In more general terms, cloud service provider resources accessible to a customer are resources owned / managed by a cloud service provider entity that are accessible via a network connection. Often, access is pursuant to an application programming interface or software development kit provided by the cloud service provider.
[0007] Use of the phrase "at least one" of a list preceding a list with the conjunction "and" should not be treated as an exclusive list and should not be construed as a list of categories having one item from each category, unless specifically stated otherwise. A phrase stated as "at least one of A, B, and C" can violate only one of the listed items, more than one of the listed items, and one or more of the listed items, as well as another unlisted item.
[0008] Overview
[0009] Effectively providing geofencing services to mobile network devices (e.g., mobile / cellular routers) can be challenging due to fluctuations in cellular network connectivity. Alerts generated from geofence enter / exit events can be delayed or missed due to poor or temporary loss of network connectivity at the location corresponding to the geofence. If a mobile network device crosses a geofence at a location with poor network connectivity, such as due to a temporary network outage, delivery of an alert indicating the exit / entry event to a service monitoring the location of the mobile network device across a cellular network can be delayed. Actions taken in response by a customer or other owner of the mobile network device to address the geofence crossing event can also be delayed as a result. In some instances, delays in alerts triggered by geofence entry or exit events can present a security issue.
[0010] A geofencing service is described herein for implementing geofences that are dynamically modifiable based on observed conditions of a cellular network. For geofencing provided for SD-WAN, the geofencing service can run as part of an SD-WAN controller to implement geofences for edge routers, including mobile / cellular routers. The geofencing service establishes a geofence having an initial configuration that includes a center location and a radius of the geofence relative to the center location. An alert sent to the geofencing service by a device crossing a geofence indicates two device locations captured by the device's location-based service (e.g., using GPS coordinates): the location where the alert was generated, which substantially corresponds to a site along the geofence, and the location where the alert was sent to the geofencing service across the cellular network. When the device has a sufficiently strong connection to the cellular network, the locations are expected to be substantially similar. Location differences indicative of a delay between alert generation and transmission, however, may be due to poor or no signal in the cellular network where the geofence was crossed. Once such a difference is identified, the geofencing service records an error case. A change in the geofence radius is triggered when a specified number of error cases (i.e., 1 to N error cases) are recorded. The geofencing service modifies the geofence radius based on available signal strength data such that the modified geofence corresponds to a site with improved signal strength of the cellular network.
[0011] After this first radius change, the geofencing service determines network connectivity based on a similar analysis of the device location between alert generation and transmission, and identifies delays in transmission of internal alerts at the site that correspond to multiple internally tracked “shadow” geofences. These geofences are considered shadow geofences because they overlay the actual implemented geofence, but are for internal use by the geofencing service, and are not presented to or configured by the customer. The shadow geofences are configured with a radius that may be between the modified geofence radius value and the initial geofence radius, so that subsequently triggered geofence changes work to return the geofence radius to or closer to that specified in the initial geofence configuration. When the device crosses the shadow geofence and triggers an alert to the geofencing service, if the change in device location between alert generation and transmission is minimal relative to the shadow geofence (i.e., not an error case), the geofencing service changes the radius of the actual geofence based on the radius of the crossed shadow geofence. A geofence change based on a shadow geofence trigger is in progress due to the corresponding connectivity to the cellular network being restored until the radius is returned to its original value and the originally configured geofence can be implemented again.
[0012] Illustrative Description
[0013] FIG. 1 is a conceptual diagram of dynamically changing a geofence based on observed conditions of a cellular network. A mobile router 101 is connected to a cellular network 106 and forms a Wi-Fi network 104. The mobile router 101 creates the Wi-Fi network 104 by converting the cellular signals of the cellular network 106 into Wi-Fi signals. The Wi-Fi network 104 is a Wireless Local Area Network (WLAN) based on the Institute of Electrical and Electronics Engineers (IEEE) 802.11 technology standard. The cellular network 106 can be a 4G network, a 4G Long Term Evolution (LTE) network, a 5G network, etc. The mobile router 101 enables Wi-Fi compatible devices within range of the Wi-Fi network 104 to connect to the Wi-Fi network 104 and access the Internet via the cellular network 106. Internet access is thus dependent on the mobile router 101 having a sufficiently strong signal to the cellular network 106.
[0014] The mobile router 101 is configured and managed by the controller 103. The controller 103 may be an SD-WAN controller running in a cloud environment (e.g., as a cloud-based service). The controller 103 and the mobile router 101 may communicate bidirectionally over a cellular network 106 to which the mobile router 101 is connected. A dynamically changeable geofencing service 105 (hereinafter, the "service 105") runs as part of the controller 103. The service 105 configures the mobile router 101 with a geofence configuration 121, which thereby enforces a geofence 114 for the mobile router 101. The mobile router 101 previously selected to use its location-based service 117 for geofencing, such as through downloading software as part of configuring the mobile router 101 as an edge router managed by the controller 103. The geofence configuration 121 may be downloaded as part of this initial configuration of the mobile router 101. The location-based services 117 are hereinafter referred to as performing geofencing operations related to the mobile router 101 (eg, detecting geofence exit events).
[0015] The geofence configuration 121 indicates parameters 115 (hereinafter “geofence parameters 115”) of the geofence 114, comprising the reference point 110 and the radius 102, represented in FIG. 1 as having a value of R. The geofence configuration 121 may also specify a geofence exit event (i.e., crossing the geofence 114 to exit the virtual fence within the area) as a trigger condition that, if satisfied, triggers an alerting to the service 105. After downloading the geofence configuration 121 to the mobile router 101, if the mobile router 101 exits the “geofenced” area encompassed by the geofence 114, the location-based service 117 alerts the service 105 of the geofence exit event. The geofence parameters 115, as well as other aspects of the geofence configuration 121, may be specified by a customer, such as the owner of the mobile router 101. For example, a customer may input geofence parameters 115 and an indication of an ending event as an alert trigger into a user-facing component of the service 105, after which the service 105 generates a geofence configuration 121 based on the input configuration parameters and pushes the geofence configuration 121 to the mobile router 101 and any other serviced devices. As another example, a customer may install the geofence configuration 121 on the service 105, and thus the geofence configuration 121 may be pushed to the mobile router 101 and any other serviced devices.
[0016] The service 105 also maintains and / or has access to signal strength data 109 of the cellular network 106. The service 105 may have obtained the signal strength data 109 from an Internet Service Provider ("ISP") that provides Internet access via the cellular network 106. Alternatively, or in addition, the service 105 may build and maintain the signal strength data 109 as monitored devices, including the mobile router 101, send alerts to the service 105 that include their current locations and corresponding signal strengths. The signal strength data 109 may be maintained locally by the service 105 or may be stored in an external location to which the service 105 has access (e.g., a repository maintained in an external server, such as a cloud server).
[0017] FIG. 1 is annotated with a series of letters AD. These letters represent stages of operation. Although the stages are ordered for the purposes of this example, the stages are intended to illustrate an example to aid in understanding this disclosure and should not be used to limit the scope of the claims. Subject matter encompassed within the scope of the claims may vary with respect to the order of operations and some.
[0018] In phase A, a geofence exit event by the mobile router 101 triggers the generation of an alert 111 that is transmitted to the service 105 over the cellular network 106. When the mobile router 101 crosses the geofence 114, the location-based service 117 detects the geofence exit event. The geofence configuration 121 further configures the location-based service 117 to determine and include data corresponding to both the generation of the alert 111 and the transmission of the alert 111 over the cellular network 106. When the alert 111 is generated locally by the location-based service 117, the location-based service 117 captures (e.g., using GPS) a first coordinate 108A of the mobile router 101 that corresponds to the location where the mobile router 101 exited the geofence 114 and includes the first coordinate 108A in the alert 111. 1, the location-based service 117 may also determine a signal strength 112 indicating the strength of the cellular network 106 signal measured by the mobile router 101 at a location corresponding to the first coordinate 108A. The location-based service 117 may generate an alert 111 having the first coordinate 108A and the signal strength 112 as data. Before transmitting the alert 111 to the service 105 over the cellular network 106, the location-based service 117 captures a second coordinate 108B of the mobile router 101, which corresponds to the location of the mobile router 101 at the time the alert 111 was transmitted over the cellular network 106. The location-based service 117 may add the second coordinate 108B to the alert 111 as metadata.
[0019] Under expected conditions of the cellular network 106, where the mobile router 101 has a sufficiently strong connection to the cellular network 106, the first coordinate 108A and the second coordinate 310B should be substantially similar due to an insignificant delay between the generation and transmission of the alert 111. However, if the signal measured by the mobile router 101 is weak or absent at the location corresponding to the geofence exit event (i.e., as indicated by the first coordinate 108A), there may be a delay between the local generation of the alert 111 and the transmission of the alert 111 across the cellular network 106. The inclusion of coordinates indicating the location of the mobile router 101 at both the time of generation and transmission of the alert 111 facilitates the analysis, performed in stage B, of whether such a delay existed.
[0020] In phase B, the service 105 receives and analyzes the alert 111 based on criteria 107 for modifying the geofence 114. Modifying the geofence refers to redefining the geofence by changing its radius. The criteria 107 indicate one or more criteria that, when met, trigger a modification of the geofence 114. The criteria 107 may include at least a first threshold corresponding to a distance between locations corresponding to alert generation and transmission. A distance exceeding the threshold indicates that insufficient signal strength of the cellular network 106 may cause a delay between the generation and transmission of the alert. The service 105 identifies the first coordinate 108A and the second coordinate 310B from the alert 111 and calculates the distance between them for evaluation against the first threshold indicated by the criteria 107. If the distance exceeds the threshold, as is assumed in the case of this example, the service 105 records an error case (e.g., in a data structure maintained for recording error cases).
[0021] To prevent premature changes of the geofence due to a temporary loss or reduction in signal strength, the criterion 107 may further comprise a second threshold corresponding to a maximum count of error cases to be recorded before a geofence change is triggered. As an example, the criterion 107 may further indicate that the geofence should be changed after more than five error cases are recorded. Thus, after recording an error case, the service 105 evaluates the count of recorded error cases against this second threshold. If the second threshold is exceeded, a change of the geofence is triggered due to satisfaction of the criterion 107. This example assumes an error case recorded after the distance between the first coordinate 108A and the second coordinate 310B exceeds the error case count threshold, which triggers a change of the geofence 114 by the service 105.
[0022] As part of processing the alert 111, the service 105 also determines the signal strength 112 included in the alert 111 and updates the signal strength data 109 with an indication of the signal strength 112 and the corresponding location (i.e., the first coordinate 108A). The signal strength data 109 may, in some examples, be maintained in a heat map, where different hues in the heat map correspond to different classes of signal strength. In this case, the service 105 may classify the signal strength 112 into the determined classes by determining which class the signal strength 112 corresponds to and associating the signal strength 112 with a respective hue that indicates the class. In other examples, the signal strength measurements may be classified into the signal strength data 109 upon entry based on evaluation against classification criteria, where each class is associated with a hue used to represent the signal strength. As another example, the signal strength data 109 may include multiple indications of locations (e.g., GPS coordinates) and associated signal strengths at each location. Each of the signal strength data 109 may be labeled, tagged, or otherwise annotated with a signal strength class that the service 105 determines upon insertion into the dataset. For example, each of the signal strength data 109 may indicate a GPS coordinate, a signal strength measurement determined from a received alert, and a label indicating the class into which the service 105 classified the signal strength measurement.
[0023] In phase C, the service 105 determines a change to the geofence 114 through a change to the radius 102 based on the signal strength data 109 of the cellular network 106. The service 105 determines a reduced geofence radius from the analysis of the signal strength data 109, where the reduced radius is the next larger geofence radius corresponding to a location of sufficient signal strength. The service 105 initializes a radius value R' with the value of the radius 102, determines whether the location of the signal strength data 109 corresponding to the location of the distance R' from the reference point 110 corresponds to a sufficiently strong signal of the cellular network 106, and decreases the value of R' if the signal strength is insufficient. The analysis of the signal strength data 109 is performed while decreasing the value of R' until a value of R' is found that is sufficient signal strength. As one example, if radius 102 has a value of 1000 meters and R' is decreased by 50 meters, the service 105 may determine and analyze signal strength data 109 locations that correspond to locations such as 950 meters from reference point 110, 900 meters from reference point 110, etc. Upon determining that radius R' corresponds to a location of sufficient signal strength, the service 105 configures a modified radius 119 of the geofence 114 using the value of R'.
[0024] Whether the signal strength of the cellular network 106 is sufficient may be based on criteria against which the service 105 evaluates a subset of the signal strength data 109 corresponding to a geographic location of a boundary formed by a geofence with radius R'. For example, the service 105 may maintain a threshold indicative of signal strength values that are deemed sufficient, and signal strength values that cannot exceed this threshold are deemed insufficient. As another example, if the signal strength data 109 is represented as a heat map, the service 105 may maintain an indication of a color tone that corresponds to a signal strength that is deemed sufficient (e.g., a color that represents a signal strength measurement greater than -85 decibels milliwatts). Because available signal strength measurements for locations corresponding to a geofence with radius R' may vary or be limited, the service 105 may determine that a signal strength corresponding to radius R' is sufficient if a predetermined percentage, ratio, or the like of the associated signal strength measurements is deemed sufficient. As one example, for the 80% percentage, the service 105 can determine a subset of the signal strength data 109 that corresponds to locations at a distance R' from the reference point 110 and evaluate the measurements to determine whether at least 80% of the measurements indicate sufficient signal strength. Additionally, the service 105 can maintain a tolerance such that locations corresponding to a geofence with a radius R' plus or minus the tolerance are considered in the evaluation. The tolerance may be the unit in which R' is measured or the unit in which the locations are expressed in the signal strength data, such as meters or seconds of latitude / longitude, respectively.
[0025] In phase D, the service 105 communicates an update to the mobile router 101 indicating the modified geofence parameters 113, including the modified radius 119. The update that the service communicates to the mobile router 101 may be a new configuration, such as an updated version of the geofence configuration 121 indicating the modified geofence parameters 113, or an update to the existing geofence configuration 121. Once the update is received, the location-based service 117 installs the update, including the modified geofence parameters 113, on the mobile router 101. The geofence that is then implemented for the mobile router 101 has a radius given by the modified radius 119.
[0026] FIG. 2 is a conceptual diagram of modifying an ongoing geofence to return to an initially configured geofence. FIG. 2 illustrates the service 105 as enforcing a geofence 214 for the mobile router 101 with modified geofence parameters 113 determined as described with reference to FIG. 1. The geofence configuration 121 also includes multiple “shadow geofence” radii 221. The geofences corresponding to the radii 221 are referred to as shadow geofences because they are not customer-facing and when crossed trigger an alert for internal use by the service 105. Additionally, the shadow geofences overlay the geofence 214 or the geofence that is being enacted and defined by the modified geofence parameters 113. Each radius of the radii 221 is expressed with respect to the radius R at which the geofence was originally configured. The service 105 can communicate the radius 221 to the mobile router 101 as part of an update including the changed geofence parameters 113, as described with reference to FIG. 1, so that after the initial geofence change, a corresponding shadow geofence is implemented for internal alerts.
[0027] For illustration, FIG. 2 shows a set of example values for each of the radius 221 and corresponding shadow geofences. Shadow geofence 205A corresponds to a geofence with radius R (i.e., radius 102). Shadow geofence 205B corresponds to a geofence with a radius having a value that is 75% of R. Shadow geofence 205C corresponds to a geofence with a radius having a value that is 50% of R. If the mobile router 101 crosses any of the shadow geofences 205A-C, an alert is generated and transmitted to the service 105 including notification generation and transmission coordinates and signal strength, as described with reference to FIG. 1, to help modify the geofence based on the observed connectivity to the cellular network 106. In contrast, if the mobile router 101 crosses the geofence 214, the resulting alert is presented to the customer, and the geofence may be modified, again based on an analysis of the location of the mobile router 101 indicated in the alert, as described with reference to FIG. 1. The remaining description of FIG. 2 refers to the former case, where the mobile router 101 crosses one of the shadow geofences 205A-C.
[0028] FIG. 2 is annotated with a series of letters AD. These letters represent stages of operation. Although the stages are ordered for the purposes of this example, the stages are intended to illustrate an example to aid in understanding this disclosure and should not be used to limit the scope of the claims. Subject matter encompassed within the scope of the claims may vary with respect to the order of operations and some.
[0029] In phase A, a geofence exit event by the mobile router 101 for one of the shadow geofences 205A-C triggers the generation and transmission of an alert 211 to the service 105. Similar to the alert 111 of FIG. 1, the alert 211 includes two coordinates captured by the location-based service 117 (e.g., using GPS). A first coordinate 208A determined by the location-based service 117 indicates the location of the mobile router 101 when it exited the corresponding one of the shadow geofences 205A-C and triggered the generation of the alert 211. A second coordinate 208B determined by the location-based service 105 indicates the location of the mobile router 101 just prior to transmitting the alert 211 over the cellular network 106 to the service 117. The alert 211 also includes an indication of the signal strength 212 measured by the mobile router 101.
[0030] In phase B, the service 105 receives and analyzes the alert 211. The service 105 determines whether the criteria 107 for a geofence change are satisfied based on the data / metadata of the alert 211. The service 105 also determines the signal strength 212 included in the alert 211, as also described with reference to FIG. 1, and updates the signal strength data 109 with an indication of the signal strength 212 and the corresponding location (i.e., the first coordinate 208A). When analyzing the data / metadata of the alert 211 based on the criteria 107, the geofence change triggered by the satisfaction of the criteria 107 acts to return the radius to the value at which it was originally configured (i.e., the radius 102) or to a closer value. The criteria 107 may thus include a first criterion for an initial parameter change as described above, and a second criterion for a subsequent parameter change.
[0031] The service 105 determines the distance between the location corresponding to the first coordinate 208A and the location corresponding to the second coordinate 208B, and evaluates the distance against a threshold indicated by the criteria 107. The threshold evaluated against the distance determined from the internal alert triggered by the shadow geofence exit event may indicate the same distance as the threshold employed for the initial distance evaluation, as described above. However, in this case, the service 105 evaluates the distance between the first coordinate 208A and the second coordinate 310B against the threshold to determine whether the distance is below the threshold and, therefore, there was no substantial delay between the generation and transmission of the alert 211. If the distance is below the threshold, then those criteria 107 implemented for the shadow geofence exit event are satisfied.
[0032] This example assumes that the distance between the location identified by the first coordinate 208A and the second coordinate 310B falls below the threshold specified by the criterion 107, which triggers a geofence change by again changing the geofence radius. When the mobile router 101 crosses one of the shadow geofences 205A-C and eventually triggers a geofence change, the geofence is changed to have a radius corresponding to the radius of the crossed shadow geofence. For example, if the mobile router 101 crosses the shadow geofence 205B, the service 105 determines the change to the radius based on the radius having a value of 75% of the initial radius R. The service 105 determines the value of the modified radius 213, shown as R″ in FIG. 2, based on the radius of the shadow geofence that was crossed and triggered the alert 211. The service 105 may determine the value of the modified radius 213 based on the distance between the reference point 110 and the location identified by the first coordinate 208A or based on an indication of the shadow geofence included in the alert 211.
[0033] In phase C, the service 105 communicates an update to the mobile router 101 indicating the modified geofence parameters 223, including the modified radius 213. The update that the service 105 communicates to the mobile router 101 can be a new configuration, such as an updated version of the geofence configuration 121 indicating the modified geofence parameters 223, or an update to the existing geofence configuration 121. The mobile router 101 installs the update including the modified geofence parameters 223, and the geofence 214 is thus modified to have a modified radius 213 with value R″. The incremental geofence modification with the assistance of an internal alert triggered by crossing the shadow geofence 205A-C can continue until connectivity is restored at the original geofence site and the geofence radius can be changed back to the radius 102 at which it was configured.
[0034] 1-2 show examples of dynamically changeable geofencing where a geofence exit event is the trigger for alert generation and transmission. In other examples, a geofence entry event may be the trigger. In such examples, rather than restricting the geofence as described with reference to FIG. 1 and implementing a shadow geofence with a radius measured as smaller than the initially configured radius as described with reference to FIG. 2, the geofence may be expanded based on signal strength data during the first geofence change event. The radius of the shadow geofence that the service 105 then implements may be larger than the radius of the initially configured geofence (e.g., 150% and 175% of the initially configured geofence), such that subsequent geofence change events act to gradually return to the initial geofence.
[0035] 1 and 2 depict the controller 103 as managing the mobile router 101 for simplicity and to aid in understanding, the controller 103 may manage multiple devices (e.g., multiple edge routers). For example, the controller 103 may manage multiple on-boarded mobile routers and / or other compatible devices in addition to the mobile router 101. The devices may be grouped by characteristics, where the device characteristics may include the service provider (e.g., ISP of the cellular network), device type, antenna deployment (e.g., internal antennas or externally mounted antennas), or any other device metadata that may affect the strength of the connection to the cellular network. The controller 103 may maintain or have access to the metadata of the on-board mobile router, including these characteristics related to cellular network connectivity. To configure multiple devices for dynamically changeable geofencing, the service 105 pushes the geofence configuration 121 to the multiple devices. Alerts that the service 105 then receives based on any of the devices crossing the geofence may originate from any of the multiple devices. The service 105 modifies the parameters of the geofence, as described above, and communicates the modified geofence parameters to devices that have the same or similar (e.g., at least partially identical) characteristics as the one from which the alert originated, where similar characteristics are defined as one or more metadata that are common between the devices.
[0036] 3-6 are flow charts of example operations for implementing a dynamically changeable geofence based on cellular network conditions. The example operations are described with reference to a dynamically changeable geofencing service (hereinafter, "geofencing service") for consistency with previous figures. The names chosen for the program code are not intended to limit the scope of the claims. The structure and organization of the program may vary due to platform, programmer / architect preferences, programming language, etc. Additionally, names of code units (programs, modules, methods, functions, etc.) may vary for the same reasons and may be arbitrary.
[0037] An exemplary operation refers to the implementation of a dynamically changeable geofence for one or more devices connected to a cellular network. The devices may be SD-WAN edge devices connected to a cellular network, such as a mobile router (also referred to as a cellular router) deployed as an edge router. In an implementation in which a dynamically changeable geofence is implemented for such an SD-WAN edge device, the geofencing service runs as part of the SD-WAN controller.
[0038] Additionally, the exemplary operation assumes that the geofencing service has access to signal strength data for the cellular network. The signal strength data may have been obtained from an ISP providing the cellular network and / or from a monitored device that periodically communicates signal strength data to the service (e.g., as part of an alert communicated to the service for a geofence crossing event). The signal strength data is indicative of signal strengths of the cellular network associated with various geographic locations. For example, the signal strength data may be represented using signal strength values, which may be individual values or ranges of values, associated with an indication of a location (e.g., GPS coordinates). As another example, the signal strength data may be represented using an indication of signal quality and an associated location, where the signal strength has previously been mapped (e.g., by the ISP or service) to a corresponding indication of signal quality.
[0039] 3 is a flow chart of example operations for implementing dynamically changeable geofences for devices connected to a cellular network. Initial geofence establishment refers to an initial configuration of a geofence to be implemented for one or more devices connected to a cellular network. The geofence may be initially configured by a customer or other owner of one or more devices based on selecting a central location (e.g., a headquarters location) from which the geofence is measured, such as through a user-facing component of an SD-WAN controller where the geofencing service executes, and a radius of the geofence.
[0040] In block 301, the geofencing service configures a geofence with a first set of parameters. The initially configured parameters of the geofence include a center point around which the geofence is formed and a radius of the geofence. The geofence parameters may be specified by an owner of the device being monitored through geofencing. For example, the geofence parameters may be input to a user-facing component of an SD-WAN controller on which the geofencing service executes in an implementation in which geofencing is implemented on an SD-WAN edge router. As another example, a geofence configuration including the geofence parameters may be installed on the geofencing service (e.g., via installation on the controller). The geofencing configuration including the initially configured parameters may also specify whether a geofence entry or geofence exit should trigger an alert. The geofence configuration to be installed should further specify that a notification generated in response to crossing the geofence includes two coordinates captured by the device's location-based service, where a first coordinate is captured upon crossing the geofence and a second coordinate is captured immediately prior to sending a notification over the cellular network to the geofencing service.
[0041] In block 303, the geofencing service pushes the geofence configuration to the monitored devices. Each of the one or more monitored devices is a device connected to a cellular network, such as a mobile / cellular router. The geofencing service can communicate (e.g., via the cellular network) with each of the monitored devices. For example, in an implementation in which the geofencing service runs as part of an SD-WAN controller, each device to be monitored is onboarded with the controller. The geofencing service pushes the geofence configuration to each of the onboard devices. Upon installation of the geofence configuration on each device, the device's location-based service can then monitor the device's location and detect geofence entry / exit events that trigger the generation of notifications. The geofence radius can be configured as a parameterized value that is initialized with a value specified in block 301.
[0042] In block 305, the geofencing service waits for a notification triggered by the device crossing the geofence. The notification triggered by the device crossing the geofence is sent over the cellular network to the geofencing service. In block 307, the geofencing service receives a notification including coordinates of a device that is enabled for both generating and sending a notification. The installation of the geofence configuration configured the device to use location-based services to capture different coordinates as part of processing a geofence crossing event and include the coordinates as data and / or metadata in the resulting notification. A first coordinate included in the notification indicates the location of the device when the geofence was crossed and the generation of the notification was triggered. A second coordinate indicates the location of the device immediately prior to sending the notification over the cellular network to the geofencing service. The geofencing service can determine the two coordinates from the notification based on their respective data and / or metadata fields.
[0043] In block 309, the geofencing service determines the distance between the device's locations corresponding to the generation and transmission of the notification. The geofencing service can calculate the distance based on using a distance formula that uses each of the coordinates as an input. If the device's connection to the cellular network was strong enough when the device crossed the geofence, the location will be substantially similar. A poor signal of the cellular network received by the device may cause a delay between the local generation of the notification and the transmission of the notification over the cellular network to the geofencing service. This is captured in the difference between the coordinates, which indicates the continued movement of the device after crossing the geofence before a sufficient signal is obtained and the notification can be sent.
[0044] At block 311, the geofencing service determines whether the distance exceeds a threshold. The threshold corresponds to a distance traveled between notification generation and transmission, which, if exceeded, may indicate poor connectivity to a cellular network at the geographic location at the site of the geofence, which causes a delay in notifying the geofencing service that the geofence has been crossed. If the distance does not exceed the threshold, operations continue at block 305, where the geofencing service waits to receive another notification. If the distance exceeds the threshold, operations continue at block 313.
[0045] In block 313, the geofencing service records error cases for the geofence. The geofencing service may maintain an indication of the error cases recorded for the geofence in a data structure. The data structure may indicate or be associated with configured geofence parameters to distinguish between error cases recorded for different geofence configurations (e.g., different radius values of the geofence).
[0046] At block 315, the geofencing service determines whether the number of error cases recorded for the geofence exceeds a threshold. The geofencing service may implement an additional threshold indicating a maximum number of error cases permitted before the geofence is changed, such as due to repeated delays in sending notifications indicating a geofence crossing event. The threshold may specify that one or more error cases are permitted. The geofencing service evaluates the number of error cases recorded for the geofence against this threshold. If the number of error cases does not exceed the threshold, operations continue at block 305, where the geofencing service waits to receive another notification. Otherwise, if the number of error cases exceeds the threshold, operations continue at block 317.
[0047] The geofencing service modifies parameters of the geofence based on the signal strength of the cellular network at block 317. Example operations for modifying geofence parameters based on the cellular network signal strength are described with reference to FIG.
[0048] Now, referring to FIG. 4, in block 401, the geofencing service retrieves signal strength data for a geographic area that at least partially overlaps with the geofenced area. The signal strength data indicates signal strength of a cellular network at various locations that at least partially overlap / include the geofenced area. The geofencing service may retrieve the signal strength data from a provider (e.g., an ISP) of the cellular network if the provider makes the signal strength data available to the geofencing service. Alternatively, or additionally, the geofencing service may build and maintain a set of signal strength data when the geofencing service receives a notification that includes the signal strength measurements, as described with reference to FIG. 6. The signal strength data may be stored in a map such that the signal strength measurements are stored in association with their corresponding geographic location. As another example, the signal strength data may be maintained in a heat map, where the signal strength measurements have already been classified into one of a number of classes indicating signal strength that have a corresponding representation (e.g., color tone) in the heat map.
[0049] In block 402, the geofencing service calculates a geofence radius R for signal strength analysis using the initially configured geofence radius value. n As an example, if a geofence is initially configured with a radius of 1000 meters, R n The value of is initialized with a value of 1000. The geofencing service may determine this initial geofence radius configuration based on the geofence configuration originally provided for the device that is installed and monitored on it.
[0050] In block 403, the geofencing service determines the radius R n Determine the signal strength at the location corresponding to the geofence with radius R n The location corresponding to a geofence with n The geofencing service refers to a geographic location (e.g., in terms of coordinates) that defines the boundary formed by a geofence with a radius R n A set of GPS coordinates corresponding to a geofence with a radius R n The geofencing service may determine stored signal strength data associated with those locations corresponding to a geofence with a signal strength of 100 kbps (e.g., 10 kbps) associated with the geofence. Because signal strength data may not be available for a particular location corresponding to a geofence, but may be stored in association with nearby locations, the geofencing service may further determine signal strength for locations within a given distance of the location corresponding to the geofence. As one example, the geofencing service may determine stored signal strength data for locations corresponding to a geofence and for locations within one degree of latitude and / or longitude of those locations. The determined signal strength may be represented as a value indicative of signal quality (e.g., decibel milliwatts (dBm)), and / or a label, tag, etc. Alternatively, or additionally, the determined signal strength may be represented using a color indicative of signal quality when the data is represented using a heat map.
[0051] In block 405, the geofencing service determines the radius R nThe geofencing service determines whether the signal strength corresponding to a geofence with a signal strength of 0 dBm is sufficient. The geofencing service analyzes the determined signal strength data based on one or more criteria to determine that the signal strength in the area corresponding to the geofence is sufficient. The criteria may indicate that the signal strength is sufficient if a majority (e.g., 85%) of the signal strength data determined to correspond to the geofence has a specified quality rating or meets a signal strength threshold, where the value of "most" is a configurable percentage, ratio, etc. As one example, the criteria may indicate that the signal strength may be considered sufficient if at least 85% of the signal strength measurements are between 0 and -90 dBm and / or are associated with a label, tag, etc. indicating that the signal quality is good or sufficient. For example, if the signal strength data is maintained in a heat map, the label / tag indicating good or sufficient signal quality may indicate a color (e.g., green) used for signal strength measurements classified as "good." The geofencing service in this example determines whether at least 85% of the signal strength data determined to correspond to a geofence is labeled / tagged with a color indicating good or sufficient signal strength. If the signal strength is insufficient, operations continue at block 407. If the signal strength is sufficient, operations continue at block 409.
[0052] In block 407, the geofencing service n Changes the value of R by the specified amount. n The value of R is a configurable amount, such as 50 or 100 meters. n Incrementing or R n It can be modified by decrementing R. n Whether R is incremented or decremented depends on whether a geofence exit event or a geofence entry event triggers the notification. For example, if a geofence exit event triggers the notification, then R nmay be decremented. Operation continues at 403 with another determination and analysis of signal strength in the area corresponding to the geofence having the modified radius value.
[0053] In block 409, the geofencing service determines the radius of the implemented geofence as R n The geofencing service updates the radius R measured from the center point. n R such that a geofence is formed by a boundary with n The geofence service updates the geofence radius with the value of R by generating a configuration update to update the radius value or by generating a new geofence configuration. n The geofence radius can be updated with the value of R and the updated or new geofence configuration can be communicated to the monitored device. As one example, if the geofence radius was indicated as a parameterized value in the geofence configuration, the configuration update can include R as the parameter value for the geofence radius. n As a result, the monitored device can display the value of the changed radius R after installing the configuration for geofence updates. n The geofencing service may generate and send a notification when a changed geofence having a geofence number (GNU / Linux) is crossed. The geofencing service may further determine the monitored device for which the geofence is changed based on metadata of the device from which the notification originated. For example, the geofencing service may communicate the configuration for the geofence change to the device that sent the notification and any other devices associated with the same service provider as the device.
[0054] 5 is a flow chart of example operations for reverting to original geofence parameters from modified ones based on observed cellular network connectivity. After modifying parameters of a geofence implemented for a device connected to a cellular network, it may be desirable to revert to the original geofence configuration once sufficient signal is restored in response to determining that the geofence corresponded to a site with poor signal strength. Example operations describe reverting to the original geofence configuration after modifying a geofence radius as described with reference to FIGS. 3-4.
[0055] In block 501, the geofencing service establishes one or more shadow geofences having corresponding radii. The geofencing service can establish a shadow geofence by communicating to the monitored device a new geofence configuration or an update to an existing geofence configuration, indicating one or more radii of the shadow geofence and a center point from which the radii are measured. A shadow geofence is so named because alerts generated by a device crossing a shadow geofence are for internal use by the geofencing service and are not configured or presented by the customer or owner of the device. Furthermore, the radius of the shadow geofence may be expressed relative to the radius of the original configured geofence (e.g., as a ratio, percentage, etc.), and may comprise a value between the modified radius determined as described with reference to FIG. 4 and the original geofence radius, resulting in an internally tracked geofence that may be considered a “shadow” of the implemented geofence. As one example, the shadow geofence radii may correspond to 50%, 75%, and 100% of the original radius, or, for a geofence initially configured with a radius of 1000 meters, 500 meters, 750 meters, and 1000 meters.
[0056] In block 503, the geofencing service waits for a notification triggered by a monitored device crossing a shadow geofence. The shadow geofence overlays the actual, implemented geofence, so any device crossing the geofence triggers a notification sent to the geofencing service. The geofencing service can distinguish between a shadow geofence crossing event and an actual geofence and determine whether to indicate the geofence crossing event to the device customer / owner or analyze data / metadata associated with the crossing event to help modify parameters of the implemented geofence. For example, a notification communicated from the device may indicate a crossed geofence. From there, the geofencing service can determine whether the indicated geofence is an actual geofence or a shadow geofence. As another example, the geofencing service can determine the distance from the center point to the geofence crossing location indicated in the notification (e.g., based on utilizing a distance formula) and determine whether the distance corresponds to the radius of the shadow geofence or the radius of the actual, implemented geofence. If the notification indicates that an actual geofence has been crossed, rather than a shadow geofence, the geofencing service processes the notification as described with reference to FIG. 3 beginning at block 307.
[0057] At block 505, the geofencing service receives a notification including coordinates of a device that is enabled for generating and transmitting the notification. The notification generated and transmitted to the geofencing service when the device crosses the shadow geofence contains similar data / metadata as a notification generated after crossing an actual, configured geofence (e.g., as described above with reference to 307). Thus, the notification includes a first coordinate determined by the location-based service of the enabled device when the geofence was crossed, and a second coordinate determined when the notification was transmitted over the cellular network.
[0058] At block 507, the geofencing service determines the distance between the device locations corresponding to the generation and transmission of the notification, such as by utilizing a distance formula to calculate the distance between the coordinates. At block 509, the geofencing service determines whether the distance exceeds a threshold. The geofencing service can evaluate the distance between the generation and transmission of the notification corresponding to the shadow geofence against the same threshold used in the evaluation that triggered the initial geofence change, or can maintain an additional threshold for evaluation regarding the shadow geofence. Using this evaluation, a distance that does not exceed the threshold indicates that the quality of the connection to the cellular network at the location corresponding to the shadow geofence is sufficient, and the geofence can be changed to correspond to the shadow geofence. If the distance exceeds the threshold, the operation continues at block 503, where the geofencing service waits to receive another notification. If the distance does not exceed the threshold, the connectivity to the cellular network may have improved. The operation then continues at block 511.
[0059] In block 511, the geofencing service determines whether the parameters of the shadow geofence correspond to the originally configured geofence parameters. If the shadow geofence has the same radius as the radius at which the geofence was originally configured before the geofence parameter change, and if there was no substantial delay between the generation and transmission of the notification, then sufficient connectivity at the site of the originally configured geofence may have been restored. The geofencing service may make a determination based on information included in the notification. For example, the geofencing service may determine whether the distance between the location where the geofence was crossed (i.e., as indicated by the corresponding coordinates) and the center point is substantially equal to the initial geofence radius. If the parameters of the crossed shadow geofence correspond to the originally configured geofence parameters, the operations continue at block 517. Otherwise, the geofence is another shadow geofence, and the operations continue at block 513.
[0060] In block 513, the geofencing service updates the radius of the implemented geofence with the value of the radius of the shadow geofence. The geofencing service updates the geofence radius with the value of the radius of the shadow geofence to again modify the implemented geofence. As an example, for the case where a geofence exit event triggers a notification, if the implemented geofence has a radius of 500 meters and the device crosses the shadow geofence having a radius of 750 meters, the radius of the geofence to be implemented is modified from 500 meters to 750 meters. The geofencing service can update the geofence radius by generating a configuration update to update the radius value or by generating a new geofence configuration and communicating the updated or new geofence configuration to the monitored device. As an example, if the geofence radius was indicated as a parameterized value in the geofence configuration, the configuration update can indicate the value of the shadow geofence radius as the parameter value for the geofence radius.
[0061] At block 517, the geofencing service reverts to implementing the geofence with the original parameters. Returning to the previous example, if the geofence was originally configured with a radius of 1000 meters, the geofencing service reverts the radius of the implemented geofence to 1000 meters. The geofencing service may generate a new geofence configuration, or a geofence configuration update, to be sent to the monitored device indicating the original geofence radius and indicating that the shadow geofence should no longer trigger notifications. For example, the geofencing service may disable the triggering of the shadow geofence for the device in the configuration update.
[0062] After reverting to enforcement of the initially configured geofence, upon receiving a subsequent notification from the device crossing the geofence, the geofencing service can perform additional geofence changes as described with reference to Figures 3-5. In particular, the geofencing service can repeat the analysis described with reference to Figures 3-4 for the first subsequent geofence change, and then revert to the initially configured geofence if connectivity to the cellular network improves as described with reference to Figure 5. Thus, an implementation of a dynamically changeable geofence is ongoing for one or more devices, where geofence changes are notified by the device's connectivity to the cellular network.
[0063] Additionally, evaluation of received notifications and / or any resulting geofence changes may be implemented as a synchronous operation. If the geofencing service receives another notification while evaluating a notification and performing any parameter changes as described by the example operations of Figures 3-5, the geofencing service may queue the notification such that the corresponding evaluation and parameter changes are performed once the ongoing evaluation is complete. Queuing received notifications for synchronous evaluation and parameter changes ensures that notifications are processed in the order they are received to ensure that logged error cases are accurate and to prevent communication of conflicting configuration updates to devices where geofences are implemented.
[0064] FIG. 6 is a flow chart of an example operation for creating and maintaining a heat map showing the signal strength of a cellular network. As described above, the geofencing service can modify the radius of a geofence based on data showing the signal strength of the cellular network at various locations, so that the geofence corresponds to an area having sufficient signal strength over the cellular network to send a notification to the geofencing service triggered by a geofence crossing event. This signal strength data can be obtained from an ISP or other provider of the cellular network. Alternatively, or in addition, an implementation can utilize signal strength data obtained directly from the device on which the geofence is implemented. If the device is configured to notify the geofencing service when a geofence is crossed at an entrance or exit, the geofencing service can also configure the device to include the signal strength of the connection to the cellular network in the generated alert (e.g., as data or metadata for the alert), whether an actual geofence or a shadow geofence. As described herein, the geofencing service can utilize the signal strength data to build a heat map showing signal strength over a geographic area corresponding to the geofence, or augment an existing heat map with new data reflecting observed network conditions.
[0065] In block 601, the geofencing service initializes a heatmap to visually represent signal strength at various locations. Initializing the heatmap may include defining ranges of signal strength measurements (e.g., in dBm) that indicate signal quality and assigning a color to each range for the heatmap representation. As one example, the geofencing service may initialize the heatmap with three ranges of signal strength measurements that correspond to signal quality that may be considered good, acceptable, and poor, such as ranges below -85 dBm, between -85 dBm and -100 dBm, and above 100 dBm, respectively. Exemplary colors that may be assigned to the signal strength measurement ranges are red for ranges that indicate poor signal quality, yellow for ranges that indicate acceptable signal quality, and green for ranges that represent good signal quality.
[0066] At block 603, the geofencing service receives an alert from a device that has crossed a geofence. The alert may correspond to a geofence entry / exit event for either an actual geofence or a shadow geofence, as described with reference to FIG. 3 and FIG. 5, respectively. The alert includes an indication of the device location corresponding to the alert generation and transmission, as described above. The alert data or metadata additionally includes a value reflecting the measured signal strength of the cellular network at the location where the device crossed the geofence or where the notification was sent to the geofencing service. The device on which the geofence is implemented has been configured to determine the measured signal strength from locally stored data and include the signal strength in the alert triggered by the geofence entry / exit event (e.g., as specified in a geofence configuration installed on the device).
[0067] In block 605, the geofencing service determines a signal strength measurement and a corresponding location included in the alert. The geofencing service determines the signal strength measurement and the device's location based on the respective data / metadata fields in the alert. The signal strength measurement may be expressed in decibels or decibel-milliwatts, depending on the representation used for the cellular network. The device's location determined from the alert may be a location corresponding to the generation of the alert or the transmission of the alert, depending on whether the device determined a measured signal strength as part of generating or transmitting a notification (referred to above as the "first coordinate" and "second coordinate," respectively).
[0068] In block 607, the geofencing service updates the heat map to show the signal strength measurements and the corresponding locations. The geofencing service adds the signal strength measurements to the heat map such that a corresponding visual representation of the signal strength is stored in the entry corresponding to the location. For example, if the signal strength measured at the first location is -113 dBm, which falls within a poor signal strength range defined for the heat map and corresponds to the color red, the geofencing service updates the entry corresponding to the first location with a value of -113 dBm and the color red as its visual representation. The geofencing service can store the signal strength measurements and associated colors determined for various locations for entries corresponding to locations within a predetermined distance from the location (e.g., in terms of degrees of latitude and / or longitude). Returning to the previous example, the geofencing service can update the entry for the first location in the heat map with a value of -113 dBm and an associated color red, and update entries corresponding to locations within one second of the latitude and longitude of the first location. Operation continues at block 603 to continue building the heatmap as additional signal strength data is acquired.
[0069] Determining the signal strength data included within a received alert and utilizing the signal strength data to construct a heat map may be performed as part of a geofence parameter modification operation, as described in FIG. 6. For example, upon receiving an alert transmitted from a device that has crossed either a customer-configured geofence or a shadow geofence, the geofencing service may determine an indication of the device location and signal strength data included within the alert. The geofencing service may update a heat map of cellular network signal strength with the received signal strength data, as described with reference to FIG. 6, and then analyze the indication of the device location to determine whether to modify parameters of the geofence, at least in part in parallel or simultaneously, as described above with reference to FIGs. 3-5.
[0070] Although FIG. 6 describes example operations for constructing and maintaining a heatmap for storing signal strength measurements labeled or tagged with an indication of signal quality, implementations may use other representations of signal strength data. For example, the geofencing service may maintain or have access to a repository in which associations between locations (e.g., GPS coordinates) and signal strength measurements are stored. The geofencing service inserts locations and corresponding signal strength measurements determined from received alerts into the repository. The service may evaluate each signal strength measurement based on tagging or labeling measurement criteria and label or tag the location and signal strength measurement accordingly based on the met criteria prior to insertion into the repository. For example, the geofencing service may evaluate the signal strength measurements based on one or more ranges corresponding to signal quality, as also described in block 601. Once the range within which the signal strength measurements fall is determined, the geofencing service labels or tags the signal strength measurements and location with an indication of signal quality corresponding to the range. Each entry in the repository in this example thus indicates a location, a signal strength measurement corresponding to that location, and a label / tag indicating the quality of the signal strength at that location.
[0071] Variations
[0072] The flow chart is provided to aid in understanding the examples and should not be used to limit the scope of the claims. The flow chart illustrates example operations that may be modified within the scope of the claims. Additional operations may be performed, fewer operations may be performed, operations may be performed in parallel, and operations may be performed in a different order. For example, with respect to FIG. 6, the operations illustrated in blocks 603-607 may be performed in parallel or simultaneously if multiple alerts are received. It will be understood that each block of the flow chart illustrations and / or block diagrams, and combinations of blocks in the flow chart illustrations and / or block diagrams, may be implemented by program code. The program code may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable machine or device.
[0073] As will be appreciated, aspects of the present disclosure may be embodied as a system, method, or program code / instructions stored in one or more machine-readable media. Thus, aspects may take the form of hardware, software (including firmware, resident software, microcode, etc.), or a combination of software and hardware aspects, all generally referred to herein as a "circuit," "module," or "system." Functionality presented as individual modules / units in the exemplary illustrations may be organized differently according to any one of the platforms (operating systems and / or hardware), application ecosystems, interfaces, programmer preferences, programming languages, administrator preferences, etc.
[0074] Any combination of one or more machine-readable media may be utilized. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. The machine-readable storage medium may be, for example, but not limited to, a system, apparatus, or device employing any one or combination of electronic, magnetic, optical, electromagnetic, infrared, or semiconductor technologies to store program code. More specific examples (non-exhaustive list) of machine-readable storage media may include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the context of this specification, a machine-readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable storage medium is not a machine-readable signal medium.
[0075] A machine-readable signal medium may include a propagated data signal having machine-readable program code embodied therein, for example in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including but not limited to electromagnetic, optical, or any suitable combination thereof. A machine-readable signal medium is not a machine-readable storage medium and may be any machine-readable medium that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
[0076] The program code embodied in the machine-readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, fiber optic cable, RF, etc., or any suitable combination of the foregoing.
[0077] The program code / instructions may also be stored in a machine-readable medium that can instruct a machine to function in a particular manner, such that the instructions stored in the machine-readable medium produce a product that includes instructions that implement the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0078] FIG. 7 illustrates an exemplary computer system with a dynamically alterable geofencing service. The computer system includes a processor 701 (possibly including multiple processors, multiple cores, multiple nodes, and / or implementing multi-threading, etc.). The computer system includes a memory 707. The memory 707 may be any one or more of the previously described possible implementations of a system memory or machine-readable medium. The computer system also includes a bus 703 and a network interface 705. The system also includes a dynamically alterable geofencing service 711. The dynamically alterable geofencing service 711 creates and maintains dynamically alterable geofences that are implemented for one or more devices connected to a cellular network, where the geofences may be altered based on cellular network conditions identified from data obtained from the devices. Any one of the previously described functionalities may be implemented partially (or entirely) in hardware and / or in the processor 701. For example, the functionality may be implemented using an application specific integrated circuit, in logic implemented in the processor 701, in a co-processor on a peripheral device or card, etc. Additionally, an embodiment may include fewer or additional components not shown in FIG. 7 (e.g., a video card, an audio card, additional network interfaces, peripheral devices, etc.). The processor 701 and the network interface 705 are coupled to a bus 703. Although shown as being coupled to the bus 703, memory 707 may be coupled to the processor 701.
[0079] Although aspects of the present disclosure have been described with reference to various implementations and uses, it will be understood that these aspects are exemplary and that the claims are not limited thereto. In general, the techniques for implementing dynamically modifiable geofences based on cellular network conditions as described herein may be implemented with equipment consistent with any one or more hardware systems. Many variations, modifications, additions, and improvements are possible.
[0080] Multiple instances may be provided for components, operations, or structures described herein as a single instance. Finally, boundaries between various components, operations, and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific exemplary configurations. Other allocations of functionality are contemplated and may be included within the scope of the disclosure. In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements may be included within the scope of the disclosure.
Claims
1. 1. A method comprising: Implementing a first geofence for the device, the first geofence having a radius with a first value; The device is connected to a cellular network. Steps and based on receiving an alert triggered by the device crossing the first geofence; determining whether a delay associated with receiving the alert satisfies a first criterion for modifying the radius based on an indication of a location identified in the alert; based on determining that the delay meets the first criterion, changing the radius from the first value to a second value, creating a second geofence; enforcing the second geofence for the device; A method comprising:
2. The method further comprises: determining a distance between a first location and a second location of the device as indicated by the location representation; the first location corresponds to a location where the alert was generated locally at the device, and the second location corresponds to a location where the alert was transmitted by the device over the cellular network; the distance between the first location and the second location is indicative of the delay associated with receiving the alert. The method of claim 1.
3. The method further comprises: logging an error case for the first geofence based on determining that the distance exceeds a first threshold indicated by the first criterion; The step of determining whether the delay satisfies the first criterion comprises: determining whether the distance exceeds the first threshold; and determining whether a count of error cases recorded for the first geofence exceeds a second threshold; determining at least one of: The method of claim 2 , comprising:
4. The method further comprises: Based on changing the radius, internally enforcing a plurality of geofences having corresponding radii of a plurality of radii about the device, each of the plurality of geofences triggering an internal alert when crossed; based on receiving an internal alert triggered by the device crossing a third geofence of the plurality of geofences; determining whether a delay associated with receiving the internal alert satisfies a second criterion for modifying the radius; based on determining that the delay meets the second criterion, changing the radius from the second value to a third value, creating a third geofence; enforcing the third geofence for the device; The method according to any one of claims 1 to 3, comprising:
5. Determining whether a delay associated with receiving the internal alert satisfies the second criterion includes: determining whether a distance between a first location where the internal alert was generated locally and a second location where the alert was transmitted by the device over the cellular network is below a third threshold; the internal alert being indicative of the first location and the second location. The method according to claim 4.
6. The method further comprises: repeating the enforcing of the plurality of geofences; and receiving internal alerts; determining that the delay satisfies the second criterion; modifying the radius until the radius is returned to the first value; The method of claim 4 , comprising:
7. Changing the radius from the first value to the second value comprises: analyzing data indicative of signal strength for the cellular network at a plurality of locations; determining that a signal strength of the cellular network at a first subset of the locations corresponding to the second geofence is sufficient; and The method of claim 1 , comprising:
8. The method further comprises: obtaining from the device at least a subset of the data indicative of a signal strength of the cellular network; the alert received from the device includes a signal strength measurement of the cellular network; The method of claim 7.
9. A computer program stored on a non-transitory computer readable medium, the computer program comprising computer instructions: The instructions, when executed, cause the computer to: Establishing a first geofence having a radius with a first value, the first geofence being enforced on a device connected to a cellular network; determining, based on an indication of a location identified in a received alert triggered by the device crossing the first geofence, whether a delay in receiving the alert satisfies a first criterion for changing the radius; based on determining that the delay satisfies the first criterion, modifying the radius from the first value to a second value to create a second geofence; and communicating an indication of the second value of the radius to the device to enforce the second geofence for the device. A computer program that causes
10. the device location data indicating a first location of the device when the alert was generated and a second location of the device when the alert was transmitted over the cellular network; The instructions for determining whether the delay satisfies the first criterion include determining whether a distance between the first location and the second location exceeds a first threshold; The computer program further comprises instructions for logging an error case for the first geofence based on a determination that the distance exceeds the first threshold. The instructions for determining whether the delay satisfies the first criterion include determining whether a count of error cases recorded for the first geofence exceeds a second threshold.
10. A computer program according to claim 9.
11. The computer program further comprises instructions for returning the radius to the first value based on a determination that connectivity to the cellular network has been restored at a location corresponding to the first geofence. A computer program according to claim 9 or 10.
12. An apparatus including a processor and a computer readable storage medium, The computer-readable storage medium stores computer instructions; The instructions, when executed by the processor, cause the device to: Implementing a first geofence having a radius with a first value for one or more devices; each of the one or more devices is connected to a cellular network; based on receiving an alert triggered by a first device of the one or more devices crossing the first geofence; determining whether a delay associated with receiving the alert satisfies a first criterion for modifying the radius based on an indication of a location of the first device identified in the alert; based on determining that the delay meets the first criterion, changing the radius from the first value to a second value to create a second geofence; enforcing the second geofence for the one or more devices; A device that makes it possible to do so.
13. The first criterion comprises a first threshold value; The instructions executable by the processor to cause the apparatus to determine whether the delay satisfies the first criterion comprise: instructions executable by the processor to cause the apparatus to determine whether a distance between an indication of a location of the first device exceeds the first threshold; the indication of the location of the first device includes an indication of a first location where the alert was generated locally at the first device, and an indication of a second location where the alert was transmitted by the first device over the cellular network; the distance is between the first location and the second location; 13. The apparatus of claim 12.
14. The apparatus further comprises: based on a determination that the distance exceeds the first threshold, cause the device to log an error case for the first geofence; The instructions executable by the processor to cause the device to determine that the delay satisfies the first criterion comprise instructions executable by the processor to cause the device to determine that a count of error cases recorded for the first geofence exceeds a second threshold.
14. The apparatus of claim 13.
15. The instructions executable by the processor for causing the device to change the radius from the first value to the second value comprise instructions executable by the processor for causing the device to change the radius based on data indicative of signal strength of the cellular network at a plurality of locations.
15. Apparatus according to any one of claims 12 to 14.
Citation Information
Patent Citations
Methods and / or apparatus for geofence management
JP2015503137A
Wireless communication apparatus and wireless communication method
JP2017184051A
Systems and methods for geofence-traversing based control
JP2017522552A