A distributed software system provides functionality for users to cluster
together various types of computing devices (PCs, mobile phones, PDAs,
set top boxes, IP appliances, etc.) and associated service resources
(landline telephone, mobile telephone, long distance service, VoIP,
instant messaging, etc.) to form a service cluster, and to effectively
bind the service cluster to a common user identity. The software system
enables each service resource that is natively available to a device in
the cluster to be accessed and used by the other devices in the cluster.
For example, in one embodiment, a call placed to any device in the
cluster can be routed to and answered on any other device in the cluster,
transparently to the caller. A cluster owner can also grant permissions
to other users to use particular service resources available to the
cluster. Routing of calls is handled efficiently using a distributed hash
table system.