When a user logs on to Instant Messaging, the user's client opens a window on the desktop that displays a list of the user's contacts. The contact list is generally organized into two distinct groups: contacts online and contacts offline. Each of the contacts listed is labeled with a status indicating their presence and availability, such as "Busy," "Away," or "Out to Lunch." Instant Messaging users can set their own status for any of these states. With many clients, a special state, often called "Idle" or "Away," is set automatically for users who have not used their computers (for example, no mouse or keyboard activity) for a short, predetermined period of time.
When user A adds user B to their contact list, user A's Instant Messaging client instantaneously determines the status for user B by sending a request for status that gets routed to user B's home server. User A's client also sends a "subscription" request that gets routed to user B's Instant Messaging home server. User B's Instant Messaging home server maintains a list of all subscribers for user B; this list normally includes all users who have added user B to their contact list. When user B changes online status, user B's Instant Messaging home server sends a notification to each subscriber in the subscriber list (including user A), notifying them of user B's new online status. In this manner, user A continuously maintains an up-to-date indication of the online status of every user in user A's contact list. Since status subscriptions are temporary, user A's client will periodically renew the requests at user B's home server, as long as user A retains user B on his or her contact list.
Related TopicsUser Privacy