/* Generated from Extensions from the future
 */
 
#include <QFlags>

/**
 * \addtogroup typesconstants Types and constants
 *
 * Enumerated, flag, structure, list and mapping types and utility constants.
 */

/**
 * \defgroup flagtypeconsts Flag type constants
 * \ingroup typesconstants
 *
 * Types generated from the specification representing bit flag constants and
 * combinations of them (bitfields).
 */

/**
 * \defgroup enumtypeconsts Enumerated type constants
 * \ingroup typesconstants
 *
 * Types generated from the specification representing enumerated types ie.
 * types the values of which are mutually exclusive integral constants.
 */

/**
 * \defgroup ifacestrconsts Interface string constants
 * \ingroup typesconstants
 *
 * D-Bus interface names of the interfaces in the specification.
 */

/**
 * \defgroup errorstrconsts Error string constants
 * \ingroup typesconstants
 *
 * Names of the D-Bus errors in the specification.
 */

namespace TpFuture
{
/**
 * \ingroup flagtypeconsts
 *
 * Flag type generated from the specification.
 */
enum CallFlag
{
    /**
     * The local contact has been alerted about the call but has not 
     * responded; if possible, the remote contact(s) have been informed of 
     * this fact. This flag only makes sense on incoming calls in state 
     * Call_State_Pending_Receiver. It SHOULD be set when Ringing is called 
     * successfully, and unset when the state changes.
     */
     CallFlagLocallyRinging = 1,

    /**
     * The contact is temporarily unavailable, and the call has been placed in 
     * a queue (e.g. 182 Queued in SIP, or call-waiting in telephony). This 
     * flag only makes sense on outgoing 1-1 calls in state 
     * Call_State_Pending_Receiver. It SHOULD be set or unset according to 
     * informational messages from other contacts.
     */
     CallFlagQueued = 2,

    /**
     * The call has been put on hold by the local user, e.g. using the Hold 
     * interface. This flag SHOULD only be set if there is at least one 
     * Content, and all Contents are locally held; it makes sense on calls in 
     * state Call_State_Pending_Receiver or Call_State_Accepted. Otherwise, in 
     * transient situations where some but not all contents are on hold, UIs 
     * would falsely indicate that the call as a whole is on hold, which could 
     * lead to the user saying something they&apos;ll regret, while under the 
     * impression that the other contacts can&apos;t hear them!
     */
     CallFlagLocallyHeld = 4,

    /**
     * The initiator of the call originally called a contact other than the 
     * current recipient of the call, but the call was then forwarded or 
     * diverted. This flag only makes sense on outgoing calls, in state 
     * Call_State_Pending_Receiver or Call_State_Accepted. It SHOULD be set or 
     * unset according to informational messages from other contacts.
     */
     CallFlagForwarded = 8,

    /**
     * Progress has been made in placing the outgoing call, but the contact 
     * may not have been made aware of the call yet (so the Ringing state is 
     * not appropriate). This corresponds to SIP&apos;s status code 183 
     * Session Progress, and could be used when the outgoing call has reached 
     * a gateway, for instance. This flag only makes sense on outgoing calls 
     * in state Call_State_Pending_Receiver, and SHOULD be set or unset 
     * according to informational messages from servers, gateways and other 
     * infrastructure.
     */
     CallFlagInProgress = 16,

    /**
     * This flag only occurs when the CallState is Ended. The call with this 
     * flag set has ended, but not all resources corresponding to the call 
     * have been freed yet. Depending on the protocol there might be some 
     * audible feedback while the clearing flag is set. In calls following the 
     * ITU-T Q.931 standard there is a period of time between the call ending 
     * and the underlying channel being completely free for re-use.
     */
     CallFlagClearing = 32,

    /**
     * The call has been muted by the local user, e.g. using the Mute.DRAFT 
     * interface. This flag SHOULD only be set if there is at least one 
     * Content, and all Contents are locally muted; it makes sense on calls in 
     * state Call_State_Pending_Receiver or Call_State_Accepted.
     */
     CallFlagMuted = 64
};

/**
 * \typedef QFlags<CallFlag> CallFlags
 * \ingroup flagtypeconsts
 *
 * Type representing combinations of #CallFlag values.
 * 
 * A set of flags representing the status of the call as a whole, providing 
 * more specific information than the CallState. Many of these flags only make 
 * sense in a particular state.
 */
typedef QFlags<CallFlag> CallFlags;
Q_DECLARE_OPERATORS_FOR_FLAGS(CallFlags)

/**
 * \ingroup flagtypeconsts
 *
 * Flag type generated from the specification.
 */
enum CallMemberFlag
{
    /**
     * <p>The remote contact's client has told us that the contact has been
     *   alerted about the call but has not responded.</p>
     * 
     * <tp:rationale>
     *   <p>This is a flag per member, not a flag for the call as a whole,
     *     because in Muji conference calls, you could invite someone and
     *     have their state be &quot;ringing&quot; for a while.</p>
     * </tp:rationale>
     */
     CallMemberFlagRinging = 1,

    /**
     * <p>The call member has put this call on hold.</p>
     * 
     * <tp:rationale>
     *   <p>This is a flag per member, not a flag for the call as a whole,
     *     because in conference calls, any member could put the conference
     *     on hold.</p>
     * </tp:rationale>
     */
     CallMemberFlagHeld = 2,

