Page MenuHomePhorge

User status
Closed, ResolvedPublic

Description

We need to design what type of user status we support. From XMPP we can get:

away -- The entity is temporarily away.
chat -- The entity is actively interested in chatting.
dnd -- The entity is busy (dnd = "Do Not Disturb").
xa -- The entity is away for an extended period (xa = "eXtended Away").

I'd add 'online' which is not defined there. Also, how about 'offline'? Should we allow logged users to set their status to 'offline'?

And probably we should have an additional "comment" somewhere (users table?).

Details

Ticket Type
Task

Event Timeline

The common set seems to be:

  • Available
  • Busy (or do-not-disturb)
  • Invisible
  • Away (including the automatic "idle" from clients on inactivity)
  • Not available
  • Offline

These can be grouped into three types, namely statuses in which:

  1. the user is available for chat (available, away)
  2. the user is connected and visible to others, but not available (busy, not available)
  3. the user is shown as offline (invisible, offline)

Message delivery may be delayed in the not available cases (i.e the last two cases in the list above).

So perhaps for a simple three mode system: available, busy, unavailable with the server accepting a type and optional reason, e.g.:

{ status: away, type: idle }
{ status: offline, type: invisible }
{ status: unavailable, type: busy, reason: "In a meeting right now" }

A future complication will be the ability to have different statuses for different groups of contacts .. but we can get to that later :)

machniak claimed this task.
machniak moved this task from Ready to Done on the Kolab Chat board.