You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: proposals/3026-presence-busy.md
+27-6
Original file line number
Diff line number
Diff line change
@@ -6,23 +6,44 @@ The current specification for presence in Matrix describes three states:
6
6
*`unavailable` (aka idle or away) if the user is online but inactive
7
7
*`offline` if the user is offline
8
8
9
-
There is currently no presence state to express that the user is online and active, but busy, i.e. in a state that would prevent them from giving their full focus to solicitations from other users. A practical example would be a user that's on a call with another user (or on a group call).
9
+
There is currently no presence state to express that the user is online and
10
+
active, but busy, i.e. in a state that would prevent them from giving their full
11
+
focus to solicitations from other users. A practical example would be a user
12
+
that's on a call with another user (or on a group call).
10
13
11
14
12
15
## Proposal
13
16
14
-
A new presence state is added, `busy`, which describes a state where the user is online and active but is performing an activity that would prevent them from giving their full attention to an external solicitation, i.e. the user is online and active but not available.
17
+
A new presence state is added, `busy`, which describes a state where the user is
18
+
online and active but is performing an activity that would prevent them from
19
+
giving their full attention to an external solicitation, i.e. the user is online
20
+
and active but not available.
15
21
16
-
It is left to the implementation to decide how to update a user's presence to the `busy` state (and from this state to another); suggestions would include allowing the user to set it manually, setting it automatically when the user joins a call or a Jitsi group call, etc.. It is strongly recommended for implementations to not implement a timer that would trigger an update to the `unavailable` state (like most implementations do when the user is in the `online` state), as there are some valid use cases for the user not triggering any event in the client but still being online and active, e.g. if they're on a call.
22
+
It is left to the implementation to decide how to update a user's presence to
23
+
the `busy` state (and from this state to another); suggestions would include
24
+
allowing the user to set it manually, setting it automatically when the user
25
+
joins a call or a Jitsi group call, etc.. It is strongly recommended for
26
+
implementations to not implement a timer that would trigger an update to the
27
+
`unavailable` state (like most implementations do when the user is in the
28
+
`online` state), as there are some valid use cases for the user not triggering
29
+
any event in the client but still being online and active, e.g. if they're on a
30
+
call.
17
31
18
-
For backwards compatibility, if a client fails to update a user's presence state to `busy` because the homeserver doesn't implement this MSC (which would likely translate into a `400 Bad Request` response), it should set the user's presence to `unavailable`, which is the closest state semantically.
32
+
For backwards compatibility, if a client fails to update a user's presence state
33
+
to `busy` because the homeserver doesn't implement this MSC (which would likely
34
+
translate into a `400 Bad Request` response), it should set the user's presence
35
+
to `unavailable`, which is the closest state semantically.
19
36
20
37
21
38
## Potential issues
22
39
23
-
It is unclear whether introducing a new presence state will break some clients that don't implement this MSC yet. If this happens, the mitigation is unclear and open to discussion.
40
+
It is unclear whether introducing a new presence state will break some clients
41
+
that don't implement this MSC yet. If this happens, the mitigation is unclear
42
+
and open to discussion.
24
43
25
44
26
45
## Unstable prefix
27
46
28
-
Until this proposal is merged into a stable version of the Matrix specification, implementations must use `org.matrix.busy` instead of `busy` as the new presence state.
47
+
Until this proposal is merged into a stable version of the Matrix specification,
48
+
implementations must use `org.matrix.busy` instead of `busy` as the new presence
0 commit comments