    /**
     * This contact has merged this call into a conference. Note that GSM
     * provides a notification when the remote party merges a call into a
     * conference, but not when it is split out again; thus, this flag can
     * only indicate that the call has been part of a conference at some
     * point. If a GSM connection manager receives a notification that a
     * call has been merged into a conference a second time, it SHOULD
     * represent this by clearing and immediately re-setting this flag on
     * the remote contact.
     */
     CallMemberFlagConferenceHost = 4
};

/**
 * \typedef QFlags<CallMemberFlag> CallMemberFlags
 * \ingroup flagtypeconsts
 *
 * Type representing combinations of #CallMemberFlag values.
 * 
 * <p>A set of flags representing the status of a remote contact in a
 *   call.</p>
 * 
 * <p>It is protocol- and client-specific whether a particular contact
 *   will ever have a particular flag set on them, and Telepathy clients
 *   SHOULD NOT assume that a flag will ever be set.</p>
 * 
 * <tp:rationale>
 *   <p>180 Ringing in SIP, and its equivalent in XMPP, are optional
 *     informational messages, and implementations are not required
 *     to send them. The same applies to the messages used to indicate
 *     hold state.</p>
 * </tp:rationale>
 */
typedef QFlags<CallMemberFlag> CallMemberFlags;
Q_DECLARE_OPERATORS_FOR_FLAGS(CallMemberFlags)

/**
 * \enum CallState
 * \ingroup enumtypeconsts
 *
 * Enumerated type generated from the specification.
 * 
 * <p>The state of a call, as a whole.</p>
 * 
 * <p>The allowed transitions are:</p>
 * 
 * <ul>
 *   <li>Pending_Initiator → Pending_Receiver (for outgoing calls,
 *     when <tp:member-ref>Accept</tp:member-ref> is called)</li>
 *   <li>Pending_Receiver → Accepted (for incoming calls, when
 *     <tp:member-ref>Accept</tp:member-ref> is called; for outgoing
 *     calls to a contact, when the remote contact accepts the call;
 *     for joining a conference call, when the local user successfully
 *     joins the conference)</li>
 *   <li>Accepted → Pending_Receiver (when transferred to another
 *     contact)</li>
 *   <li>any state → Ended (when the call is terminated normally, or
 *     when an error occurs)</li>
 * </ul>
 * 
 * <p>Clients MAY consider unknown values from this enum to be an
 *   error - additional values will not be defined after the Call
 *   specification is declared to be stable.</p>
 */
enum CallState
{
    /**
     * The call state is not known. This call state MUST NOT appear as a value 
     * of the CallState property, but MAY be used by client code to represent 
     * calls whose state is as yet unknown.
     */
     CallStateUnknown = 0,

    /**
     * The initiator of the call hasn&apos;t accepted the call yet. This state 
     * only makes sense for outgoing calls, where it means that the local user 
     * has not yet sent any signalling messages to the remote user(s), and 
     * will not do so until Accept is called.
     */
     CallStatePendingInitiator = 1,

    /**
     * The receiver (the contact being called) hasn&apos;t accepted the call 
     * yet.
     */
     CallStatePendingReceiver = 2,

    /**
     * The contact being called has accepted the call.
     */
     CallStateAccepted = 3,

    /**
     * The call has ended, either via normal termination or an error.
     */
     CallStateEnded = 4
};

/**
 * \ingroup enumtypeconsts
 *
 * 1 higher than the highest valid value of CallState.
 */
const int NUM_CALL_STATES = (4+1);

/**
 * \enum CallStateChangeReason
 * \ingroup enumtypeconsts
 *
 * Enumerated type generated from the specification.
 * 
 * A simple representation of the reason for a change in the call&apos;s 
 * state, which may be used by simple clients, or used as a fallback when the 
 * DBus_Reason member of a Call_State_Reason struct is not understood.
 */
enum CallStateChangeReason
{
    /**
     * We just don't know. Unknown values of this enum SHOULD also be
     * treated like this.
     */
     CallStateChangeReasonUnknown = 0,

    /**
     * <p>The change was requested by the contact indicated by the Actor
     *   member of a <tp:type>Call_State_Reason</tp:type> struct.</p>
     * 
     * <p>If the Actor is the local user, the DBus_Reason SHOULD be the
     *   empty string.</p>
     * 
     * <p>If the Actor is a remote user, the DBus_Reason SHOULD be the empty
     *   string if the call was terminated normally, but MAY be a non-empty
     *   error name to indicate error-like call termination reasons (call
     *   rejected as busy, kicked from a conference by a moderator, etc.).</p>
     */
     CallStateChangeReasonUserRequested = 1,

    /**
     * <p>The call was forwarded. If known, the handle of the contact
     *   the call was forwarded to will be indicated by the Actor member
     *   of a <tp:type>Call_State_Reason</tp:type> struct.</p>
     */
     CallStateChangeReasonForwarded = 2
};

/**
 * \ingroup enumtypeconsts
 *
 * 1 higher than the highest valid value of CallStateChangeReason.
 */
const int NUM_CALL_STATE_CHANGE_REASONS = (2+1);

/**
 * \enum CallContentDisposition
 * \ingroup enumtypeconsts
 *
 * Enumerated type generated from the specification.
 * 
 * [FIXME]
 */
enum CallContentDisposition
{
    /**
     * The content has no specific disposition
     */
     CallContentDispositionNone = 0,

    /**
     * [FIXME: what does this mean?]
     */
     CallContentDispositionEarlyMedia = 1,

