IP Library › Granted Patent US 11,496,430
Granted Patent B2
US 11,496,430 · App. 14/684,778 · Granted Nov 8, 2022

Configurable offline messaging management using user presence information

Inventor: Shaunak Mistry (Scotts Valley, CA)
Assignee: Citrix Systems, Inc.
H04L51/224H04L51/043H04L67/54H04L51/214
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 11,496,430
App. No.
14/684,778
Granted
Nov 8, 2022
Kind
B2
Abstract

Methods, systems, computer-readable media, and apparatuses may provide management of messaging for one or more devices of a user according to the user's configurable presence schedule. A messaging management server may receive notifications of messages and the messages themselves from a messaging service provider. The messages may have originated from a first user and be intended for receipt by a second user. After a preset time period has elapsed, a notification of the message may be sent from the messaging management server to each of the second user's devices in accordance with the second user's presence schedule. Subsequent messages from the first user and intended for the second user may be routed from the messaging management server to the device on which the second user responded to the notification of the initial message and might not be routed to the second user's other devices.

Claims (72)

1. An apparatus comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the apparatus to:

send an indication of a state of a second user to an instant messaging service provider on behalf of the second user in response to a state of the second user being inactive or offline;

receive an indication from the instant messaging service provider that a message has been received by the instant messaging service provider, wherein the message is sent from a first user and intended for receipt by the second user, the message being undeliverable to a client device of the second user while the state of the second user is inactive or offline;

delay retrieval of the message from the instant messaging service provider for a configurable preset duration;

after the configurable preset duration has elapsed, retrieve the message from the instant messaging service provider and store the message in a database in response to the client device being unable to accept delivery of the message on behalf of the second user;

send a notification to a first set of user devices associated with the second user, the notification indicating an availability of the retrieved message; and

receive an initial response to the notification from a responding user device of the first set of user devices;

after receiving the initial response, retrieve the message from the database; and

send the message to the responding user device.

2. The apparatus of claim 1 , wherein the instructions, when executed by the one or more processors, cause the apparatus to send the notification to a particular user device of the first set of user devices even if the second user has an inactive presence state on the particular user device.

3. The apparatus of claim 1 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to:

receive a second message originating from the first user and intended for receipt by the second user;

determine a first time, wherein the first time is a time at which a latest communication was received from the responding user device prior to receiving the second message;

determine a second time, wherein the second time is a time at which the second message was received;

determine a duration based on the first time and the second time;

determine whether the duration is greater than a maximum duration; and

in response to determining that the duration is greater than the maximum duration, send a second notification indicating availability of the second message to a second set of user devices associated with the second user on which the second user is currently scheduled to be in an active state based on a presence schedule of the second user.

4. The apparatus of claim 3 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to:

in response to determining that the duration is less than or equal to the maximum duration, send the second message to the responding user device.

5. The apparatus of claim 4 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to:

determine whether the second user is scheduled to be active on the responding user device at the second time based on the presence schedule of the second user; and

in response to determining that the second user is scheduled to be active on the responding user device at the second time, permit the apparatus to send the second notification indicating availability of the second message to the responding user device.

6. The apparatus of claim 3 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to:

receive an update to the presence schedule; and

update the presence schedule based on the update.

7. The apparatus of claim 1 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to:

receive an inquiry from an inquiring user device associated with the second user; and

in response to determining that the inquiring user device is not the responding user device, prevent sending of the message received on behalf of the second user to the inquiring user device.

8. A method comprising:

sending, by a computing device, an indication of a state of a second user to an instant messaging service provider on behalf of the second user in response to a state of the second user is being inactive or offline;

receiving, by the computing device and from the instant messaging service provider, an indication that a message has been received at the instant messaging service provider, wherein the message is sent from a first user and intended for receipt by the second user, the message being undeliverable to a client device of the second user while the state of the second user is inactive or offline;

delaying, by the computing device, retrieval of the message from the instant messaging service provider for a configurable preset duration;

after the configurable preset duration has elapsed, retrieving, by the computing device, the message from the instant messaging service provider and storing, by the computing device, the message in a database in response to the client device being unable to accept delivery of the message on behalf of the second user;

