Patent ID: 8416711

Claim:
A communication system comprising: at least one user node configured to: enable access to the at least one user node via a first network through a first-network address associated with the at least one user node, the first-network address configured to collectively identify the at least one user node to the first network; have a network address identifying the at least one user node internally within a second network; have an availability status relating to an availability of a respective user associated with the at least one user node; and enable an address translator to map said second-network address to the first-network address associated with the at least one user node; wherein the at least one user node is installed with a communication client configured to: enable communication with another user node internal to the second network, via the second network, using a second-network address associated with the another user node; enable communication with a user node external to the second network and associated with the first network using the first-network address; compare a network address of the at least one user node and a network address associated with a second user node effective to determine whether the at least one user node and the second user node are both of said second network; responsive to determining the at least one user node and the second user node are both nodes of said second network: probe whether direct communication between the at least one user node and the second user node over the second network is possible; responsive to determining direct communication between the at least one user node and the second user node is possible: poll an availability status of the second user node directly over the second network without routing via the first network; and communicate the availability status of the at least one user node to the second user node directly over the second network without routing via the first network; responsive to determining direct communication between the at least one user node and second user node over the second network is not possible, communicate the availability status by routing through at least one user node associated with the first network which stores part of a distributed database; and retrieve the network address associated with the second user node from the at least one user node associated with the first network which stores part of a distributed database, the distributed database configured to store first-network addresses.