A rules-based real-time messaging system for groups of users, in which an
availability status may be maintained in association with each user.
Clients are communicably coupled to a real-time messaging server, which
maintains indications of the online/offline presence status of each user,
as well as other user attributes. Rules and a rules engine are maintained
in the real-time messaging server for controlling the delivery of
messages to users, and for controlling how the availability of users is
provided to other users. Based on the specific rules stored on the
real-time messaging server, the rules engine determines the state of
various relevant conditions, such as the availability status of users of
the system, and also detects the occurrence of various real-time events,
such as a user logging-on to or logging-off from the system, in order to
control the delivery of various types of messages and/or performance of
resulting actions.