    /**
     * <p>The content was initially part of the call. When <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type.Call.DRAFT">Accept</tp:dbus-ref> is called on the channel, all streams of
     *   this content where the self-handle's sending state in <tp:dbus-ref namespace="org.freedesktop.Telepathy.Call.Stream.DRAFT">Senders</tp:dbus-ref> is Sending_State_Pending_Send
     *   will be moved to Sending_State_Sending as if <tp:dbus-ref namespace="org.freedesktop.Telepathy.Call.Stream.DRAFT">SetSending</tp:dbus-ref>(TRUE) had been called.</p>
     */
     CallContentDispositionInitial = 2
};

/**
 * \ingroup enumtypeconsts
 *
 * 1 higher than the highest valid value of CallContentDisposition.
 */
const int NUM_CALL_CONTENT_DISPOSITIONS = (2+1);

/**
 * \enum StreamTransportType
 * \ingroup enumtypeconsts
 *
 * Enumerated type generated from the specification.
 * 
 * A transport that can be used for streaming.
 */
enum StreamTransportType
{
    /**
     * Raw UDP, with or without STUN. All streaming clients are assumed to 
     * support this transport, so there is no handler capability token for it 
     * in the Call.DRAFT interface. [This corresponds to &quot;none&quot; or 
     * &quot;stun&quot; in the old Media.StreamHandler interface.]
     */
     StreamTransportTypeRawUDP = 0,

    /**
     * Interactive Connectivity Establishment, as defined by the IETF MMUSIC 
     * working group. [FIXME: do we want this to cover both ICE-UDP and 
     * ICE-TCP, or split them?] [This corresponds to &quot;ice-udp&quot; in 
     * the old Media.StreamHandler interface.]
     */
     StreamTransportTypeICE = 1,

    /**
     * Google Talk peer-to-peer connectivity establishment, as implemented by 
     * libjingle 0.3. [This corresponds to &quot;gtalk-p2p&quot; in the old 
     * Media.StreamHandler interface.]
     */
     StreamTransportTypeGTalkP2P = 2,

    /**
     * The transport used by Windows Live Messenger 8.5 or later, which 
     * resembles ICE draft 6. [This corresponds to &quot;wlm-8.5&quot; in the 
     * old Media.StreamHandler interface.]
     */
     StreamTransportTypeWLM85 = 3,

    /**
     * The transport used by Windows Live Messenger 2009 or later, which 
     * resembles ICE draft 19. [This corresponds to &quot;wlm-2009&quot; in 
     * the old Media.StreamHandler interface.]
     */
     StreamTransportTypeWLM2009 = 4
};

/**
 * \ingroup enumtypeconsts
 *
 * 1 higher than the highest valid value of StreamTransportType.
 */
const int NUM_STREAM_TRANSPORT_TYPES = (4+1);

/**
 * \enum SendingState
 * \ingroup enumtypeconsts
 *
 * Enumerated type generated from the specification.
 * 
 * Tristate indicating whether a contact is sending media.
 */
enum SendingState
{
    /**
     * The contact is not sending media and has not been asked to do so.
     */
     SendingStateNone = 0,

    /**
     * The contact has been asked to start sending media.
     */
     SendingStatePendingSend = 1,

    /**
     * The contact is sending media.
     */
     SendingStateSending = 2
};

/**
 * \ingroup enumtypeconsts
 *
 * 1 higher than the highest valid value of SendingState.
 */
const int NUM_SENDING_STATES = (2+1);

}

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Channel.Interface.Conference.DRAFT".
 */
#define TP_FUTURE_INTERFACE_CHANNEL_INTERFACE_CONFERENCE "org.freedesktop.Telepathy.Channel.Interface.Conference.DRAFT"

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Channel.Interface.Conference.DRAFT" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 */
#define TP_QT4_FUTURE_IFACE_CHANNEL_INTERFACE_CONFERENCE QLatin1String("org.freedesktop.Telepathy.Channel.Interface.Conference.DRAFT")

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Channel.Interface.MergeableConference.DRAFT".
 */
#define TP_FUTURE_INTERFACE_CHANNEL_INTERFACE_MERGEABLE_CONFERENCE "org.freedesktop.Telepathy.Channel.Interface.MergeableConference.DRAFT"

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Channel.Interface.MergeableConference.DRAFT" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 */
#define TP_QT4_FUTURE_IFACE_CHANNEL_INTERFACE_MERGEABLE_CONFERENCE QLatin1String("org.freedesktop.Telepathy.Channel.Interface.MergeableConference.DRAFT")

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Channel.Interface.Splittable.DRAFT".
 */
#define TP_FUTURE_INTERFACE_CHANNEL_INTERFACE_SPLITTABLE "org.freedesktop.Telepathy.Channel.Interface.Splittable.DRAFT"

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Channel.Interface.Splittable.DRAFT" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 */
#define TP_QT4_FUTURE_IFACE_CHANNEL_INTERFACE_SPLITTABLE QLatin1String("org.freedesktop.Telepathy.Channel.Interface.Splittable.DRAFT")

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Channel.Type.Call.DRAFT".
 */
#define TP_FUTURE_INTERFACE_CHANNEL_TYPE_CALL "org.freedesktop.Telepathy.Channel.Type.Call.DRAFT"

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Channel.Type.Call.DRAFT" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 */
#define TP_QT4_FUTURE_IFACE_CHANNEL_TYPE_CALL QLatin1String("org.freedesktop.Telepathy.Channel.Type.Call.DRAFT")

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Content.DRAFT".
 */
