FORCING MOBILE DEVICE WIRELESS NETWORK RECONNECTION

A wireless router that implements a first wireless network associated with a first service set identifier (SSID) and a second wireless network associated with a second SSID, determines that a mobile device connected to the first wireless network should be forced to attempt to reestablish a connection with the wireless router. In response to determining that the mobile device should be forced to attempt to reestablish the connection with the wireless router, the wireless router disables the first wireless network. The wireless router subsequently reenables the first wireless network.

BACKGROUND

A mobile device may automatically connect to a wireless network implemented by a wireless router if the mobile device has previously connected to the wireless network. In some situations a wireless router may implement multiple wireless networks, and the mobile device may be capable of automatically connecting to more than one of such wireless networks.

SUMMARY

The embodiments disclosed herein implement mechanisms for forcing mobile device wireless network reconnection.

In one embodiment a method is provided. The method includes determining, by a wireless router that implements a first wireless network associated with a first service set identifier (SSID) and a second wireless network associated with a second SSID, that a mobile device connected to the first wireless network should be forced to attempt to reestablish a connection with the wireless router. The method further includes, in response to determining that the mobile device should be forced to attempt to reestablish the connection with the wireless router, disabling, by the wireless router, the first wireless network. The method further includes subsequently reenabling, by the wireless router, the first wireless network.

In another embodiment a wireless router is provided. The wireless router includes a memory, and a processor device coupled to the memory. The processor device is operable to implement a first wireless network associated with a first service set identifier (SSID) and a second wireless network associated with a second SSID. The processor device is further operable to determine that a mobile device connected to the first wireless network should be forced to attempt to reestablish a connection with the wireless router. The processor device is operable to, in response to determining that the mobile device should be forced to attempt to reestablish the connection with the wireless router, disable the first wireless network, and subsequently reenable the first wireless network.

In another embodiment a non-transitory computer-readable storage medium is provided. The non-transitory computer-readable storage medium includes executable instructions operable to cause a processor device of a wireless router to implement a first wireless network associated with a first service set identifier (SSID) and a second wireless network associated with a second SSID. The instructions are further operable to cause the processor device to determine that a mobile device connected to the first wireless network should be forced to attempt to reestablish a connection with the wireless router. The instructions are further operable to, in response to determining that the mobile device should be forced to attempt to reestablish the connection with the wireless router, disable the first wireless network. The instructions are further operable to subsequently reenable the first wireless network.

DETAILED DESCRIPTION

A mobile device may automatically connect to a wireless network implemented by a wireless router if the mobile device has previously connected to the wireless network. The term “automatically” in this context means without human involvement. For example, the first time a mobile device attempts to join a wireless network, the mobile device may prompt the user for a password. After validating the credentials, the wireless router allows the mobile device to join the wireless network. The mobile device may subsequently be moved outside the range of the wireless network and disconnects from the wireless network. The mobile device may later come back within range of the wireless network and the wireless network may allow the mobile device to re-join the wireless network without prompting the user to reenter the password.

In some situations, a wireless router may implement multiple wireless networks, and the mobile device may be capable of automatically connecting to more than one of such wireless networks. The mobile device may automatically select one of the wireless networks, but it may be preferable if the mobile device had selected a different wireless network. As an example, a service provider may provision wireless routers with a public/common network service set identifier (SSID). The term SSID is used herein as such term is commonly used and may also be used synonymously with the term “wireless network” since a wireless network is typically known by the SSID associated with the wireless network. The public network may broadcast the same SSID from many or all wireless routers provided by the service provider to customers. The customers may also implement their own private networks via the wireless router, and thus the wireless router may implement both a “public” or common network and a “private network”. The terms “public” and “common” are used synonymously herein and refer to a network that is offered by a plurality of different wireless routers, and which can automatically authenticate mobile devices that are authorized to use the common network.

A mobile device may connect to a common network offered by a first wireless router and then come within a stronger wireless range of a nearby second wireless router such that the mobile device determines it would be beneficial to move from the first wireless router to the second wireless router.

