IP Library Granted Patent US 7,945,612
Granted Patent B2
US 7,945,612 · App. 11/392,472 · Granted May 17, 2011

Aggregating user presence across multiple endpoints

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 7,945,612
App. No.
11/392,472
Granted
May 17, 2011
Kind
B2
Abstract

A presence aggregation system provides a presence server that allows users to publish information regarding their availability with the presence server. The presence server maintains a record of each user's published information. When an endpoint publishes information regarding a user's availability at that endpoint with the presence server, the presence server provides all of the user's published information, including the information just published, to each of the user's endpoints, including the endpoint which published the information. This allows each of the user's endpoints to generate an aggregated availability of the user. The presence server may also provide all of the user's published information, including the information just published, to each of the subscribing users' endpoints. This allows the subscribing users to also generate a view of the user's aggregated availability.

Claims (49)

1. A method in a presence server for facilitating aggregation of user presence across multiple endpoints of a publishing user, the method comprising:

receiving at the presence server from a first endpoint of the publishing user a subscription to receive presence information of a watched user;

after the watched user has published an event to the presence server, sending from the presence server to the first endpoint a watched user document containing events published by the watched user;

sending from the presence server to each endpoint of the publishing user a user document for the publishing user, the user document containing events published by the endpoints of the publishing user, the events indicating a device state and a user state for each endpoint of the publishing user, wherein upon receiving the user document, each endpoint of the publishing user generates an aggregated availability of the publishing user that is the same for each endpoint based on the events of the publishing user contained in the received user document, the aggregated availability indicating ability of the publishing user to communicate based on analysis of the events of the user document, the aggregated availability being selected as one of the device states or user states of an endpoint of the publishing user;

receiving at the presence server from a second endpoint of the publishing user a first event published by a second endpoint of the publishing user;

updating the user document with the received first event to create a first updated user document;

sending from the presence server to each of the endpoints of the publishing user the first updated user document, such that, when the first updated user document is processed at each of the endpoints of the publishing user, a first updated aggregated availability of the publishing user is generated that is the same for each endpoint and wherein each endpoint of the publishing user determines to take an action based on the aggregated availability;

receiving at the presence server from a third-party device a third-party event relating to the publishing user, the third-party event being generated by a third party;

updating the user document with the received third-party event to create a third-party updated user document; and

sending from the presence server to each of the endpoints of the publishing user the third-party updated user document, such that, when the third-party updated user document is processed at each of the endpoints of the publishing user, a third-party updated aggregated availability of the publishing user is generated that is the same for each endpoint.

2. The method of claim 1 further comprising, when the first updated user document is updated with a second event published by a third endpoint of the user creating a second updated user document, sending from the presence server to each of the endpoints of the publishing user the second updated user document, such that, when the second updated user document is processed at each of the endpoints of the publishing user, a second updated aggregated availability of the publishing user is generated that is the same for each endpoint.

3. The method of claim 1 , wherein the first event is published as a user state.

4. The method of claim 1 , wherein the first event is published as a device state.

5. The method of claim 1 , wherein the first event is published as a generic state.

6. The method of claim 1 , wherein the first event is manually provided by the publishing user.

7. The method of claim 1 , wherein the first event is detected by an application running on the second computer system.

8. A computing device comprising:

a computer-readable medium containing instructions for controlling a presence server to facilitate aggregation of user presence across multiple endpoints of a publishing user, by a method comprising:

receiving at the presence server from a first endpoint of the publishing user a subscription to receive presence information of a watched user;

after the watched user has published an event to the presence server, sending from the presence server to the first endpoint a watched user document containing events published by the watched user;

sending from the presence server to each endpoint of the publishing user a user document for the publishing user, the user document containing events published by the endpoints of the publishing user, the events indicating a device state and a user state for each endpoint of the publishing user, wherein upon receiving the user document, each endpoint of the publishing user generates an aggregated availability of the publishing user that is the same for each endpoint based on the events of the publishing user contained in the received user document, the aggregated availability indicating ability of the publishing user to communicate based on analysis of the events of the user document, the aggregated availability being selected as one of the device states or user states of an endpoint of the publishing user;

receiving at the presence server from a second endpoint of the publishing user a first event published by a second endpoint of the publishing user;

