User status
Closed, ResolvedPublic


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?).


Ticket Type

Event Timeline

machniak moved this task from Backlog to Ready on the Kolab Chat board.Jan 3 2017, 12:24 PM

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 closed this task as Resolved.Feb 1 2017, 11:16 AM
machniak moved this task from Ready to Done on the Kolab Chat board.
machniak claimed this task.