The second wireless router may also implement the common network and implement a private network that the mobile device is capable of joining. The mobile device may select the common network over the private network for continuity purposes to stay on the same network, even though it may be desirable for the mobile device to join the private network rather than the common network. For example, the private network may offer higher speeds, implement stronger security, provide access to devices that are not available on the public network, or result in lower data costs than the data costs associated with the common network. In some implementations, it may also benefit a service provider to ensure that traffic that can be routed through the service provider's private network is indeed routed through the private network, rather than being routed through a public network.

One mechanism that could be employed to prevent this behavior in certain circumstances would be for a wireless router to blocklist certain mobile devices, such as mobile devices associated with a customer's account, or that recently connected to the private network of the wireless router. Unfortunately, blocklisting a mobile device often results in the mobile device initiating SSID blocking behavior, such that the mobile device will no longer attempt to join the common network, even if there is no other wireless network to join.

The embodiments disclosed herein implement mechanisms for forcing mobile device wireless network reconnection without causing mobile device SSID blocking behavior. In particular, a wireless router determines that a mobile device that has been connected to a first wireless network should be forced to attempt to reestablish a connection with the wireless router. The wireless router disables the first wireless network, while continuing to offer the second wireless network. In response, if capable of doing so, the mobile device automatically connects to the second wireless network. The wireless router may then subsequently reenable the first wireless network. In this manner the wireless router causes the mobile device to automatically move from the first wireless network to the second wireless network. The term “reestablish a connection” in this context means that the mobile device should be forced to attempt to join a wireless network implemented by the wireless router.

FIG.1is a block diagram of an environment10in which mechanisms for forcing mobile device wireless network reconnection can be practiced according to some embodiments. The environment10includes a wireless router12-1located in a premises14-1. The premises14-1may comprise a house, a business, a government facility, or the like. In some embodiments the wireless router12-1may not be located in a premises and may be attached to a structure outside, such as pole or other structure. The wireless router12-1includes a processor device16-1and a memory18-1. The memory18-1includes a controller19-1which may, in some embodiments, implement some or all of the functionality described herein with regard to the wireless router12-1. The wireless router12-1may also include a storage device20-1.

The wireless router12-1, in this example, implements two wireless networks within a wireless area22-1, a private wireless network24with an SSID “PREMISES 1” and a common wireless network26with an SSID “COMMON”. In some embodiments the wireless router12-1may only implement the common wireless network. The common wireless network26may be a government provided network that is offered to any mobile device or may be a proprietary network that is provided to any mobile device that meets some criterion, such as being a subscriber of a particular service provider, or that has otherwise been provided authentication credentials to join the common wireless network26.

A mobile device28enters the wireless area22-1and receives the broadcast of the SSIDs “COMMON” and “PREMISES 1”. The mobile device28may be in the premises14-1or in sufficient proximity to the premises14-1such that the mobile device28receives the SSIDs. The mobile device28, based on known SSIDs30, determines that the mobile device28has previously connected to the network “COMMON”, but not to the network “PREMISES 1”.

The mobile device28thus automatically attempts to join the common wireless network26. The wireless router12-1determines whether the mobile device28is permitted to join the common wireless network26. This may involve determining that credentials that have been provided by the mobile device28are valid. In some embodiments, the wireless router12-1may provide information about the mobile device28to a service provider server34associated with a service provider36. The service provider server34may, based on the information, determine that the mobile device28is associated with a subscriber of the service provider36, and instruct the wireless router12-1to allow the mobile device28to join the common wireless network26. The wireless router12-1allows the mobile device28to join the common wireless network26. Upon joining the common wireless network26, the mobile device28may be able to access services, such as Internet access, via the wireless router12-1and other devices in the service provider network of the service provider36.

