Patent ID: 8111686

Claim:
A computer-readable storage device containing instructions for controlling a computing device to support communications between users, by a method comprising: when the computing device is to send a communication, subscribing to aggregate capabilities generated based on capabilities published by multiple active endpoints for a first user, a capability representing a way by which another user can communicate with the first user, an active endpoint being an endpoint through which the first user is currently online, the aggregate capabilities providing an aggregate view of available modes of communication of the first user, a mode of communication being a combination of a capability and an active endpoint; receiving the aggregate capabilities; determining a first preferred mode of communication for the first user from the received aggregate capabilities, the first preferred mode of communication including a first preferred capability and a first preferred active endpoint; and sending a first invitation communication to the first user at the first preferred active endpoint, the first invitation communication inviting the first user to communicate using the first preferred capability; and when the computing device receives a second invitation communication that requests to communicate using a second preferred capability because the computing device was determined to be a second preferred active endpoint of a second preferred mode of communication of a second user, the second preferred mode of communication including the second preferred capability and the second preferred active endpoint, determining by the computing device whether a current preferred mode of communication of the second user that includes a current preferred capability and a current preferred active endpoint is the same as the second preferred mode of communication by determining whether the second preferred capability is the same as the current preferred capability and whether the second preferred active endpoint is the same as the current preferred active endpoint; when the computing device determines that the second preferred mode of communication of the second user is the same as the current preferred mode of communication of the second user, automatically accepting the second invitation communication, and when the computing device determines that the second preferred mode of communication of the second user is not the same as the current preferred mode of communication of the second user, rejecting the second invitation communication.