[Standards-JIG] Lurking and JEP-045

Greg Hudson ghudson at MIT.EDU
Mon Oct 2 17:08:19 UTC 2006

I'll define "lurking" as participating in a MUC without sending any
messages and without any indication of your presence.  Note that
simply participating anonymously is not lurking; other MUC
participants are still notified that *someone* has entered and left
the room, and may even be able to correlate that fact with other
information to determine the participant's identity.

A JEP-045 room cannot allow lurking, as section 7.1.3 states:

   The service MUST also send presence from the new occupant's room JID
   to the full JIDs of all the occupants (including the new occupant)

Possible use cases for allowing lurking include:

   1. Moderated events: a large moderated event, such as a conference
      panel discussion or a "chat with famous celebrity" event,
      typically has a few voiced participants and a bunch of
      spectators.  The spectators typically do not care about each
      others' presence (although they may be interested in the number
      of spectators), and any client notifications of other spectators
      entering or leaving would just be noise.  However, if the room is
      JEP-045 compliant it must send O(n^2) stanzas to apprise the
      spectators of each others' presence.  For the sake of scalable
      traffic costs and to reduce client noise, such a room might want
      to enable or even force spectators to lurk.

   2. Heightened anonymity: a support-group type room might want to
      allow lurking to allow new people to "scout the territory"
      tracelessly in order to encourage participation.

   3. Reduced-commitment help: an informal technical support forum,
      which might not allow anonymous participation, might still want
      to allow lurking so that people can listen in for questions
      they're interested in answering without appearing available to
      room occupants.

The basic approach to enabling lurking options in JEP-045 is to relax
section 7.1.3 to allow some occupants to be hidden (and thus excepted
from the "MUST send presence" rules) as long as they haven't sent any
messages.  A room might then be configured to defer the presence
broadcast for a new participant until they first send a message, or to
withhold presence broadcasts for all unvoiced occupants.  This
relaxation should be completely transparent to existing clients, since
they will never see a message from a hidden occupant.

 From there, we could define extensions to:

   * Query whether a room will advertise your presence if you join it.

   * Query whether a room has advertised your presence to others
     (possibly unnecessary; one can deduce that from the previous
     extension and whether you have sent a message).

   * Advertise your presence without actually sending a message.
     (Might be disallowed if the room is forcing you to lurk, as in use
     case 1.)

   * Query the number of participants in a chatroom if allowed; this
     might be useful in use case 1.

   * De-advertise your presence without actually leaving the room
     (equivalent to leaving and re-joining as a lurker), which could be
     useful in use case 3.

Comments are appreciated.  I'm interested in knowing whether the
community would be receptive to amending JEP-045 to allow lurking
options, and what the normal procedure is for amending an existing

Apologies if this has come up before.  I scanned the archives for the
last few months, but didn't do an exhaustive search.

More information about the Standards mailing list