It may be preferable for the mobile device28to connect to the wireless network24if the mobile device28is capable of automatically doing so. Doing so may provide the mobile device28a greater bandwidth than is available on the common wireless network26and give the mobile device28access to other devices that are connected to the wireless network24, such as storage devices, printers, media streaming devices, or the like. The storage device20-1maintains device data38-1that identifies mobile devices that have previously connected to the wireless network24. In this example, it will be assumed that the mobile device28has not previously connected to the wireless network24. The wireless router12-1may maintain authentication credentials40-1to authenticate mobile devices to one or both of the wireless networks24and26. The wireless router12-1may also maintain a connection timer42-1for each mobile device that connects to the common wireless network26that is started upon a successful connection by a mobile device to the common wireless network26. When the connection timer42-1for any mobile device connected to the common wireless network26exceeds a threshold period of time44-1, the wireless router12-1may initiate a mechanism to force the mobile devices connected to the common wireless network26to attempt to reestablish the connection with the wireless router12-1, as will be explained in greater detail below with regard to a wireless router12-2.

For purposes of illustration assume that prior to the connection timer42-1exceeding the threshold period of time44-1, the mobile device28moves to a location46that is within a wireless range22-2of the wireless router12-2. The wireless router12-2is maintained in a premises14-2. The wireless router12-2includes a processor device16-2, a memory18-2, a controller19-2and a storage device20-2. The wireless router12-2implements two wireless networks within the wireless area22-2, a wireless network48with an SSID “PREMISES 2” and the common wireless network26with the SSID “COMMON”.

The mobile device28recognizes the common wireless network26as a network that the mobile device28has previously connected to, and also recognizes the wireless network48. It would be preferable in this example for the mobile device28to automatically connect to the wireless network48. This may be because connecting to the wireless network48may allow the mobile device28to access other devices connected to the wireless network48, because the wireless network48may have a greater bandwidth and/or priority than the common wireless network26, or due to reasons not directly related to the mobile device28, such as it may be preferable to the service provider36that mobile devices28move off of the common network26when possible.

However, the mobile device network selection mechanism may prioritize staying on a same network when moving from one wireless router to another wireless router. Thus, in this example, the mobile device network selection mechanism of the mobile device28causes the mobile device28to automatically join the common wireless network26. In this example, the wireless router12-2may use one or more mechanisms to determine that the mobile device28should be forced to reestablish a connection with the wireless router12-2in an attempt to cause the mobile device28to connect to the wireless network48. One such mechanism is for the wireless router12-2to start a connection timer42-2when the mobile device28connects to the common wireless network26. When the connection timer42-2indicates that the mobile device28has been connected to the common network26greater than a threshold period of time44-2, the wireless router12-2may initiate a mechanism to force the mobile devices connected to the common wireless network26to attempt to reestablish a connection with the wireless router12-2.

Another mechanism may be to determine whether the mobile device28has previously connected to the wireless network48. In particular, the wireless router12-2may maintain device data44-2that maintains information that identifies mobile devices that have connected to the wireless network48in the past. In some embodiments, the information may comprise Media Access Control (MAC) addresses of the mobile devices. The wireless router12-2may then compare the MAC address of the mobile device28to the MAC addresses maintained in the device data44-2, and if there is a match, the wireless router12-2may initiate a mechanism to force the mobile devices connected to the common wireless network26to attempt to reestablish a connection with the wireless router12-2.

In other embodiments, particularly where MAC randomization may be a concern, the wireless router12-2may utilize a device identification technology, such as, by way of non-limiting example, a device identification technology offered by Cujo LLC, available at cujo.com, or Levl, available at levl.tech, each of which generates a device fingerprint of a device based on characteristics of the device and/or behavioral patterns of the device. In particular, when a mobile device joins the wireless network48, the wireless router12-2provides information about the mobile device to a device identification module50executing on the service provider server34. The device identification module50generates a fingerprint of the device and sends the fingerprint to the wireless router12-2. The wireless router12-2stores the fingerprint in the device data38-2. Subsequently, after the mobile device28joins the common wireless network26, the wireless router12-2provides information about the mobile device28to the device identification module50. The device identification module50generates a fingerprint of the device and sends the fingerprint to the wireless router12-2. The wireless router12-2may then compare the device fingerprint of the mobile device28to the device fingerprints maintained in the device data44-2, and if there is a match, the wireless router12-2may initiate a mechanism to force the mobile devices connected to the common wireless network26to attempt to reestablish a connection with the wireless router12-2.