#define TP_FUTURE_INTERFACE_CALL_CONTENT "org.freedesktop.Telepathy.Call.Content.DRAFT"

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Content.DRAFT" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 */
#define TP_QT4_FUTURE_IFACE_CALL_CONTENT QLatin1String("org.freedesktop.Telepathy.Call.Content.DRAFT")

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Content.CodecOffer.DRAFT".
 */
#define TP_FUTURE_INTERFACE_CALL_CONTENT_CODEC_OFFER "org.freedesktop.Telepathy.Call.Content.CodecOffer.DRAFT"

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Content.CodecOffer.DRAFT" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 */
#define TP_QT4_FUTURE_IFACE_CALL_CONTENT_CODEC_OFFER QLatin1String("org.freedesktop.Telepathy.Call.Content.CodecOffer.DRAFT")

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Content.Interface.Media.DRAFT".
 */
#define TP_FUTURE_INTERFACE_CALL_CONTENT_INTERFACE_MEDIA "org.freedesktop.Telepathy.Call.Content.Interface.Media.DRAFT"

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Content.Interface.Media.DRAFT" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 */
#define TP_QT4_FUTURE_IFACE_CALL_CONTENT_INTERFACE_MEDIA QLatin1String("org.freedesktop.Telepathy.Call.Content.Interface.Media.DRAFT")

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Stream.Endpoint.DRAFT".
 */
#define TP_FUTURE_INTERFACE_CALL_STREAM_ENDPOINT "org.freedesktop.Telepathy.Call.Stream.Endpoint.DRAFT"

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Stream.Endpoint.DRAFT" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 */
#define TP_QT4_FUTURE_IFACE_CALL_STREAM_ENDPOINT QLatin1String("org.freedesktop.Telepathy.Call.Stream.Endpoint.DRAFT")

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Stream.Interface.Media.DRAFT".
 */
#define TP_FUTURE_INTERFACE_CALL_STREAM_INTERFACE_MEDIA "org.freedesktop.Telepathy.Call.Stream.Interface.Media.DRAFT"

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Stream.Interface.Media.DRAFT" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 */
#define TP_QT4_FUTURE_IFACE_CALL_STREAM_INTERFACE_MEDIA QLatin1String("org.freedesktop.Telepathy.Call.Stream.Interface.Media.DRAFT")

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Stream.DRAFT".
 */
#define TP_FUTURE_INTERFACE_CALL_STREAM "org.freedesktop.Telepathy.Call.Stream.DRAFT"

/**
 * \ingroup ifacestrconsts
 *
 * The interface name "org.freedesktop.Telepathy.Call.Stream.DRAFT" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 */
#define TP_QT4_FUTURE_IFACE_CALL_STREAM QLatin1String("org.freedesktop.Telepathy.Call.Stream.DRAFT")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NetworkError".
 * 
 * Raised when there is an error reading from or writing to the network.
 */
#define TP_FUTURE_ERROR_NETWORK_ERROR "org.freedesktop.Telepathy.Error.NetworkError"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NetworkError" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised when there is an error reading from or writing to the network.
 */
#define TP_QT4_FUTURE_ERROR_NETWORK_ERROR QLatin1String("org.freedesktop.Telepathy.Error.NetworkError")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NotImplemented".
 * 
 * Raised when the requested method, channel, etc is not available on this 
 * connection.
 */
#define TP_FUTURE_ERROR_NOT_IMPLEMENTED "org.freedesktop.Telepathy.Error.NotImplemented"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NotImplemented" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised when the requested method, channel, etc is not available on this 
 * connection.
 */
#define TP_QT4_FUTURE_ERROR_NOT_IMPLEMENTED QLatin1String("org.freedesktop.Telepathy.Error.NotImplemented")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.InvalidArgument".
 * 
 * Raised when one of the provided arguments is invalid.
 */
#define TP_FUTURE_ERROR_INVALID_ARGUMENT "org.freedesktop.Telepathy.Error.InvalidArgument"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.InvalidArgument" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised when one of the provided arguments is invalid.
 */
#define TP_QT4_FUTURE_ERROR_INVALID_ARGUMENT QLatin1String("org.freedesktop.Telepathy.Error.InvalidArgument")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NotAvailable".
 * 
 * Raised when the requested functionality is temporarily unavailable.
 */
#define TP_FUTURE_ERROR_NOT_AVAILABLE "org.freedesktop.Telepathy.Error.NotAvailable"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NotAvailable" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised when the requested functionality is temporarily unavailable.
 */
#define TP_QT4_FUTURE_ERROR_NOT_AVAILABLE QLatin1String("org.freedesktop.Telepathy.Error.NotAvailable")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.PermissionDenied".
 * 
 * The user is not permitted to perform the requested operation.
 */
#define TP_FUTURE_ERROR_PERMISSION_DENIED "org.freedesktop.Telepathy.Error.PermissionDenied"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.PermissionDenied" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * The user is not permitted to perform the requested operation.
 */
#define TP_QT4_FUTURE_ERROR_PERMISSION_DENIED QLatin1String("org.freedesktop.Telepathy.Error.PermissionDenied")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Disconnected".
 * 
 * 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.
 */
