# US 2013/0155876 A1 · Captive Portal State Detection and Avoidance for Multiple-Interface Traffic Offloading

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2013/0155876 A1
- Document ID: US20130155876A1
- Status: Published application
- Kind: A1
- Application number: 13/330,498
- Filed: 2011-12-19
- Published: 2013-06-20
- Earliest claimed: 2011-12-19
- Assignees: Facebook, Inc.
- Inventors: Adrian Potra; Mohit Talwar
- Web page: https://patentgrep.com/patent/US20130155876A1

## CPC

- H04L 69/28: Timers or timing mechanisms used in protocols
- H04L 12/6418: {Hybrid transport}
- H04W 12/068: {using credential vaults, e.g. password manager applications or one time password [OTP] applications}
- H04W 36/1446: {wherein at least one of the networks is unlicensed}
- H04L 67/563: Data redirection of data network streams
- H04W 8/082: {for traffic bypassing of mobility servers, e.g. location registers, home PLMNs or home agents}
- H04W 24/06: Testing, {supervising or monitoring} using simulated traffic
- H04W 36/125: {involving different types of service backbones}
- H04W 48/14: using user query {or user detection}
- H04W 80/04: Network layer protocols, e.g. mobile IP [Internet Protocol]
- H04W 88/06: adapted for operation in multiple networks {or having at least two operational modes}, e.g. multi-mode terminals
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

In one embodiment, a mobile device connecting to a Wi-Fi hotspot first performs a connectivity check to determine whether the wireless connection is trapped in the walled garden of a captive portal by transmitting a connectivity check message to one or more external endpoints in the public IP network. If no response is received, the mobile device determines that it is in the captive portal state, and generates a browser window bound to the Wi-Fi state tracker of the mobile device displaying the portal page for the captive portal. In such a manner, the mobile device does not offload any traffic from its wireless cellular interface to its Wi-Fi interface until it is certain the Wi-Fi interface may access the public IP network, thereby preventing data interruption for mobile applications.

## Claims

### Claim 1

One or more non-transitory computer-readable storage media embodying logic that is operable, when executed by one or more computing systems, to:
maintain, via a first wireless interface, a first connection with a first wireless data network;
initiate, via a second wireless interface and while maintaining the first connection, a second connection with a second wireless data network;
determine, via a wireless network state tracker, whether the second connection is in a captive portal state, wherein the determination comprises:
transmitting a connectivity check via the second connection to an endpoint;
starting a timer substantially simultaneously with the transmission of the connectivity check;
if no response from the endpoint is received prior to an expiration of the timer, identifying the second connection as being in the captive portal state; and
if a response is received from the endpoint prior to the expiration of the timer, identifying the second connection as not being in the captive portal state.

### Claim 2 (depends on 1)

The media of claim 1, further comprising instructions operable, when executed, to:
in response to a positive determination, generate and display a user interface comprising content from a portal hosted by the second wireless data network; and
bind traffic associated with the user interface to the second interface.

### Claim 3 (depends on 2)

The media of claim 2, further comprising instructions operable, when executed, to:
receive, via the user interface, authentication credentials;
submit the authentication credentials to the portal; and
in response to receiving an authorization granted message from the portal;
offload data traffic for the first interface to the second interface.

### Claim 4 (depends on 3)

The media of claim 3, further comprising instructions operable, when executed, to:
periodically determine, via the wireless network state tracker, whether the second connection is in a captive portal state, and
in response to a positive determination:
generate and display a user interface comprising content from a portal hosted by the second wireless data network; and
bind traffic associated with the user interface to the second interface.

### Claim 5 (depends on 4)

The media of claim 4, wherein the content comprises a user prompt to renew an access subscription.

### Claim 6 (depends on 5)

The media of claim 5, further comprising instructions operable, when executed, to:
continually monitor one or more properties of the second connection;
terminate the second condition based on the one or more properties of the second connection; and
offload all traffic to the first interface.

### Claim 7 (depends on 1)

The media of claim 1, further comprising instructions operable, when executed, to:
in response to a negative determination, offload data traffic for the first interface to the second interface.

### Claim 8 (depends on 7)