In another embodiment, when the mobile device28joins the common wireless network26, the wireless router12-2provides information about the mobile device28to the service provider server34. The service provider server34accesses subscriber account information51and determines that the mobile device28is registered to an account associated with the wireless router12-2. The service provider server34then informs the wireless router12-2that the mobile device28is associated with the same account as the wireless router12-2. In response, the wireless router12-2may initiate a mechanism to force the mobile devices connected to the common wireless network26to attempt to reestablish a connection with the wireless router12-2.

In response to determining that the mobile device28should be forced to attempt to reestablish a connection with the wireless router12-2to thereby connect to the wireless network48instead of the common network26, the wireless router12-2may disable the common wireless network26for a period of time. In particular, the wireless router12-2may inhibit broadcasting of the SSID “COMMON” and inhibit responding to any requests (e.g., transmissions) of the mobile device28. After a period of time, the mobile device28concludes that the mobile device28is no longer connected to the common wireless network26. In response, the mobile device28determines the SSIDs that are currently being broadcasted within range of the mobile device28. Because the wireless router has inhibited broadcasting the SSID “COMMON” but continued to broadcast the SSID “PREMISES 2”, the mobile device28determines that the wireless network48is available to join. The mobile device28accesses the known SSIDs30and determines that the mobile device28has previously connected to the wireless network48. The mobile device28sends a request to the wireless router12-2to join (e.g., connect to) the wireless network48, and provides authentication credentials to the wireless router12-2. The wireless router12-2may access authentication credentials40-2that identify what authentication is required to join the wireless network48and determine that the mobile device28has provided valid authentication credentials. The wireless router12-2then allows the mobile device28to connect to the wireless network48.

The wireless router12-2may subsequently reenable the common wireless network26by restarting the broadcasting of the SSID “COMMON” and responding to any mobile devices that request to join the common wireless network26. The wireless router12-2may reenable the common wireless network26after a predetermined period of time, such as 10 seconds, 20 seconds, or the like.

FIG.2is a flowchart of a method for forcing mobile device wireless network reconnection according to some embodiments.FIG.2will be discussed in conjunction withFIG.1. The wireless router12-2, which implements the first wireless network26associated with the service set identifier (SSID) “COMMON” and the second wireless network48associated with the SSID “PREMISES 2”, determines that the mobile device28connected to the first wireless network26should be forced to attempt to reestablish a connection with the wireless router12-2(FIG.2, block1000). The wireless router12-2, in response to determining that the mobile device28should be forced to attempt to reestablish the connection with the wireless router, disables the first wireless network26(FIG.2, block1002). The wireless router12-2subsequently reenables the first wireless network26(FIG.2, block1004).

FIGS.3A-3Bare a sequence diagram illustrating actions taken by and messages communicated between various components illustrated inFIG.1to implement mechanisms for forcing mobile device wireless network reconnection according to some embodiments. Referring toFIG.3A, the controller19-1broadcasts the “PREMISES 1” SSID and the “COMMON” SSID (FIG.3A, block2000). The mobile device28recognizes the “COMMON” SSID and sends a join request to the wireless router12-1along with authentication credentials (FIG.3A, block2002). The controller19-1determines that the authentication credentials are valid (FIG.3A, block2004). The controller19-1sends a message to the mobile device28indicating that the mobile device28is successfully connected to the wireless network “COMMON” (FIG.3A, block2006). The controller19-1determines that the mobile device28has not previously joined the wireless network “PREMISES 1”, and thus does not initiate a mechanism to force the mobile device28to attempt to reestablish a connection with the wireless router12-1(FIG.3A, block2008).

The mobile device28moves within wireless range of the wireless router12-2(FIG.3A, block2010). The controller19-2continuously broadcasts the “PREMISES 2” SSID and the “COMMON” SSID (FIG.3A, block2012). The mobile device28determines that the mobile device28has previously joined both the “PREMISES 2” network and the “COMMON” network, but to maintain network continuity, sends a request to the wireless router12-2to join the “COMMON” network (FIG.3A, block2014). The controller19-2determines that the authentication credentials are valid and sends a message to the mobile device28indicating that the mobile device28is successfully connected to the wireless network “COMMON” (FIG.3A, blocks2016,2018).