#define TP_FUTURE_ERROR_DISCONNECTED "org.freedesktop.Telepathy.Error.Disconnected"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Disconnected" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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.
 */
#define TP_QT4_FUTURE_ERROR_DISCONNECTED QLatin1String("org.freedesktop.Telepathy.Error.Disconnected")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.InvalidHandle".
 * 
 * The handle specified is unknown on this channel or connection.
 */
#define TP_FUTURE_ERROR_INVALID_HANDLE "org.freedesktop.Telepathy.Error.InvalidHandle"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.InvalidHandle" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * The handle specified is unknown on this channel or connection.
 */
#define TP_QT4_FUTURE_ERROR_INVALID_HANDLE QLatin1String("org.freedesktop.Telepathy.Error.InvalidHandle")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Channel.Banned".
 * 
 * You are banned from the channel.
 */
#define TP_FUTURE_ERROR_CHANNEL_BANNED "org.freedesktop.Telepathy.Error.Channel.Banned"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Channel.Banned" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * You are banned from the channel.
 */
#define TP_QT4_FUTURE_ERROR_CHANNEL_BANNED QLatin1String("org.freedesktop.Telepathy.Error.Channel.Banned")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Channel.Full".
 * 
 * The channel is full.
 */
#define TP_FUTURE_ERROR_CHANNEL_FULL "org.freedesktop.Telepathy.Error.Channel.Full"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Channel.Full" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * The channel is full.
 */
#define TP_QT4_FUTURE_ERROR_CHANNEL_FULL QLatin1String("org.freedesktop.Telepathy.Error.Channel.Full")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Channel.InviteOnly".
 * 
 * The requested channel is invite-only.
 */
#define TP_FUTURE_ERROR_CHANNEL_INVITE_ONLY "org.freedesktop.Telepathy.Error.Channel.InviteOnly"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Channel.InviteOnly" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * The requested channel is invite-only.
 */
#define TP_QT4_FUTURE_ERROR_CHANNEL_INVITE_ONLY QLatin1String("org.freedesktop.Telepathy.Error.Channel.InviteOnly")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NotYours".
 * 
 * <p>The requested channel or other resource already exists, and another
 *   user interface in this session is responsible for it.</p>
 * 
 * <p>User interfaces SHOULD handle this error unobtrusively, since it
 *   indicates that some other user interface is already processing the
 *   channel.</p>
 */
#define TP_FUTURE_ERROR_NOT_YOURS "org.freedesktop.Telepathy.Error.NotYours"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NotYours" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * <p>The requested channel or other resource already exists, and another
 *   user interface in this session is responsible for it.</p>
 * 
 * <p>User interfaces SHOULD handle this error unobtrusively, since it
 *   indicates that some other user interface is already processing the
 *   channel.</p>
 */
#define TP_QT4_FUTURE_ERROR_NOT_YOURS QLatin1String("org.freedesktop.Telepathy.Error.NotYours")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cancelled".
 * 
 * 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.
 */
#define TP_FUTURE_ERROR_CANCELLED "org.freedesktop.Telepathy.Error.Cancelled"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cancelled" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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.
 */
#define TP_QT4_FUTURE_ERROR_CANCELLED QLatin1String("org.freedesktop.Telepathy.Error.Cancelled")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.AuthenticationFailed".
 * 
 * Raised when authentication with a service was unsuccessful. This 
 * corresponds to Authentication_Failed in the Connection_Status_Reason enum.
 */
#define TP_FUTURE_ERROR_AUTHENTICATION_FAILED "org.freedesktop.Telepathy.Error.AuthenticationFailed"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.AuthenticationFailed" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised when authentication with a service was unsuccessful. This 
 * corresponds to Authentication_Failed in the Connection_Status_Reason enum.
 */
#define TP_QT4_FUTURE_ERROR_AUTHENTICATION_FAILED QLatin1String("org.freedesktop.Telepathy.Error.AuthenticationFailed")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.EncryptionNotAvailable".
 * 
 * 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&apos;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.
 */
#define TP_FUTURE_ERROR_ENCRYPTION_NOT_AVAILABLE "org.freedesktop.Telepathy.Error.EncryptionNotAvailable"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.EncryptionNotAvailable" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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&apos;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.
 */
#define TP_QT4_FUTURE_ERROR_ENCRYPTION_NOT_AVAILABLE QLatin1String("org.freedesktop.Telepathy.Error.EncryptionNotAvailable")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.EncryptionError".
 * 
 * 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.
 */
#define TP_FUTURE_ERROR_ENCRYPTION_ERROR "org.freedesktop.Telepathy.Error.EncryptionError"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.EncryptionError" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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.
 */
#define TP_QT4_FUTURE_ERROR_ENCRYPTION_ERROR QLatin1String("org.freedesktop.Telepathy.Error.EncryptionError")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.NotProvided".
 * 
 * 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.
 */
#define TP_FUTURE_ERROR_CERT_NOT_PROVIDED "org.freedesktop.Telepathy.Error.Cert.NotProvided"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.NotProvided" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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.
 */
#define TP_QT4_FUTURE_ERROR_CERT_NOT_PROVIDED QLatin1String("org.freedesktop.Telepathy.Error.Cert.NotProvided")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.Untrusted".
 * 
 * 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 and to 
 * Untrusted in the TLS_Certificate_Reject_Reason enum, with a clarification 
 * to avoid ambiguity.
 */
#define TP_FUTURE_ERROR_CERT_UNTRUSTED "org.freedesktop.Telepathy.Error.Cert.Untrusted"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.Untrusted" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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 and to 
 * Untrusted in the TLS_Certificate_Reject_Reason enum, with a clarification 
 * to avoid ambiguity.
 */
#define TP_QT4_FUTURE_ERROR_CERT_UNTRUSTED QLatin1String("org.freedesktop.Telepathy.Error.Cert.Untrusted")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.Expired".
 * 
 * Raised if the server provided an expired SSL/TLS certificate. This 
 * corresponds to Cert_Expired in the Connection_Status_Reason enum and to 
 * Expired in the TLS_Certificate_Reject_Reason enum.
 */
#define TP_FUTURE_ERROR_CERT_EXPIRED "org.freedesktop.Telepathy.Error.Cert.Expired"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.Expired" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised if the server provided an expired SSL/TLS certificate. This 
 * corresponds to Cert_Expired in the Connection_Status_Reason enum and to 
 * Expired in the TLS_Certificate_Reject_Reason enum.
 */
#define TP_QT4_FUTURE_ERROR_CERT_EXPIRED QLatin1String("org.freedesktop.Telepathy.Error.Cert.Expired")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.NotActivated".
 * 
 * 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 and to Not_Activated in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_FUTURE_ERROR_CERT_NOT_ACTIVATED "org.freedesktop.Telepathy.Error.Cert.NotActivated"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.NotActivated" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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 and to Not_Activated in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_QT4_FUTURE_ERROR_CERT_NOT_ACTIVATED QLatin1String("org.freedesktop.Telepathy.Error.Cert.NotActivated")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.FingerprintMismatch".
 * 
 * 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 and to Fingerprint_Mismatch in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_FUTURE_ERROR_CERT_FINGERPRINT_MISMATCH "org.freedesktop.Telepathy.Error.Cert.FingerprintMismatch"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.FingerprintMismatch" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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 and to Fingerprint_Mismatch in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_QT4_FUTURE_ERROR_CERT_FINGERPRINT_MISMATCH QLatin1String("org.freedesktop.Telepathy.Error.Cert.FingerprintMismatch")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.HostnameMismatch".
 * 
 * <p>Raised if the server provided an SSL/TLS certificate that did not match
 * its hostname.</p>
 * <p>You MAY be able to get more details about the expected and certified
 * hostnames by looking up the 'expected-hostname' and 'certificate-hostname'
 * keys in the details map that came together with this error.</p>
 * <tp:rationale>
 *   This corresponds to Cert_Hostname_Mismatch in the
 *   <tp:type>Connection_Status_Reason</tp:type> enum and to Hostname_Mismatch
 *   in the <tp:type>TLS_Certificate_Reject_Reason</tp:type> enum.
 * </tp:rationale>
 */
#define TP_FUTURE_ERROR_CERT_HOSTNAME_MISMATCH "org.freedesktop.Telepathy.Error.Cert.HostnameMismatch"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.HostnameMismatch" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * <p>Raised if the server provided an SSL/TLS certificate that did not match
 * its hostname.</p>
 * <p>You MAY be able to get more details about the expected and certified
 * hostnames by looking up the 'expected-hostname' and 'certificate-hostname'
 * keys in the details map that came together with this error.</p>
 * <tp:rationale>
 *   This corresponds to Cert_Hostname_Mismatch in the
 *   <tp:type>Connection_Status_Reason</tp:type> enum and to Hostname_Mismatch
 *   in the <tp:type>TLS_Certificate_Reject_Reason</tp:type> enum.
 * </tp:rationale>
 */
#define TP_QT4_FUTURE_ERROR_CERT_HOSTNAME_MISMATCH QLatin1String("org.freedesktop.Telepathy.Error.Cert.HostnameMismatch")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.SelfSigned".
 * 
 * Raised if the server provided an SSL/TLS certificate that is self-signed 
 * and untrusted. This corresponds to Cert_Self_Signed in the 
 * Connection_Status_Reason enum and to Self_Signed in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_FUTURE_ERROR_CERT_SELF_SIGNED "org.freedesktop.Telepathy.Error.Cert.SelfSigned"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.SelfSigned" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised if the server provided an SSL/TLS certificate that is self-signed 
 * and untrusted. This corresponds to Cert_Self_Signed in the 
 * Connection_Status_Reason enum and to Self_Signed in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_QT4_FUTURE_ERROR_CERT_SELF_SIGNED QLatin1String("org.freedesktop.Telepathy.Error.Cert.SelfSigned")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.Revoked".
 * 
 * Raised if the server provided an SSL/TLS certificate that has been revoked. 
 * This corresponds to Cert_Revoked in the Connection_Status_Reason enum and 
 * to Revoked in the TLS_Certificate_Reject_Reason enum.
 */
#define TP_FUTURE_ERROR_CERT_REVOKED "org.freedesktop.Telepathy.Error.Cert.Revoked"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.Revoked" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised if the server provided an SSL/TLS certificate that has been revoked. 
 * This corresponds to Cert_Revoked in the Connection_Status_Reason enum and 
 * to Revoked in the TLS_Certificate_Reject_Reason enum.
 */
#define TP_QT4_FUTURE_ERROR_CERT_REVOKED QLatin1String("org.freedesktop.Telepathy.Error.Cert.Revoked")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.Insecure".
 * 
 * Raised if the server provided an SSL/TLS certificate that uses an insecure 
 * cipher algorithm or is cryptographically weak. This corresponds to 
 * Cert_Insecure in the Connection_Status_Reason enum and to Insecure in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_FUTURE_ERROR_CERT_INSECURE "org.freedesktop.Telepathy.Error.Cert.Insecure"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.Insecure" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised if the server provided an SSL/TLS certificate that uses an insecure 
 * cipher algorithm or is cryptographically weak. This corresponds to 
 * Cert_Insecure in the Connection_Status_Reason enum and to Insecure in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_QT4_FUTURE_ERROR_CERT_INSECURE QLatin1String("org.freedesktop.Telepathy.Error.Cert.Insecure")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.Invalid".
 * 
 * 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 and to Unknown in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_FUTURE_ERROR_CERT_INVALID "org.freedesktop.Telepathy.Error.Cert.Invalid"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.Invalid" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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 and to Unknown in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_QT4_FUTURE_ERROR_CERT_INVALID QLatin1String("org.freedesktop.Telepathy.Error.Cert.Invalid")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.LimitExceeded".
 * 
 * Raised if the length in bytes of the server certificate, or the depth of 
 * the server certificate chain exceeds the limits imposed by the crypto 
 * library. This corresponds to Cert_Limit_Exceeded in the 
 * Connection_Status_Reason enum and to Limit_Exceeded in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_FUTURE_ERROR_CERT_LIMIT_EXCEEDED "org.freedesktop.Telepathy.Error.Cert.LimitExceeded"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Cert.LimitExceeded" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised if the length in bytes of the server certificate, or the depth of 
 * the server certificate chain exceeds the limits imposed by the crypto 
 * library. This corresponds to Cert_Limit_Exceeded in the 
 * Connection_Status_Reason enum and to Limit_Exceeded in the 
 * TLS_Certificate_Reject_Reason enum.
 */
#define TP_QT4_FUTURE_ERROR_CERT_LIMIT_EXCEEDED QLatin1String("org.freedesktop.Telepathy.Error.Cert.LimitExceeded")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NotCapable".
 * 
 * Raised when requested functionality is unavailable due to contact not 
 * having required capabilities.
 */
#define TP_FUTURE_ERROR_NOT_CAPABLE "org.freedesktop.Telepathy.Error.NotCapable"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NotCapable" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised when requested functionality is unavailable due to contact not 
 * having required capabilities.
 */
#define TP_QT4_FUTURE_ERROR_NOT_CAPABLE QLatin1String("org.freedesktop.Telepathy.Error.NotCapable")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Offline".
 * 
 * Raised when requested functionality is unavailable because a contact is 
 * offline. This corresponds to Offline in the Channel_Group_Change_Reason 
 * enum.
 */
#define TP_FUTURE_ERROR_OFFLINE "org.freedesktop.Telepathy.Error.Offline"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Offline" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised when requested functionality is unavailable because a contact is 
 * offline. This corresponds to Offline in the Channel_Group_Change_Reason 
 * enum.
 */
#define TP_QT4_FUTURE_ERROR_OFFLINE QLatin1String("org.freedesktop.Telepathy.Error.Offline")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Channel.Kicked".
 * 
 * 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.
 */
#define TP_FUTURE_ERROR_CHANNEL_KICKED "org.freedesktop.Telepathy.Error.Channel.Kicked"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Channel.Kicked" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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.
 */
#define TP_QT4_FUTURE_ERROR_CHANNEL_KICKED QLatin1String("org.freedesktop.Telepathy.Error.Channel.Kicked")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Busy".
 * 
 * Used to represent a user being removed from a channel because of a 
 * &quot;busy&quot; 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.
 */
#define TP_FUTURE_ERROR_BUSY "org.freedesktop.Telepathy.Error.Busy"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Busy" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Used to represent a user being removed from a channel because of a 
 * &quot;busy&quot; 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.
 */
#define TP_QT4_FUTURE_ERROR_BUSY QLatin1String("org.freedesktop.Telepathy.Error.Busy")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NoAnswer".
 * 
 * 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.
 */
#define TP_FUTURE_ERROR_NO_ANSWER "org.freedesktop.Telepathy.Error.NoAnswer"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NoAnswer" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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.
 */
#define TP_QT4_FUTURE_ERROR_NO_ANSWER QLatin1String("org.freedesktop.Telepathy.Error.NoAnswer")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.DoesNotExist".
 * 
 * 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).
 */
#define TP_FUTURE_ERROR_DOES_NOT_EXIST "org.freedesktop.Telepathy.Error.DoesNotExist"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.DoesNotExist" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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).
 */
#define TP_QT4_FUTURE_ERROR_DOES_NOT_EXIST QLatin1String("org.freedesktop.Telepathy.Error.DoesNotExist")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Terminated".
 * 
 * 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.
 */
#define TP_FUTURE_ERROR_TERMINATED "org.freedesktop.Telepathy.Error.Terminated"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.Terminated" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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.
 */
#define TP_QT4_FUTURE_ERROR_TERMINATED QLatin1String("org.freedesktop.Telepathy.Error.Terminated")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ConnectionRefused".
 * 
 * Raised when a connection is refused.
 */
#define TP_FUTURE_ERROR_CONNECTION_REFUSED "org.freedesktop.Telepathy.Error.ConnectionRefused"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ConnectionRefused" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised when a connection is refused.
 */
