Patent ID: 7945612

Claim:
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.