The media of claim 7, further comprising instructions operable, when executed, to:
periodically determine, via the wireless network state tracker whether the second connection is in a captive portal state, and
in response to a positive determination:
generate and display a user interface comprising content from a portal hosted by the second wireless data network; and
bind traffic associated with the user interface to the second interface.

### Claim 9 (depends on 8)

The media of claim 8, wherein the content comprises a user prompt to renew an access subscription.

### Claim 10 (depends on 9)

The media of claim 9, further comprising instructions operable, when executed, to:
continually monitor one or more properties of the second connection;
terminate the second condition based on the one or more properties of the second connection; and
offload all traffic to the first interface.

### Claim 11 (depends on 1)

The media of claim 1, further comprising instructions operable, when executed, to:
continually monitor one or more properties of the second connection;
terminate the second condition based on the one or more properties of the second connection; and
offload all traffic to the first interface.

### Claim 12

An apparatus, comprising:
one or more processors;
a first wireless interface;
a second wireless interface;
one or more non-transitory computer-readable storage media embodying logic that is operable, when executed by the one or more processors, to:
maintain, via the first wireless interface, a first connection with a first wireless data network;
initiate, via the second wireless interface and while maintaining the first connection, a second connection with a second wireless data network;
determine, via a wireless network state tracker, whether the second connection is in a captive portal state, wherein the determination comprises:
transmitting a connectivity check via the second connection to an endpoint;
starting a timer substantially simultaneously with the transmission of the connectivity check;
if no response from the endpoint is received prior to an expiration of the timer, identifying the second connection as being in the captive portal state; and
if a response is received from the endpoint prior to the expiration of the timer, identifying the second connection as not being in the captive portal state.

### Claim 13 (depends on 12)

The apparatus of claim 12, the one or more media further comprising instructions operable, when executed by the one or more processors, to:
in response to a positive determination, generate and display a user interface comprising content from a portal hosted by the second wireless data network; and
bind traffic associated with the user interface to the second interface.

### Claim 14 (depends on 12)

The apparatus of claim 12, the one or more media further comprising instructions operable, when executed by the one or more processors, to:
receive, via the user interface, authentication credentials;
submit the authentication credentials to the portal; and
in response to receiving an authorization granted message from the portal;
offload data traffic for the first interface to the second interface.

### Claim 15 (depends on 14)

The apparatus of claim 14, further comprising instructions operable, when executed, to:
periodically determine, via the wireless network state tracker, whether the second connection is in a captive portal state, and
in response to a positive determination:
generate and display a user interface comprising content from a portal hosted by the second wireless data network; and
bind traffic associated with the user interface to the second interface.

### Claim 16 (depends on 15)

The apparatus of claim 15, wherein the content comprises a user prompt to renew an access subscription.

### Claim 17 (depends on 16)

The apparatus of claim 16, the one or more media further comprising instructions operable, when executed by the one or more processors, to:
continually monitor one or more properties of the second connection;
terminate the second condition based on the one or more properties of the second connection; and
offload all traffic to the first interface.

### Claim 18 (depends on 12)

The apparatus of claim 12, the one or more media further comprising instructions operable, when executed by the one or more processors, to:
in response to a negative determination, offload data traffic for the first interface to the second interface.

### Claim 19 (depends on 18)

The apparatus of claim 18, the media further comprising instructions operable, when executed by the one or more processors, to:
periodically determine, via the wireless network state tracker whether the second connection is in a captive portal state, and
in response to a positive determination:
generate and display a user interface comprising content from a portal hosted by the second wireless data network; and
bind traffic associated with the user interface to the second interface.

### Claim 20

A method comprising, by one or more computing systems:
maintaining, via a first wireless interface, a first connection with a first wireless data network;
initiating, via a second wireless interface and while maintaining the first connection, a second connection with a second wireless data network;
determining, via a wireless network state tracker, whether the second connection is in a captive portal state, wherein the determination comprises:
transmitting a connectivity check via the second connection to an endpoint;
starting a timer substantially simultaneously with the transmission of the connectivity check;
if no response from the endpoint is received prior to an expiration of the timer, identifying the second connection as being in the captive portal state; and
if a response is received from the endpoint prior to the expiration of the timer, identifying the second connection as not being in the captive portal state.