#define TP_QT4_FUTURE_ERROR_CONNECTION_REFUSED QLatin1String("org.freedesktop.Telepathy.Error.ConnectionRefused")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ConnectionFailed".
 * 
 * Raised when a connection can&apos;t be established.
 */
#define TP_FUTURE_ERROR_CONNECTION_FAILED "org.freedesktop.Telepathy.Error.ConnectionFailed"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ConnectionFailed" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised when a connection can&apos;t be established.
 */
#define TP_QT4_FUTURE_ERROR_CONNECTION_FAILED QLatin1String("org.freedesktop.Telepathy.Error.ConnectionFailed")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ConnectionLost".
 * 
 * Raised when a connection is broken.
 */
#define TP_FUTURE_ERROR_CONNECTION_LOST "org.freedesktop.Telepathy.Error.ConnectionLost"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ConnectionLost" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised when a connection is broken.
 */
#define TP_QT4_FUTURE_ERROR_CONNECTION_LOST QLatin1String("org.freedesktop.Telepathy.Error.ConnectionLost")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.AlreadyConnected".
 * 
 * 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).
 */
#define TP_FUTURE_ERROR_ALREADY_CONNECTED "org.freedesktop.Telepathy.Error.AlreadyConnected"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.AlreadyConnected" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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).
 */
#define TP_QT4_FUTURE_ERROR_ALREADY_CONNECTED QLatin1String("org.freedesktop.Telepathy.Error.AlreadyConnected")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ConnectionReplaced".
 * 
 * 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 
 * &quot;wins&quot; 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).
 */
#define TP_FUTURE_ERROR_CONNECTION_REPLACED "org.freedesktop.Telepathy.Error.ConnectionReplaced"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ConnectionReplaced" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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 
 * &quot;wins&quot; 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).
 */
#define TP_QT4_FUTURE_ERROR_CONNECTION_REPLACED QLatin1String("org.freedesktop.Telepathy.Error.ConnectionReplaced")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.RegistrationExists".
 * 
 * Raised during in-band registration if the server indicates that the 
 * requested account already exists.
 */
#define TP_FUTURE_ERROR_REGISTRATION_EXISTS "org.freedesktop.Telepathy.Error.RegistrationExists"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.RegistrationExists" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised during in-band registration if the server indicates that the 
 * requested account already exists.
 */
#define TP_QT4_FUTURE_ERROR_REGISTRATION_EXISTS QLatin1String("org.freedesktop.Telepathy.Error.RegistrationExists")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ServiceBusy".
 * 
 * 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.
 * 
 * <tp:rationale>
 *   This is not the same error as Busy, which indicates that a
 *   <em>user</em> is busy.
 * </tp:rationale>
 */
#define TP_FUTURE_ERROR_SERVICE_BUSY "org.freedesktop.Telepathy.Error.ServiceBusy"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ServiceBusy" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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.
 * 
 * <tp:rationale>
 *   This is not the same error as Busy, which indicates that a
 *   <em>user</em> is busy.
 * </tp:rationale>
 */
#define TP_QT4_FUTURE_ERROR_SERVICE_BUSY QLatin1String("org.freedesktop.Telepathy.Error.ServiceBusy")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ResourceUnavailable".
 * 
 * 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.
 */
#define TP_FUTURE_ERROR_RESOURCE_UNAVAILABLE "org.freedesktop.Telepathy.Error.ResourceUnavailable"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.ResourceUnavailable" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * 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.
 */
#define TP_QT4_FUTURE_ERROR_RESOURCE_UNAVAILABLE QLatin1String("org.freedesktop.Telepathy.Error.ResourceUnavailable")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.WouldBreakAnonymity".
 * 
 * Raised if a request cannot be satisfied without violating an earlier 
 * request for anonymity, and the earlier request specified that raising an 
 * error is preferable to disclosing the user&apos;s identity (for instance 
 * via Connection.Interface.Anonymity.AnonymityMandatory or 
 * Channel.Interface.Anonymity.AnonymityMandatory).
 */
#define TP_FUTURE_ERROR_WOULD_BREAK_ANONYMITY "org.freedesktop.Telepathy.Error.WouldBreakAnonymity"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.WouldBreakAnonymity" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised if a request cannot be satisfied without violating an earlier 
 * request for anonymity, and the earlier request specified that raising an 
 * error is preferable to disclosing the user&apos;s identity (for instance 
 * via Connection.Interface.Anonymity.AnonymityMandatory or 
 * Channel.Interface.Anonymity.AnonymityMandatory).
 */
#define TP_QT4_FUTURE_ERROR_WOULD_BREAK_ANONYMITY QLatin1String("org.freedesktop.Telepathy.Error.WouldBreakAnonymity")

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NotYet".
 * 
 * Raised when the requested functionality is not yet available, but is likely 
 * to become available after some time has passed.
 */
#define TP_FUTURE_ERROR_NOT_YET "org.freedesktop.Telepathy.Error.NotYet"

/**
 * \ingroup errorstrconsts
 *
 * The error name "org.freedesktop.Telepathy.Error.NotYet" as a QLatin1String, usable in QString requiring contexts even when
 * building with Q_NO_CAST_FROM_ASCII defined.
 * 
 * Raised when the requested functionality is not yet available, but is likely 
 * to become available after some time has passed.
 */
#define TP_QT4_FUTURE_ERROR_NOT_YET QLatin1String("org.freedesktop.Telepathy.Error.NotYet")

