Aggregating user presence across multiple endpoints
First Claim
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 Assignments
0 Petitions
Accused Products
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.
-
Citations
20 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
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. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
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. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification