IP Library Granted Patent US 12,219,017
Granted Patent B1
US 12,219,017 · App. 17/744,981 · Granted Feb 4, 2025

System and method for aggregating communication connections

Inventors: Jan Boris Koum (Santa Clara, CA); Bryan Dennis O'Connor (Atherton, CA); Brian Lange Acton (Palo Alto, CA)
Assignee: WhatsApp Inc.
H04L67/141G06Q10/107H04L51/04H04L65/1046H04L65/1063H04L65/1069H04L65/403H04L67/10H04L67/55H04L67/566H04L67/01
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,219,017
App. No.
17/744,981
Granted
Feb 4, 2025
Kind
B1
Abstract

A system and methods are provided for aggregating communication connections. Multiple users connect to a system (e.g., a web-based system) that hosts an application or service for exchanging communications. Users who exchange communications among themselves may be considered “associates.” When one user who is on-line with the application sends a communication through the system for an associate, the system determines whether the associate is on-line or off-line. If the associate is off-line, the system crafts and sends toward the associate a notification regarding the communication, including an address of the communication server to which the one user is connected. When the associate's device receives the notification, the application may attempt to connect to the specified address. In this way associated users' connections will aggregate or gravitate toward the same communication server, thereby eliminating the latency and cost of exchanging users' communications between multiple communication servers.

Claims (34)

1. A method, comprising:

receiving an alert message at a client device from a communication system, the alert message indicating that a first communication for the client device has been received at the communication system from a second client device, wherein the alert message comprises a first address of a server of the communication system, a second address of the server of the communication system, and a portion of the first communication, wherein the first address is used to connect using a first protocol with the server of the communication system, wherein the second address is used to connect using a second protocol with the server of the communication system, wherein the alert message is received at the client device when the client device does not have an open connection with the server of the communication system;

opening a messaging application on the client device in response to the alert message;

selecting, from the first address and the second address, a selected address;

connecting the client device to the communication system at the selected address; and

receiving the first communication via the connection using the first protocol or the second protocol based on the selected address.

2. The method of claim 1 , comprising receiving the alert message when the client device is off-line from the communication system.

3. The method of claim 1 , comprising selecting the selected address based on a communication protocol associated with the selected address.

4. The method of claim 1 , comprising selecting the selected address based on security of a port at the selected address.

5. The method of claim 1 , comprising selecting the selected address based on an order of the selected address in the first address and the second address.

6. The method of claim 1 , comprising selecting the selected address randomly from the first address and the second address.

7. An apparatus, comprising:

processing circuitry;

memory coupled to the processing circuitry, the memory to store instructions that when executed by the processing circuitry causes the processing circuitry to:

receive an alert message at a client device from a communication system, the alert message indicating that a first communication for the client device has been received at the communication system from a second client device, wherein the alert message comprises a first address of a server of the communication system, a second address of the server of the communication system, and a portion of the first communication, wherein the first address is used to connect using a first communication protocol with the server of the communication system, wherein the second address is used to connect using a second communication protocol with the server of the communication system, wherein the alert message is received at the client device when the client device does not have an open connection with the server of the communication system;

open a messaging application on the client device in response to the alert message;

select, from the first address and the second address, a selected address;

connect the client device to the communication system at the selected address; and

receive the first communication via the connection using the first protocol or the second protocol based on the selected address.

8. The apparatus of claim 7 , the processing circuitry to receive the alert message when the client device is off-line from the communication system.

9. The apparatus of claim 7 , the processing circuitry to select the selected address based on a communication protocol associated with the selected address.

10. The apparatus of claim 7 , the processing circuitry to select the selected address based on security of a port at the selected address.

11. The apparatus of claim 7 , the processing circuitry to select the selected address based on an order of the selected address in the first address and the second address.

12. The apparatus of claim 7 , the processing circuitry to select the selected address randomly from the first address and the second address.

13. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to:

