Raised when there is an error reading from or writing to the network.
Raised when the requested method, channel, etc is not available on this connection.
Raised when one of the provided arguments is invalid.
Raised when the requested functionality is temporarily unavailable.
The user is not permitted to perform the requested operation.
The connection is not currently connected and cannot be used. This error may also be raised when operations are performed on a Connection for which StatusChanged has signalled status Disconnected for reason None.

The second usage corresponds to None in the Connection_Status_Reason enum; if a better reason is available, the corresponding error should be used instead.
The handle specified is unknown on this channel or connection.
You are banned from the channel.
The channel is full.
The requested channel is invite-only.

The requested channel or other resource already exists, and another user interface in this session is responsible for it.

User interfaces SHOULD handle this error unobtrusively, since it indicates that some other user interface is already processing the channel.

Raised by an ongoing request if it is cancelled by user request before it has completed, or when operations are performed on an object which the user has asked to close (for instance, a Connection where the user has called Disconnect, or a Channel where the user has called Close).

The second form can be used to correspond to the Requested member in the Connection_Status_Reason enum, or to to represent the situation where disconnecting a Connection, closing a Channel, etc. has been requested by the user but this request has not yet been acted on, for instance because the service will only act on the request when it has finished processing an event queue.
Raised when authentication with a service was unsuccessful. This corresponds to Authentication_Failed in the Connection_Status_Reason enum.
Raised if a user request insisted that encryption should be used, but encryption was not actually available.

This corresponds to part of Encryption_Error in the Connection_Status_Reason enum. It's been separated into a distinct error here because the two concepts that were part of EncryptionError seem to be things that could reasonably appear differently in the UI.
Raised if encryption appears to be available, but could not actually be used (for instance if SSL/TLS negotiation fails). This corresponds to part of Encryption_Error in the Connection_Status_Reason enum.
Raised if the server did not provide a SSL/TLS certificate. This error MUST NOT be used to represent the absence of a client certificate provided by the Telepathy connection manager. This corresponds to Cert_Not_Provided in the Connection_Status_Reason enum. That error explicitly applied only to server SSL certificates, so this one is similarly limited; having the CM present a client certificate is a possible future feature, but it should have its own error handling.
Raised if the server provided a SSL/TLS certificate signed by an untrusted certifying authority. This error SHOULD NOT be used to represent a self-signed certificate: see the Self Signed error for that. This corresponds to Cert_Untrusted in the Connection_Status_Reason enum, with a clarification to avoid ambiguity.
Raised if the server provided an expired SSL/TLS certificate. This corresponds to Cert_Expired in the Connection_Status_Reason enum.
Raised if the server provided an SSL/TLS certificate that will become valid at some point in the future. This corresponds to Cert_Not_Activated in the Connection_Status_Reason enum.
Raised if the server provided an SSL/TLS certificate that did not have the expected fingerprint. This corresponds to Cert_Fingerprint_Mismatch in the Connection_Status_Reason enum.
Raised if the server provided an SSL/TLS certificate that did not match its hostname. This corresponds to Cert_Hostname_Mismatch in the Connection_Status_Reason enum.
Raised if the server provided an SSL/TLS certificate that is self-signed and untrusted. This corresponds to Cert_Hostname_Mismatch in the Connection_Status_Reason enum.
Raised if the server provided an SSL/TLS certificate that is unacceptable in some way that does not have a more specific error. This corresponds to Cert_Other_Error in the Connection_Status_Reason enum.
Raised when requested functionality is unavailable due to contact not having required capabilities.
Raised when requested functionality is unavailable because a contact is offline.

This corresponds to Offline in the Channel_Group_Change_Reason enum.
Used to represent a user being ejected from a channel by another user, for instance being kicked from a chatroom.

This corresponds to Kicked in the Channel_Group_Change_Reason enum.
Used to represent a user being removed from a channel because of a "busy" indication. This error SHOULD NOT be used to represent a server or other infrastructure being too busy to process a request - for that, see ServerBusy.

This corresponds to Busy in the Channel_Group_Change_Reason enum.
Used to represent a user being removed from a channel because they did not respond, e.g. to a StreamedMedia call.

This corresponds to No_Answer in the Channel_Group_Change_Reason enum.
Raised when the requested user does not, in fact, exist.

This corresponds to Invalid_Contact in the Channel_Group_Change_Reason enum, but can also be used to represent other things not existing (like chatrooms, perhaps).
Raised when a channel is terminated for an unspecified reason. In particular, this error SHOULD be used whenever normal termination of a 1-1 StreamedMedia call by the remote user is represented as a D-Bus error name.

This corresponds to None in the Channel_Group_Change_Reason enum.
Raised when a connection is refused.
Raised when a connection can't be established.
Raised when a connection is broken.
Raised when the user attempts to connect to an account but they are already connected (perhaps from another client or computer), and the protocol or account settings do not allow this.

XMPP can have this behaviour if the user chooses the same resource in both clients (it is server-dependent whether the result is AlreadyConnected on the new connection, ConnectionReplaced on the old connection, or two successful connections).
Raised by an existing connection to an account if it is replaced by a new connection (perhaps from another client or computer).

In MSNP, when connecting twice with the same Passport, the new connection "wins" and the old one is automatically disconnected. XMPP can also have this behaviour if the user chooses the same resource in two clients (it is server-dependent whether the result is AlreadyConnected on the new connection, ConnectionReplaced on the old connection, or two successful connections).
Raised during in-band registration if the server indicates that the requested account already exists.
Raised if a server or some other piece of infrastructure cannot process the request, e.g. due to resource limitations. Clients MAY try again later.

This is not the same error as Busy, which indicates that a user is busy.
Raised if a request cannot be satisfied because a process local to the user has insufficient resources. Clients MAY try again later.

For instance, the ChannelDispatcher might raise this error for some or all channel requests if it has detected that there is not enough free memory.
Copyright © 2005-2009 Collabora Limited
Copyright © 2005-2009 Nokia Corporation

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.