updating the user document with the received first event to create a first updated user document;

sending from the presence server to each of the endpoints of the publishing user the first updated user document, such that, when the first updated user document is processed at each of the endpoints of the publishing user, a first updated aggregated availability of the publishing user is generated that is the same for each endpoint and wherein each endpoint of the publishing user determines to take an action based on the aggregated availability;

receiving at the presence server from a third-party device a third-party event relating to the publishing user, the third-party event being generated by a third party;

updating the user document with the received third-party event to create a third-party updated user document; and

sending from the presence server to each of the endpoints of the publishing user the third-party updated user document, such that, when the third-party updated user document is processed at each of the endpoints of the publishing user, a third-party updated aggregated availability of the publishing user is generated that is the same for each endpoint; and

a processor that executes the instructions.

9. The computing device of claim 8 further comprising, when the first updated user document is updated with a second event published by a third endpoint of the user creating a second updated user document, sending from the presence server to each of the endpoints of the publishing user the second updated user document, such that, when the second updated user document is processed at each of the endpoints of the publishing user, a second updated aggregated availability of the publishing user is generated that is the same for each endpoint.

10. The computing device of claim 8 wherein the first event is published as a user state.

11. The computing device of claim 8 wherein the first event is published as a device state.

12. The computing device of claim 8 wherein the first event is published as a generic state.

13. The computing device of claim 8 wherein the first event is manually provided by the publishing user.

14. The computing device of claim 8 wherein the first event is detected by an application running on the second computer system.

15. A computer-readable storage device that is not a signal containing instructions for controlling a presence server to facilitate aggregation of user presence across multiple endpoints of a publishing user, by a method comprising:

receiving at the presence server from a first endpoint of the publishing user a subscription to receive presence information of a watched user;

after the watched user has published an event to the presence server, sending from the presence server to the first endpoint a watched user document containing events published by the watched user;

sending from the presence server to each endpoint of the publishing user a user document for the publishing user, the user document containing events published by the endpoints of the publishing user, the events indicating a device state and a user state for each endpoint of the publishing user, wherein upon receiving the user document, each endpoint of the publishing user generates an aggregated availability of the publishing user that is the same for each endpoint based on the events of the publishing user contained in the received user document, the aggregated availability indicating ability of the publishing user to communicate based on analysis of the events of the user document, the aggregated availability being selected as one of the device states or user states of an endpoint of the publishing user;

receiving at the presence server from a second endpoint of the publishing user a first event published by a second endpoint of the publishing user;

updating the user document with the received first event to create a first updated user document;

sending from the presence server to each of the endpoints of the publishing user the first updated user document, such that, when the first updated user document is processed at each of the endpoints of the publishing user, a first updated aggregated availability of the publishing user is generated that is the same for each endpoint and wherein each endpoint of the publishing user determines to take an action based on the aggregated availability;

receiving at the presence server from a third-party device a third-party event relating to the publishing user, the third-party event being generated by a third party;

updating the user document with the received third-party event to create a third-party updated user document; and

sending from the presence server to each of the endpoints of the publishing user the third-party updated user document, such that, when the third-party updated user document is processed at each of the endpoints of the publishing user, a third-party updated aggregated availability of the publishing user is generated that is the same for each endpoint.

16. The computer-readable storage device of claim 15 further comprising, when the first updated user document is updated with a second event published by a third endpoint of the user creating a second updated user document, sending from the presence server to each of the endpoints of the publishing user the second updated user document, such that, when the second updated user document is processed at each of the endpoints of the publishing user, a second updated aggregated availability of the publishing user is generated that is the same for each endpoint.

17. The computer-readable storage device of claim 15 wherein the first event is published as a user state.

18. The computer-readable storage device of claim 15 wherein the first event is published as a device state.

19. The computer-readable storage device of claim 15 wherein the first event is published as a generic state.

20. The computer-readable storage device of claim 15 wherein the first event is manually provided by the publishing user.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2006
From: RAGHAV, AMRITANSH; CHAVDA, ANKUR; SHTIEGMAN, ERAN; VENKATESHAIAH, SETTY; RAO, SIRA P.
To: MICROSOFT CORPORATION
Reel/Frame 017855/0521 →