Protocol.I.Presence — Telepathy D-Bus Interface Specification

# Interface Protocol.Interface.Presence

Interface Index (Compact) | Summary | Description | Properties

### Properties

Statuses | a{s(ubb)} (Simple_Status_Spec_Map) | Read only |  |

Added in 0.21.3. (as stable API)
Objects implementing this interface must also implement:

- org.freedesktop.Telepathy.Protocol

### Description

An interface for protocols where it might be possible to set the user's presence, and the supported presence types can be predicted before connecting.

##### Rationale:

This allows UIs to show or hide presence types that aren't always supported, such as "invisible", while not online.

The properties on this interface SHOULD be cached in the `.manager` file, in the `[Protocol proto]` group. For each status s in Statuses, that group should contain a key of the form `status-s` whose value is the Connection_Presence_Type as an ASCII decimal integer, followed by a space-separated sequence of tokens from the following set:

settable
  If present, the user can set this status on themselves using SetPresence; this corresponds to May_Set_On_Self in the Simple_Status_Spec struct.
message
  If present, the user can set a non-empty message for this status; this corresponds to Can_Have_Message in the Simple_Status_Spec struct.

Unrecognised tokens MUST be ignored.

For instance, an XMPP connection manager might have this `.manager` file:

    [Protocol jabber]
    Interfaces=org.freedesktop.Telepathy.Protocol.Interface.Presence;
    param-account=s required
    param-password=s required
    status-offline=1
    status-unknown=7
    status-error=8
    status-hidden=5 settable message
    status-xa=4 settable message
    status-away=3 settable message
    status-dnd=6 settable message
    status-available=2 settable message
    status-chat=2 settable message

which corresponds to these property values (using a Python-like syntax):

    Statuses = {
        'offline': (OFFLINE, False, False),
        'unknown': (UNKNOWN, False, False),
        'error': (ERROR, False, False),
        'hidden': (HIDDEN, True, True),
        'xa': (EXTENDED_AWAY, True, True),
        'away': (AWAY, True, True),
        'dnd': (BUSY, True, True),
        'available': (AVAILABLE, True, True),
        'chat': (AVAILABLE, True, True),
    }

# Properties

Accessed using the org.freedesktop.DBus.Properties interface.
(Permalink)

## Statuses — a{s(ubb)} (Simple_Status_Spec_Map)

Read only

The statuses that might appear in the Connection.Interface.SimplePresence.Statuses property on a connection to this protocol that supports SimplePresence. This property is immutable.

Depending on server capabilities, it is possible that not all of these will actually appear on the Connection.