US 7,532,571 B1
Providing online connectivity across a range of electronic communications systems
Michael Price, San Diego, Calif. (US); Alec Dun, Redmond, Wash. (US); Gulsen Demiroz, Redmond, Wash. (US); Ronald Eric Gray, Redmond, Wash. (US); David Raissipour, Issaquah, Wash. (US); and Aaron Hartwell, Duvall, Wash. (US)
Assigned to Microsoft Corporation, Redmond, Wash. (US)
Filed on Jun. 27, 2003, as Appl. No. 10/608,944.
Int. Cl. H04L 12/26 (2006.01)
U.S. Cl. 370—225  [370/392; 379/93.35; 709/239] 47 Claims
OG exemplary drawing
 
1. A method of monitoring and providing online connectivity sources, comprising;
monitoring a connectivity status of one or more connectivity sources, the one or more connectivity sources comprising at least a first connectivity source and a second connectivity source;
selecting one of one or more available connectivity sources for use for online communications;
connecting a user's computer to a remote computing system via the selected available connectivity source;
monitoring whether the connection to the remote computing system via the selected connectivity source has failed;
if the connection is detected as failed, then scheduling a poll on a background software thread;
if the poll fails, then generating a notification that the connection to the remote computing system via the selected connectivity source is disconnected, wherein the selected connectivity source comprises the first connectivity source;
attempting reconnection to the remote computing system;
if the selected connectivity source is lost, determining whether the second connectivity source is available;
if the second connectivity source is available, automatically connecting the user's computer to the remote computing system via the second connectivity source without user action;
reducing an interval at which reconnection to the remote computing system is allowed from a first interval to a second interval after not being able to connect to the remote computing system using the first connectivity source for a given time period so that a connection attempt may be made to the remote computing system via the second connectivity source after the reduced interval;
resetting the time period upon detecting a network change, the network change comprising a hardware change at the user's computer;
switching back to the first interval upon detecting the network change; and
marking the one or more connectivity sources as inoperable while the user's computer is shutting down to prevent subsequent online communication events from adding to shutdown delays.