Copyright (C) 2007 Collabora Limited

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

A map from contacts to their chat states. A contact The contact's chat state

A map containing the chat states of all contacts in this channel whose chat state is not Inactive.

Contacts in this channel, but who are not listed in this map, may be assumed to be in the Inactive state.

In implementations that do not have this property, its value may be assumed to be empty until a ChatStateChanged signal indicates otherwise.

This property was not present in older versions of telepathy-spec, because chat states in XMPP are not state-recoverable (if you miss the change notification signal, there's no way to know the state). However, this property still allows clients to recover state changes that were seen by the CM before the client started to deal with the channel.

In CMs that follow older spec versions, assuming Inactive will mean that initial chat states will always be assumed to be Inactive, which is the best we can do. XEP 0085 specifies Inactive as the "neutral" state to be assumed unless told otherwise.

The new state. Set the local state and notify other members of the channel that it has changed. An integer handle for the contact. The new state of this contact. Emitted when the state of a member of the channel has changed. This includes local state. The contact has effectively ceased participating in the chat. The contact has not been active for some time. The contact is actively participating in the chat. The contact has paused composing a message. The contact is composing a message to be sent to the chat.

An interface for channels for receiving notifications of remote contacts' state, and for notifying remote contacts of the local state.

Clients should assume that a contact's state is Channel_Chat_State_Inactive unless they receive a notification otherwise.

The Channel_Chat_State_Gone state is treated differently to other states:

  • It may not be used for multi-user chats
  • It may not be explicitly sent
  • It should be automatically sent when the channel is closed
  • It must not be sent to the peer if a channel is closed without being used
  • Receiving it must not cause a new channel to be opened

The different states are defined by XEP-0085, but may be applied to any suitable protocol.