The controller19-2sets the connection timer42-2(FIG.3A, block2020). Referring now toFIG.3B, the connection timer42-2expires (FIG.3B, block2022). In response to the connection timer42-2expiring, the controller19-2disables the wireless network “COMMON” by stopping the broadcasting of the SSID “COMMON”, and by no longer responding to the mobile device28(FIG.3B, block2024). The controller19-2continues to broadcast the SSID “PREMISES 2” (FIG.3B, block2026). The mobile device28determines that the wireless router12-2is no longer responding (FIG.3B, block2028). The mobile device28determines that the “PREMISES 2” network is available and that the mobile device28has previously joined the “PREMISES 2” network (FIG.3B, block2030). The mobile device28, without human involvement, sends a join request to the wireless router12-2along with authentication credentials (FIG.3B, block2032). The controller19-2determines that the authentication credentials are valid (FIG.3B, block2034). The controller19-2sends a message to the mobile device28indicating that the mobile device28is successfully connected to the wireless network “PREMISES 2” (FIG.3B, block2036). The controller19-2subsequently begins to rebroadcast the SSID “COMMON” (FIG.3B, block2038).

FIGS.4A-4Bare a sequence diagram illustrating actions taken by and messages communicated between various components illustrated inFIG.1to implement mechanisms for forcing mobile device wireless network reconnection according to other embodiments. Referring toFIG.4A, the controller19-1broadcasts the “PREMISES 1” SSID and the “COMMON” SSID (FIG.4A, block3000). The mobile device28recognizes the “COMMON” SSID and sends a join request to the wireless router12-1along with authentication credentials (FIG.4A, block3002). The controller19-1determines that the authentication credentials are valid (FIG.4A, block3004). The controller19-1sends a message to the mobile device28indicating that the mobile device28is successfully connected to the wireless network “COMMON” (FIG.4A, block3006). The controller19-1determines that the mobile device28has not previously joined the wireless network “PREMISES 1”, and thus does not initiate a mechanism to force the mobile device28to attempt to reestablish a connection with the wireless router12-1(FIG.4A, block3008).

The mobile device28moves within wireless range of the wireless router12-2(FIG.4A, block3010). The controller19-2continuously broadcasts the “PREMISES 2” SSID and the “COMMON” SSID (FIG.4A, block3012). The mobile device28determines that the mobile device28has previously joined both the “PREMISES 2” network and the “COMMON” network, but to maintain network continuity, sends a request to the wireless router12-2to join the “COMMON” network (FIG.4A, block3014). The controller19-2determines that the authentication credentials are valid and sends a message to the mobile device28indicating that the mobile device28is successfully connected to the wireless network “COMMON” (FIG.4A, blocks3016,3018).

The controller19-2determines that the mobile device28has previously joined the wireless network “PREMISES 2”, and thus decides to initiate a mechanism to force the mobile device28to attempt to reestablish a connection with the wireless router12-2(FIG.4A, block3020).

Referring now toFIG.4B, the controller19-2disables the wireless network “COMMON” by stopping the broadcasting of the SSID “COMMON”, and by no longer responding to the mobile device28(FIG.4B, block3022). The controller19-2continues to broadcast the SSID “PREMISES 2” (FIG.4B, block3024). The mobile device28determines that the wireless router12-2is no longer responding (FIG.4B, block3026). The mobile device28determines that the “PREMISES 2” network is available and that the mobile device28has previously joined the “PREMISES 2” network (FIG.4B, block3028). The mobile device28, without human involvement, sends a join request to the wireless router12-2along with authentication credentials (FIG.4B, block3030). The controller19-2determines that the authentication credentials are valid (FIG.4B, block3032). The controller19-2sends a message to the mobile device28indicating that the mobile device28is successfully connected to the wireless network “PREMISES 2” (FIG.4B, block3034). The controller19-2subsequently begins to rebroadcast the SSID “COMMON” (FIG.4B, block3036).

It is noted that, because the controller19-2is a component of the wireless router12-2, functionality implemented by the controller19-2may be attributed to the wireless router12-2generally. Moreover, in examples where the controller19-2comprises software instructions that program the processor device16-2to carry out functionality discussed herein, functionality implemented by the controller19-2may be attributed herein to the processor device16-2.

In an alternate embodiment, the wireless router12-2may periodically force all mobile devices attached to the COMMON network to attempt to reestablish a connection with the wireless router12-2. For example, every 10 minutes, 30 minutes, or any other suitable period of time, the wireless router12-2may disable the COMMON network, as described above. After a predetermined period of time, the wireless router12-2may reenable the COMMON network. Any such mobile devices that are capable of connecting with the PREMISES 2 network will attempt to join the PREMISES 2 after being disconnected from the COMMON network. This embodiment eliminates a need to maintain track of which mobile devices previously connected to the PREMISES 2 network and/or the need to maintain the connection timer42-2for individual mobile devices.

FIG.5is a block diagram of an environment10-1according to another implementation. The environment10-1is substantially similar to the environment10except as otherwise discussed herein. In this example, the wireless routers12-1and12-2maintain ignore lists39-1,39-2respectively, which identify mobile devices that the wireless routers12-1and12-2know have connected to the private networks24,48respectively. This may be determined, as discussed above, either through MAC identification or a device fingerprinting mechanism that identifies devices that have previously connected to the private networks24,48. In this example, the mobile device28moves to the location46that is within the wireless range22-2of the wireless router12-2. The mobile device28recognizes the common wireless network26as a network that the mobile device28has previously connected to, and also recognizes the wireless network48. Again, the mobile device network selection mechanism may prioritize staying on a same network when moving from one wireless router to another wireless router. Thus, in this example, the mobile device network selection mechanism of the mobile device28causes the mobile device28to attempt to join the common wireless network26. In this example, the wireless router12-2accesses the ignore list39-2and determines that the mobile device28is on the ignore list39-2. In response, the wireless router12-2does not respond to the mobile device28. The mobile device28may attempt to join the common wireless network26a predetermined number of times before giving up. The mobile device28may then automatically join the private network48. Note that ignoring the mobile device28(e.g., not responding to the mobile device28) will not initiate future SSID blocking behavior of the mobile device28.

FIG.6is a block diagram of a wireless router12according to one embodiment that implements identical functionality to the wireless routers12-1and12-2. The wireless router12includes a processor device16, a system memory18, and a system bus52. The system bus52provides an interface for system components including, but not limited to, the system memory18and the processor device16. The processor device16can be any commercially available or proprietary processor device.

The system bus52may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and/or a local bus using any of a variety of commercially available bus architectures. The system memory18may include non-volatile memory54(e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory56(e.g., random-access memory (RAM)). A basic input/output system (BIOS)58may be stored in the non-volatile memory54and can include the basic routines that help to transfer information between elements within the wireless router12. The volatile memory56may also include a high-speed RAM, such as static RAM, for caching data.

The wireless router12may further include or be coupled to a non-transitory computer-readable storage medium such as the storage device20, which may comprise, for example, an internal or external hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)), HDD (e.g., EIDE or SATA) for storage, flash memory, or the like. The storage device20and other drives associated with computer-readable media and computer-usable media may provide non-volatile storage of data, data structures, computer-executable instructions, and the like. A number of modules can be stored in the storage device20and in the volatile memory56, including an operating system and one or more program modules, such as the controller19, which may implement the functionality described herein in whole or in part. All or a portion of the examples may be implemented as a computer program product60stored on a transitory or non-transitory computer-usable or computer-readable storage medium, such as the storage device20, which includes complex programming instructions, such as complex computer-readable program code, to cause the processor device16to carry out the steps described herein. Thus, the computer-readable program code can comprise software instructions for implementing the functionality of the examples described herein when executed on the processor device16. The processor device16, in conjunction with the controller19in the volatile memory56, may serve as a controller, or control system, for the wireless router12that is to implement the functionality described herein.