Chan.I.RoomConfig1 — Telepathy D-Bus Interface Specification

# Interface Channel.Interface.RoomConfig1

Interface Index (Compact) | Summary | Description | Methods | Properties

### Methods

UpdateConfiguration | (a{sv}: Properties) | → | nothing |

### Properties

Anonymous | b | Read only |  |
InviteOnly | b | Read only |  |
Limit | u | Read only |  |
Moderated | b | Read only |  |
Title | s | Read only |  |
Description | s | Read only |  |
Persistent | b | Read only |  |
Private | b | Read only |  |
PasswordProtected | b | Read only |  |
Password | s | Read only |  |
CanUpdateConfiguration | b | Read only |  |
MutableProperties | as | Read only |  |
ConfigurationRetrieved | b | Read only |  |

Added in 0.24.0. version 1. This replaces the old-school Telepathy properties on Text.
Objects implementing this interface must also implement:

- org.freedesktop.Telepathy.Channel.Interface.Room2

### Description

Represents the configuration of a chatroom, some aspects of which may be modifiable by the user, depending on their priviledges. This corresponds to the room configuration on XMPP, and various channel mode flags on IRC.

The “topic” (on IRC) or “subject” (on XMPP) is not part of this interface; it can be found on the Subject2 interface.

# Methods

(Permalink)

## UpdateConfiguration (a{sv}: Properties) → nothing

### Parameters

- Properties — a{sv}

The new values of one or more properties on this interface, which must be listed in MutableProperties. For instance, to set up a channel for discussing top-secret corporate merge plans, this parameter might be:

>     {
>       'Private': True,
>       'InviteOnly': True,
>       'Description': "The first rule of #inteltakeover is: do not talk about #inteltakeover",
>     }

If CanUpdateConfiguration is `True`, modifies the current values of one or more room properties. This method SHOULD NOT return until the change has been accepted or declined by the server.

Note that the server may ostensibly accept the changes (thus allowing this method to return success) but signal different values; for example, the server might truncate Title to some maximum length. Callers SHOULD continue to listen for the `PropertiesChanged` signal, and trust the values it signals over those provided to this method.

### Possible Errors

- Permission Denied
The user is not allowed to reconfigure this room.
- Invalid Argument
One or more of the specified properties is unknown, or ill-typed.
- Not Implemented
One or more of the specified properties cannot be modified on this protocol.
- Not Available
The room's current configuration has not yet been retrieved, so we cannot update it just yet. The application might like to try again once the ConfigurationRetrieved property becomes `True`.

# Properties

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

## Anonymous — b

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.
`True` if people may join the channel without other members being made aware of their identity.
(Permalink)

## InviteOnly — b

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.
`True` if people may not join the channel until they have been invited.
(Permalink)

## Limit — u

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.
The limit to the number of members; or `0` if there is no limit.
(Permalink)

## Moderated — b

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.
`True` if channel membership is not sufficient to allow participation.
(Permalink)

## Title — s

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.
A human-visible name for the channel, if it differs from Room2.RoomName; the empty string, otherwise.

##### Rationale:

On XMPP, this represents the `muc#roomconfig_roomname` field of the `muc#roomconfig` form. So for `jdev@conference.jabber.org`, for example:

- Room2.RoomName = `"jdev"`;
- Room2.Server = `"conference.jabber.org"`;
- Title = `"General Jabber development discussion"`.

XEP-0045 is awful.

(Permalink)

## Description — s

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.
A human-readable description of the channel's overall purpose; if any.
(Permalink)

## Persistent — b

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.
`True` if the channel will remain in existence on the server after all members have left it.
(Permalink)

## Private — b

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.
`True` if the channel is not visible to non-members.
(Permalink)

## PasswordProtected — b

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.
`True` if contacts joining this channel must provide a password to be granted entry. Note that this property does not indicate that a password is required right now; see the Password interface for the API used to provide a password while joining a room.
(Permalink)

## Password — s

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.
If PasswordProtected is `True`, the password required to enter the channel, if known. If the password is unknown, or PasswordProtected is `False`, the empty string.

##### Rationale:

On XMPP—bless its cotton socks!—non-owners of a MUC cannot see its current password, even if they just provided the password in order to join the room…
(Permalink)

## CanUpdateConfiguration — b

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.
If `True`, the user may call UpdateConfiguration to change the values of the properties listed in MutableProperties.
(Permalink)

## MutableProperties — as

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.

A list of (unqualified) property names on this interface which may be modified using UpdateConfiguration (if CanUpdateConfiguration is `True`). Properties not listed here cannot be modified.

For example, IRC does not have the concept of joining a room without other participants knowing your true identity; so on IRC the Anonymous property will always be `False`, and MutableProperties will not include `"Anonymous"`.

(Permalink)

## ConfigurationRetrieved — b

Read only
When this property changes, the `org.freedesktop.DBus.Properties.PropertiesChanged` signal is emitted with the new value.

`True` once the initial room configuration has been retrieved, or `False` otherwise. On some services, this may take some time after you've joined a room to fetch the configuration. Once this property changes to `True`, the other properties on this interface can be assumed to be accurate; this property MUST not change to `False` after it becomes `True`.

##### Rationale:

An application's “configure this room” dialog might choose to display a spinner while this property is `False`, rather than allowing the user to edit probably-inaccurate configuration.