sending, by the computing device, a notification to a first set of user devices associated with the second user, the notification indicating an availability of the retrieved message; and

receiving, by the computing device and from a responding user device of the first set of user devices, an initial response to the notification;

after receiving the initial response, retrieving, by the computing device and from the database, the message; and

sending, by the computing device and to the responding user device, the message.

9. The method of claim 8 , wherein the sending of the notification to a particular user device of the first set of user devices occurs even if the second user currently has an inactive presence state on the particular user device.

10. The method of claim 8 , further comprising:

receiving, by the computing device, a second message originating from the first user and intended for receipt by the second user;

determining, by the computing device, a first time, wherein the first time is a time at which a latest communication was received from the responding user device prior to receiving the second message;

determining, by the computing device, a second time, wherein the second time is a time at which the second message was received;

determining, by the computing device, a duration based on the first time and the second time;

determining, by the computing device, whether the duration is greater than a maximum duration; and

in response to determining that the duration is greater than the maximum duration, sending, by the computing device, a second notification indicating availability of the second message to a second set of user devices associated with the second user on which the second user is currently scheduled to be in an active state based on a presence schedule of the second user.

11. The method of claim 10 , further comprising:

determining, by the computing device, whether the second user is scheduled to be active on the responding user device at the second time based on the presence schedule of the second user; and

in response to determining that the second user is scheduled to be active on the responding user device at the second time, sending, by the computing device and to the responding user device, the second notification indicating availability of the second message.

12. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors of an apparatus, cause the apparatus to:

send an indication of a state of a second user to an instant messaging service provider on behalf of the second user in response to a state of the second user being inactive or offline;

receive an indication from the instant messaging service provider that a message has been received by the instant messaging service provider, wherein the message is sent from a first user and intended for receipt by the second user, the message being undeliverable to a client device of the second user while the state of the second user is inactive or offline;

delay retrieval of the message from the instant messaging service provider for a configurable preset duration;

after the configurable preset duration has elapsed, retrieve the message from the instant messaging service provider and store the message in a database in response to the client device being unable to accept delivery of the message on behalf of the second user; and

send a notification to a first set of user devices associated with the second user, the notification indicating an availability of the retrieved message; and

receive an initial response to the notification from a responding user device of the first set of user devices;

after receiving the initial response, retrieve the message from the database; and

send the message to the responding user device.

13. The one or more non-transitory computer-readable media of claim 12 , storing additional instructions that, when executed by the one or more processors of the apparatus, cause the apparatus to send the notification to a particular user device of the first set of user devices even if the second user has an inactive presence state on the particular user device.

14. The one or more non-transitory computer-readable media of claim 12 , storing additional instructions that, when executed by the one or more processors of the apparatus, cause the apparatus to:

receive a second message originating from the first user and intended for receipt by the second user;

determine a first time, wherein the first time is a time at which a latest communication was received from the responding user device prior to receiving the second message;

determine a second time, wherein the second time is a time at which the second message was received;

determine a duration based on the first time and the second time;

determine whether the duration is greater than a maximum duration; and

in response to determining that the duration is greater than the maximum duration, send a second notification indicating availability of the second message to a second set of user devices associated with the second user on which the second user is currently scheduled to be in an active state based on a presence schedule of the second user.

15. The one or more non-transitory computer-readable media of claim 14 , storing additional instructions that, when executed by the one or more processors of the apparatus, cause the apparatus to:

in response to determining that the duration is less than or equal to the maximum duration, send the second message to the responding user device.

16. The one or more non-transitory computer-readable media of claim 15 , storing additional instructions that, when executed by the one or more processors of the apparatus, cause the apparatus to:

determine whether the second user is scheduled to be active on the responding user device at the second time based on the presence schedule of the second user; and

in response to determining that the second user is scheduled to be active on the responding user device at the second time, permit the apparatus to send the second notification indicating availability of the second message to the responding user device.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2015
From: MISTRY, SHAUNAK
To: CITRIX SYSTEMS, INC.
Reel/Frame 035449/0745 →
Continuity (1)
Related Publication 20160301648A1 · Oct 13, 2016