receive an alert message at a client device from a communication system, the alert message indicating that a first communication for the client device has been received at the communication system from a second client device, wherein the alert message comprises a first address of a server of the communication system, a second address of the server of the communication system, and a portion of the first communication, wherein the first address is used to connect using a first communication protocol with the server of the communication system, wherein the second address is used to connect using a second communication protocol with the server of the communication system, wherein the alert message is received at the client device when the client device does not have an open connection with the server of the communication system;

open a messaging application on the client device in response to the alert message;

select, from the first address and the second address, a selected address;

connect the client device to the communication system at the selected address; and

receive the first communication via the connection using the first protocol or the second protocol based on the selected address.

14. The computer-readable medium of claim 13 , comprising further instructions that, when executed, cause the processor to receive the alert message when the client device is off-line from the communication system.

15. The computer-readable medium of claim 13 , comprising further instructions that, when executed, cause the processor to select the selected address based on a communication protocol associated with the selected address.

16. The computer-readable medium of claim 13 , comprising further instructions that, when executed, cause the processor to select the selected address based on security of a port at the selected address.

17. The computer-readable medium of claim 13 , comprising further instructions that, when executed, cause the processor to select the selected address based on an order of the selected address in the first address and the second address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2022
From: KOUM, JAN; O'CONNOR, BRYAN D.; ACTON, BRIAN
To: WHATSAPP INC.
Reel/Frame 061333/0892 →
Continuity (3)
Continuation 16440171 · Jun 13, 2019
Continuation 15277953 · Sep 27, 2016
Continuation 13782690 · Mar 1, 2013
References Cited (84)
US 5313581A · Giokas et al. · 1994 [cited by applicant]
US 6415318B1 · Aggarwal et al. · 2002 [cited by applicant]
US 7062465B1 · Shafiee et al. · 2006 [cited by applicant]
US 7167552B1 · Shaffer et al. · 2007 [cited by applicant]
US 7412482B2 · Ludwig et al. · 2008 [cited by applicant]
US 7426181B1 · Feroz et al. · 2008 [cited by applicant]
US 7660849B1 · Shaffer et al. · 2010 [cited by applicant]
US 7676599B2 · Cooney · 2010 [cited by examiner]
US 7797642B1 · Karam et al. · 2010 [cited by applicant]
US 7908320B2 · Ludwig et al. · 2011 [cited by applicant]
US 8204938B2 · Digate et al. · 2012 [cited by applicant]
US 8224896B2 · Knight et al. · 2012 [cited by applicant]
US 8358762B1 · Renner et al. · 2013 [cited by applicant]
US 8407311B1 · Behforooz et al. · 2013 [cited by applicant]
US 8443041B1 · Krantz · 2013 [cited by examiner]
US 8613048B2 · Braddy et al. · 2013 [cited by applicant]
US 8751582B1 · Behforooz et al. · 2014 [cited by applicant]
US 8756501B1 · Karam · 2014 [cited by applicant]
US 8767934B2 · Brunson · 2014 [cited by examiner]
US 8923491B2 · Macwan · 2014 [cited by applicant]
US 8966075B1 · Chickering · 2015 [cited by examiner]
US 9049574B2 · Rosen et al. · 2015 [cited by applicant]
US 9100807B2 · Rosen et al. · 2015 [cited by applicant]
US 9226121B2 · Koum et al. · 2015 [cited by applicant]
US 9503485B1 · Koum et al. · 2016 [cited by applicant]
US 9652738B2 · Bentley et al. · 2017 [cited by applicant]
US 10063652B2 · Flack et al. · 2018 [cited by applicant]
US 10367892B2 · Koum et al. · 2019 [cited by applicant]
US 11336734B1 · Koum · 2022 [cited by examiner]
US 20020086732A1 · Kirmse et al. · 2002 [cited by applicant]
US 20020126701A1 · Requena · 2002 [cited by applicant]
US 20020161775A1 · Lasensky et al. · 2002 [cited by applicant]
US 20030158900A1 · Santos · 2003 [cited by applicant]
US 20040133648A1 · Tamura · 2004 [cited by examiner]
US 20040189699A1 · Dobronsky · 2004 [cited by applicant]
US 20050014490A1 · Desai et al. · 2005 [cited by applicant]
US 20050233737A1 · Lin · 2005 [cited by applicant]
US 20050268329A1 · Lee et al. · 2005 [cited by applicant]
US 20060015588A1 · Achlioptas et al. · 2006 [cited by applicant]
US 20060031393A1 · Cooney · 2006 [cited by examiner]
US 20060041917A1 · Vellanki · 2006 [cited by examiner]
US 20060195519A1 · Slater et al. · 2006 [cited by applicant]
US 20060203749A1 · Tseng · 2006 [cited by applicant]
US 20060239212A1 · Pirzada et al. · 2006 [cited by applicant]
US 20070055742A1 · Hebert · 2007 [cited by examiner]
US 20070078935A1 · Garcia-Martin · 2007 [cited by examiner]
US 20070237154A1 · Kalinichenko et al. · 2007 [cited by applicant]
US 20070253387A1 · Crampton · 2007 [cited by applicant]
US 20070280464A1 · Hughes et al. · 2007 [cited by applicant]
US 20080037446A1 · Zhou et al. · 2008 [cited by applicant]
US 20080082690A1 · Landry · 2008 [cited by examiner]
US 20080240386A1 · Yanagi · 2008 [cited by applicant]
US 20080267117A1 · Stern · 2008 [cited by applicant]
US 20090034516A1 · Liu et al. · 2009 [cited by applicant]
US 20090080635A1 · Altberg et al. · 2009 [cited by applicant]
US 20090089683A1 · Thapa · 2009 [cited by applicant]
US 20090323554A1 · Arisoylu et al. · 2009 [cited by applicant]
US 20090327394A1 · Kaji et al. · 2009 [cited by applicant]
US 20100165889A1 · Madabhushi et al. · 2010 [cited by applicant]
US 20100296418A1 · You et al. · 2010 [cited by applicant]
US 20110161654A1 · Margolis et al. · 2011 [cited by applicant]
US 20110238734A1 · Curry et al. · 2011 [cited by applicant]
US 20110258280A1 · Sloan et al. · 2011 [cited by applicant]
US 20110264464A1 · Fonger et al. · 2011 [cited by applicant]
US 20120158996A1 · Thaler, III · 2012 [cited by examiner]
US 20120246229A1 · Carr et al. · 2012 [cited by applicant]
US 20130054697A1 · Cha · 2013 [cited by applicant]
US 20130055112A1 · Joseph · 2013 [cited by examiner]
US 20130055257A1 · Yamashita · 2013 [cited by applicant]
US 20130077539A1 · Averill et al. · 2013 [cited by applicant]
US 20130094642A1 · Sverdlov et al. · 2013 [cited by applicant]
US 20130103798A1 · El Chami et al. · 2013 [cited by applicant]
US 20130166688A1 · Hara · 2013 [cited by applicant]
US 20130179941A1 · McGloin et al. · 2013 [cited by applicant]
US 20130185560A1 · Eld et al. · 2013 [cited by applicant]
US 20130246609A1 · Topchy et al. · 2013 [cited by applicant]
US 20130304835A1 · Hu · 2013 [cited by examiner]
US 20140123270A1 · Liu · 2014 [cited by examiner]
US 20150230147A1 · Brownworth et al. · 2015 [cited by applicant]
US 20150249636A1 · Lin · 2015 [cited by examiner]
US 20150351075A1 · Korver · 2015 [cited by examiner]
US 20170019484A1 · Koum et al. · 2017 [cited by applicant]
US 20170039525A1 · Seidle · 2017 [cited by examiner]
US 20210392075A1 · Alashkin · 2021 [cited by examiner]