/* Generated from telepathy-glib



 */

#ifdef __cplusplus
extern "C" {
#endif

typedef enum /*< flags >*/ {
    TP_CONN_MGR_PARAM_FLAG_REQUIRED = 1,
    TP_CONN_MGR_PARAM_FLAG_REGISTER = 2,
    TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT = 4,
    TP_CONN_MGR_PARAM_FLAG_SECRET = 8,
    TP_CONN_MGR_PARAM_FLAG_DBUS_PROPERTY = 16,
} TpConnMgrParamFlags;

typedef enum {
    TP_HANDLE_TYPE_NONE = 0,
    TP_HANDLE_TYPE_CONTACT = 1,
    TP_HANDLE_TYPE_ROOM = 2,
    TP_HANDLE_TYPE_LIST = 3,
    TP_HANDLE_TYPE_GROUP = 4,
} TpHandleType;
#define TP_NUM_HANDLE_TYPES (4+1)
#define NUM_TP_HANDLE_TYPES TP_NUM_HANDLE_TYPES

typedef enum {
    TP_CONNECTION_STATUS_CONNECTED = 0,
    TP_CONNECTION_STATUS_CONNECTING = 1,
    TP_CONNECTION_STATUS_DISCONNECTED = 2,
} TpConnectionStatus;
#define TP_NUM_CONNECTION_STATUSES (2+1)
#define NUM_TP_CONNECTION_STATUSES TP_NUM_CONNECTION_STATUSES

typedef enum {
    TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED = 0,
    TP_CONNECTION_STATUS_REASON_REQUESTED = 1,
    TP_CONNECTION_STATUS_REASON_NETWORK_ERROR = 2,
    TP_CONNECTION_STATUS_REASON_AUTHENTICATION_FAILED = 3,
    TP_CONNECTION_STATUS_REASON_ENCRYPTION_ERROR = 4,
    TP_CONNECTION_STATUS_REASON_NAME_IN_USE = 5,
    TP_CONNECTION_STATUS_REASON_CERT_NOT_PROVIDED = 6,
    TP_CONNECTION_STATUS_REASON_CERT_UNTRUSTED = 7,
    TP_CONNECTION_STATUS_REASON_CERT_EXPIRED = 8,
    TP_CONNECTION_STATUS_REASON_CERT_NOT_ACTIVATED = 9,
    TP_CONNECTION_STATUS_REASON_CERT_HOSTNAME_MISMATCH = 10,
    TP_CONNECTION_STATUS_REASON_CERT_FINGERPRINT_MISMATCH = 11,
    TP_CONNECTION_STATUS_REASON_CERT_SELF_SIGNED = 12,
    TP_CONNECTION_STATUS_REASON_CERT_OTHER_ERROR = 13,
    TP_CONNECTION_STATUS_REASON_CERT_REVOKED = 14,
    TP_CONNECTION_STATUS_REASON_CERT_INSECURE = 15,
    TP_CONNECTION_STATUS_REASON_CERT_LIMIT_EXCEEDED = 16,
} TpConnectionStatusReason;
#define TP_NUM_CONNECTION_STATUS_REASONS (16+1)
#define NUM_TP_CONNECTION_STATUS_REASONS TP_NUM_CONNECTION_STATUS_REASONS

typedef enum /*< flags >*/ {
    TP_CONNECTION_ALIAS_FLAG_USER_SET = 1,
} TpConnectionAliasFlags;

typedef enum /*< flags >*/ {
    TP_ANONYMITY_MODE_CLIENT_INFO = 1,
    TP_ANONYMITY_MODE_SHOW_CLIENT_INFO = 2,
    TP_ANONYMITY_MODE_NETWORK_INFO = 4,
} TpAnonymityModeFlags;

typedef enum /*< flags >*/ {
    TP_CONNECTION_CAPABILITY_FLAG_CREATE = 1,
    TP_CONNECTION_CAPABILITY_FLAG_INVITE = 2,
} TpConnectionCapabilityFlags;

typedef enum /*< flags >*/ {
    TP_CONTACT_BLOCKING_CAPABILITY_CAN_REPORT_ABUSIVE = 1,
} TpContactBlockingCapabilities;

typedef enum /*< flags >*/ {
    TP_CONTACT_INFO_FLAG_CAN_SET = 1,
    TP_CONTACT_INFO_FLAG_PUSH = 2,
} TpContactInfoFlags;

typedef enum /*< flags >*/ {
    TP_CONTACT_INFO_FIELD_FLAG_PARAMETERS_EXACT = 1,
    TP_CONTACT_INFO_FIELD_FLAG_OVERWRITTEN_BY_NICKNAME = 2,
} TpContactInfoFieldFlags;

typedef enum {
    TP_CONTACT_LIST_STATE_NONE = 0,
    TP_CONTACT_LIST_STATE_WAITING = 1,
    TP_CONTACT_LIST_STATE_FAILURE = 2,
    TP_CONTACT_LIST_STATE_SUCCESS = 3,
} TpContactListState;
#define TP_NUM_CONTACT_LIST_STATES (3+1)
#define NUM_TP_CONTACT_LIST_STATES TP_NUM_CONTACT_LIST_STATES

typedef enum {
    TP_SUBSCRIPTION_STATE_UNKNOWN = 0,
    TP_SUBSCRIPTION_STATE_NO = 1,
    TP_SUBSCRIPTION_STATE_REMOVED_REMOTELY = 2,
    TP_SUBSCRIPTION_STATE_ASK = 3,
    TP_SUBSCRIPTION_STATE_YES = 4,
} TpSubscriptionState;
#define TP_NUM_SUBSCRIPTION_STATES (4+1)
#define NUM_TP_SUBSCRIPTION_STATES TP_NUM_SUBSCRIPTION_STATES

typedef enum {
    TP_CONTACT_METADATA_STORAGE_TYPE_NONE = 0,
    TP_CONTACT_METADATA_STORAGE_TYPE_SUBSCRIBED_OR_PENDING = 1,
    TP_CONTACT_METADATA_STORAGE_TYPE_SUBSCRIBED = 2,
    TP_CONTACT_METADATA_STORAGE_TYPE_ANYONE = 3,
} TpContactMetadataStorageType;
#define TP_NUM_CONTACT_METADATA_STORAGE_TYPES (3+1)
#define NUM_TP_CONTACT_METADATA_STORAGE_TYPES TP_NUM_CONTACT_METADATA_STORAGE_TYPES

typedef enum {
    TP_CONNECTION_PRESENCE_TYPE_UNSET = 0,
    TP_CONNECTION_PRESENCE_TYPE_OFFLINE = 1,
    TP_CONNECTION_PRESENCE_TYPE_AVAILABLE = 2,
    TP_CONNECTION_PRESENCE_TYPE_AWAY = 3,
    TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY = 4,
    TP_CONNECTION_PRESENCE_TYPE_HIDDEN = 5,
    TP_CONNECTION_PRESENCE_TYPE_BUSY = 6,
    TP_CONNECTION_PRESENCE_TYPE_UNKNOWN = 7,
    TP_CONNECTION_PRESENCE_TYPE_ERROR = 8,
} TpConnectionPresenceType;
#define TP_NUM_CONNECTION_PRESENCE_TYPES (8+1)
#define NUM_TP_CONNECTION_PRESENCE_TYPES TP_NUM_CONNECTION_PRESENCE_TYPES

typedef enum {
    TP_ACCESS_CONTROL_TYPE_WHITELIST = 0,
    TP_ACCESS_CONTROL_TYPE_PUBLISH_LIST = 1,
    TP_ACCESS_CONTROL_TYPE_GROUP = 2,
    TP_ACCESS_CONTROL_TYPE_OPEN = 3,
    TP_ACCESS_CONTROL_TYPE_SUBSCRIBE_OR_PUBLISH_LIST = 4,
    TP_ACCESS_CONTROL_TYPE_CLOSED = 5,
    TP_ACCESS_CONTROL_TYPE_NOT_UNDERSTOOD = 6,
} TpAccessControlType;
#define TP_NUM_ACCESS_CONTROL_TYPES (6+1)
#define NUM_TP_ACCESS_CONTROL_TYPES TP_NUM_ACCESS_CONTROL_TYPES

typedef enum {
    TP_RICH_PRESENCE_ACCESS_CONTROL_TYPE_WHITELIST = 0,
    TP_RICH_PRESENCE_ACCESS_CONTROL_TYPE_PUBLISH_LIST = 1,
    TP_RICH_PRESENCE_ACCESS_CONTROL_TYPE_GROUP = 2,
    TP_RICH_PRESENCE_ACCESS_CONTROL_TYPE_OPEN = 3,
} TpRichPresenceAccessControlType;
#define TP_NUM_RICH_PRESENCE_ACCESS_CONTROL_TYPES (3+1)
#define NUM_TP_RICH_PRESENCE_ACCESS_CONTROL_TYPES TP_NUM_RICH_PRESENCE_ACCESS_CONTROL_TYPES

typedef enum /*< flags >*/ {
    TP_LOCATION_FEATURE_CAN_SET = 1,
} TpLocationFeatures;

typedef enum {
    TP_SERVICE_POINT_TYPE_NONE = 0,
    TP_SERVICE_POINT_TYPE_EMERGENCY = 1,
    TP_SERVICE_POINT_TYPE_COUNSELING = 2,
} TpServicePointType;
#define TP_NUM_SERVICE_POINT_TYPES (2+1)
#define NUM_TP_SERVICE_POINT_TYPES TP_NUM_SERVICE_POINT_TYPES

typedef enum /*< flags >*/ {
    TP_MAIL_NOTIFICATION_FLAG_SUPPORTS_UNREAD_MAIL_COUNT = 1,
    TP_MAIL_NOTIFICATION_FLAG_SUPPORTS_UNREAD_MAILS = 2,
    TP_MAIL_NOTIFICATION_FLAG_EMITS_MAILS_RECEIVED = 4,
    TP_MAIL_NOTIFICATION_FLAG_SUPPORTS_REQUEST_INBOX_URL = 8,
    TP_MAIL_NOTIFICATION_FLAG_SUPPORTS_REQUEST_MAIL_URL = 16,
    TP_MAIL_NOTIFICATION_FLAG_THREAD_BASED = 32,
} TpMailNotificationFlags;

typedef enum {
    TP_HTTP_METHOD_GET = 0,
    TP_HTTP_METHOD_POST = 1,
} TpHTTPMethod;
#define TP_NUM_HTTP_METHODS (1+1)
#define NUM_TP_HTTP_METHODS TP_NUM_HTTP_METHODS

typedef enum {
    TP_CALL_STATE_UNKNOWN = 0,
    TP_CALL_STATE_PENDING_INITIATOR = 1,
    TP_CALL_STATE_INITIALISING = 2,
    TP_CALL_STATE_INITIALISED = 3,
    TP_CALL_STATE_ACCEPTED = 4,
    TP_CALL_STATE_ACTIVE = 5,
    TP_CALL_STATE_ENDED = 6,
} TpCallState;
#define TP_NUM_CALL_STATES (6+1)
#define NUM_TP_CALL_STATES TP_NUM_CALL_STATES

typedef enum /*< flags >*/ {
    TP_CALL_FLAG_LOCALLY_HELD = 1,
    TP_CALL_FLAG_LOCALLY_RINGING = 2,
    TP_CALL_FLAG_LOCALLY_QUEUED = 4,
    TP_CALL_FLAG_FORWARDED = 8,
    TP_CALL_FLAG_CLEARING = 16,
} TpCallFlags;

typedef enum {
    TP_CALL_STATE_CHANGE_REASON_UNKNOWN = 0,
    TP_CALL_STATE_CHANGE_REASON_PROGRESS_MADE = 1,
    TP_CALL_STATE_CHANGE_REASON_USER_REQUESTED = 2,
    TP_CALL_STATE_CHANGE_REASON_FORWARDED = 3,
    TP_CALL_STATE_CHANGE_REASON_REJECTED = 4,
    TP_CALL_STATE_CHANGE_REASON_NO_ANSWER = 5,
    TP_CALL_STATE_CHANGE_REASON_INVALID_CONTACT = 6,
    TP_CALL_STATE_CHANGE_REASON_PERMISSION_DENIED = 7,
    TP_CALL_STATE_CHANGE_REASON_BUSY = 8,
    TP_CALL_STATE_CHANGE_REASON_INTERNAL_ERROR = 9,
    TP_CALL_STATE_CHANGE_REASON_SERVICE_ERROR = 10,
    TP_CALL_STATE_CHANGE_REASON_NETWORK_ERROR = 11,
    TP_CALL_STATE_CHANGE_REASON_MEDIA_ERROR = 12,
    TP_CALL_STATE_CHANGE_REASON_CONNECTIVITY_ERROR = 13,
} TpCallStateChangeReason;
#define TP_NUM_CALL_STATE_CHANGE_REASONS (13+1)
#define NUM_TP_CALL_STATE_CHANGE_REASONS TP_NUM_CALL_STATE_CHANGE_REASONS

typedef enum /*< flags >*/ {
    TP_CALL_MEMBER_FLAG_RINGING = 1,
    TP_CALL_MEMBER_FLAG_HELD = 2,
    TP_CALL_MEMBER_FLAG_CONFERENCE_HOST = 4,
} TpCallMemberFlags;

typedef enum {
    TP_CHANNEL_CONTACT_SEARCH_STATE_NOT_STARTED = 0,
    TP_CHANNEL_CONTACT_SEARCH_STATE_IN_PROGRESS = 1,
    TP_CHANNEL_CONTACT_SEARCH_STATE_MORE_AVAILABLE = 2,
    TP_CHANNEL_CONTACT_SEARCH_STATE_COMPLETED = 3,
    TP_CHANNEL_CONTACT_SEARCH_STATE_FAILED = 4,
} TpChannelContactSearchState;
#define TP_NUM_CHANNEL_CONTACT_SEARCH_STATES (4+1)
#define NUM_TP_CHANNEL_CONTACT_SEARCH_STATES TP_NUM_CHANNEL_CONTACT_SEARCH_STATES

typedef enum {
    TP_FILE_TRANSFER_STATE_NONE = 0,
    TP_FILE_TRANSFER_STATE_PENDING = 1,
    TP_FILE_TRANSFER_STATE_ACCEPTED = 2,
    TP_FILE_TRANSFER_STATE_OPEN = 3,
    TP_FILE_TRANSFER_STATE_COMPLETED = 4,
    TP_FILE_TRANSFER_STATE_CANCELLED = 5,
} TpFileTransferState;
#define TP_NUM_FILE_TRANSFER_STATES (5+1)
#define NUM_TP_FILE_TRANSFER_STATES TP_NUM_FILE_TRANSFER_STATES

typedef enum {
    TP_FILE_TRANSFER_STATE_CHANGE_REASON_NONE = 0,
    TP_FILE_TRANSFER_STATE_CHANGE_REASON_REQUESTED = 1,
    TP_FILE_TRANSFER_STATE_CHANGE_REASON_LOCAL_STOPPED = 2,
    TP_FILE_TRANSFER_STATE_CHANGE_REASON_REMOTE_STOPPED = 3,
    TP_FILE_TRANSFER_STATE_CHANGE_REASON_LOCAL_ERROR = 4,
    TP_FILE_TRANSFER_STATE_CHANGE_REASON_REMOTE_ERROR = 5,
} TpFileTransferStateChangeReason;
#define TP_NUM_FILE_TRANSFER_STATE_CHANGE_REASONS (5+1)
#define NUM_TP_FILE_TRANSFER_STATE_CHANGE_REASONS TP_NUM_FILE_TRANSFER_STATE_CHANGE_REASONS

typedef enum {
    TP_FILE_HASH_TYPE_NONE = 0,
    TP_FILE_HASH_TYPE_MD5 = 1,
    TP_FILE_HASH_TYPE_SHA1 = 2,
    TP_FILE_HASH_TYPE_SHA256 = 3,
} TpFileHashType;
#define TP_NUM_FILE_HASH_TYPES (3+1)
#define NUM_TP_FILE_HASH_TYPES TP_NUM_FILE_HASH_TYPES

typedef enum {
    TP_MEDIA_STREAM_TYPE_AUDIO = 0,
    TP_MEDIA_STREAM_TYPE_VIDEO = 1,
} TpMediaStreamType;
#define TP_NUM_MEDIA_STREAM_TYPES (1+1)
#define NUM_TP_MEDIA_STREAM_TYPES TP_NUM_MEDIA_STREAM_TYPES

typedef enum {
    TP_MEDIA_STREAM_STATE_DISCONNECTED = 0,
    TP_MEDIA_STREAM_STATE_CONNECTING = 1,
    TP_MEDIA_STREAM_STATE_CONNECTED = 2,
} TpMediaStreamState;
#define TP_NUM_MEDIA_STREAM_STATES (2+1)
#define NUM_TP_MEDIA_STREAM_STATES TP_NUM_MEDIA_STREAM_STATES

typedef enum {
    TP_MEDIA_STREAM_DIRECTION_NONE = 0,
    TP_MEDIA_STREAM_DIRECTION_SEND = 1,
    TP_MEDIA_STREAM_DIRECTION_RECEIVE = 2,
    TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL = 3,
} TpMediaStreamDirection;
#define TP_NUM_MEDIA_STREAM_DIRECTIONS (3+1)
#define NUM_TP_MEDIA_STREAM_DIRECTIONS TP_NUM_MEDIA_STREAM_DIRECTIONS

typedef enum /*< flags >*/ {
    TP_MEDIA_STREAM_PENDING_LOCAL_SEND = 1,
    TP_MEDIA_STREAM_PENDING_REMOTE_SEND = 2,
} TpMediaStreamPendingSend;

typedef enum /*< flags >*/ {
    TP_CHANNEL_MEDIA_CAPABILITY_AUDIO = 1,
    TP_CHANNEL_MEDIA_CAPABILITY_VIDEO = 2,
    TP_CHANNEL_MEDIA_CAPABILITY_NAT_TRAVERSAL_STUN = 4,
    TP_CHANNEL_MEDIA_CAPABILITY_NAT_TRAVERSAL_GTALK_P2P = 8,
    TP_CHANNEL_MEDIA_CAPABILITY_NAT_TRAVERSAL_ICE_UDP = 16,
    TP_CHANNEL_MEDIA_CAPABILITY_IMMUTABLE_STREAMS = 32,
} TpChannelMediaCapabilities;

typedef enum {
    TP_CHANNEL_TEXT_SEND_ERROR_UNKNOWN = 0,
    TP_CHANNEL_TEXT_SEND_ERROR_OFFLINE = 1,
    TP_CHANNEL_TEXT_SEND_ERROR_INVALID_CONTACT = 2,
    TP_CHANNEL_TEXT_SEND_ERROR_PERMISSION_DENIED = 3,
    TP_CHANNEL_TEXT_SEND_ERROR_TOO_LONG = 4,
    TP_CHANNEL_TEXT_SEND_ERROR_NOT_IMPLEMENTED = 5,
} TpChannelTextSendError;
#define TP_NUM_CHANNEL_TEXT_SEND_ERRORS (5+1)
#define NUM_TP_CHANNEL_TEXT_SEND_ERRORS TP_NUM_CHANNEL_TEXT_SEND_ERRORS

typedef enum {
    TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL = 0,
    TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION = 1,
    TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE = 2,
    TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY = 3,
    TP_CHANNEL_TEXT_MESSAGE_TYPE_DELIVERY_REPORT = 4,
} TpChannelTextMessageType;
#define TP_NUM_CHANNEL_TEXT_MESSAGE_TYPES (4+1)
#define NUM_TP_CHANNEL_TEXT_MESSAGE_TYPES TP_NUM_CHANNEL_TEXT_MESSAGE_TYPES

typedef enum /*< flags >*/ {
    TP_CHANNEL_TEXT_MESSAGE_FLAG_TRUNCATED = 1,
    TP_CHANNEL_TEXT_MESSAGE_FLAG_NON_TEXT_CONTENT = 2,
    TP_CHANNEL_TEXT_MESSAGE_FLAG_SCROLLBACK = 4,
    TP_CHANNEL_TEXT_MESSAGE_FLAG_RESCUED = 8,
} TpChannelTextMessageFlags;

typedef enum {
    TP_TUBE_TYPE_DBUS = 0,
    TP_TUBE_TYPE_STREAM = 1,
} TpTubeType;
#define TP_NUM_TUBE_TYPES (1+1)
#define NUM_TP_TUBE_TYPES TP_NUM_TUBE_TYPES

typedef enum {
    TP_TUBE_STATE_LOCAL_PENDING = 0,
    TP_TUBE_STATE_REMOTE_PENDING = 1,
    TP_TUBE_STATE_OPEN = 2,
} TpTubeState;
#define TP_NUM_TUBE_STATES (2+1)
#define NUM_TP_TUBE_STATES TP_NUM_TUBE_STATES

typedef enum /*< flags >*/ {
    TP_CHANNEL_CALL_STATE_RINGING = 1,
    TP_CHANNEL_CALL_STATE_QUEUED = 2,
    TP_CHANNEL_CALL_STATE_HELD = 4,
    TP_CHANNEL_CALL_STATE_FORWARDED = 8,
    TP_CHANNEL_CALL_STATE_IN_PROGRESS = 16,
    TP_CHANNEL_CALL_STATE_CONFERENCE_HOST = 32,
} TpChannelCallStateFlags;

typedef enum /*< flags >*/ {
    TP_CAPTCHA_FLAGS_REQUIRED = 1,
} TpCaptchaFlags;

typedef enum {
    TP_CAPTCHA_CANCEL_REASON_USER_CANCELLED = 0,
    TP_CAPTCHA_CANCEL_REASON_NOT_SUPPORTED = 1,
    TP_CAPTCHA_CANCEL_REASON_SERVICE_CONFUSED = 2,
} TpCaptchaCancelReason;
#define TP_NUM_CAPTCHA_CANCEL_REASONS (2+1)
#define NUM_TP_CAPTCHA_CANCEL_REASONS TP_NUM_CAPTCHA_CANCEL_REASONS

typedef enum {
    TP_CAPTCHA_STATUS_LOCAL_PENDING = 0,
    TP_CAPTCHA_STATUS_REMOTE_PENDING = 1,
    TP_CAPTCHA_STATUS_SUCCEEDED = 2,
    TP_CAPTCHA_STATUS_TRY_AGAIN = 3,
    TP_CAPTCHA_STATUS_FAILED = 4,
} TpCaptchaStatus;
#define TP_NUM_CAPTCHA_STATUSES (4+1)
#define NUM_TP_CAPTCHA_STATUSES TP_NUM_CAPTCHA_STATUSES

typedef enum {
    TP_CHANNEL_CHAT_STATE_GONE = 0,
    TP_CHANNEL_CHAT_STATE_INACTIVE = 1,
    TP_CHANNEL_CHAT_STATE_ACTIVE = 2,
    TP_CHANNEL_CHAT_STATE_PAUSED = 3,
    TP_CHANNEL_CHAT_STATE_COMPOSING = 4,
} TpChannelChatState;
#define TP_NUM_CHANNEL_CHAT_STATES (4+1)
#define NUM_TP_CHANNEL_CHAT_STATES TP_NUM_CHANNEL_CHAT_STATES

typedef enum {
    TP_DTMF_EVENT_DIGIT_0 = 0,
    TP_DTMF_EVENT_DIGIT_1 = 1,
    TP_DTMF_EVENT_DIGIT_2 = 2,
    TP_DTMF_EVENT_DIGIT_3 = 3,
    TP_DTMF_EVENT_DIGIT_4 = 4,
    TP_DTMF_EVENT_DIGIT_5 = 5,
    TP_DTMF_EVENT_DIGIT_6 = 6,
    TP_DTMF_EVENT_DIGIT_7 = 7,
    TP_DTMF_EVENT_DIGIT_8 = 8,
    TP_DTMF_EVENT_DIGIT_9 = 9,
    TP_DTMF_EVENT_ASTERISK = 10,
    TP_DTMF_EVENT_HASH = 11,
    TP_DTMF_EVENT_LETTER_A = 12,
    TP_DTMF_EVENT_LETTER_B = 13,
    TP_DTMF_EVENT_LETTER_C = 14,
    TP_DTMF_EVENT_LETTER_D = 15,
} TpDTMFEvent;
#define TP_NUM_DTMF_EVENTS (15+1)
#define NUM_TP_DTMF_EVENTS TP_NUM_DTMF_EVENTS

typedef enum /*< flags >*/ {
    TP_CHANNEL_GROUP_FLAG_CAN_ADD = 1,
    TP_CHANNEL_GROUP_FLAG_CAN_REMOVE = 2,
    TP_CHANNEL_GROUP_FLAG_CAN_RESCIND = 4,
    TP_CHANNEL_GROUP_FLAG_MESSAGE_ADD = 8,
    TP_CHANNEL_GROUP_FLAG_MESSAGE_REMOVE = 16,
    TP_CHANNEL_GROUP_FLAG_MESSAGE_ACCEPT = 32,
    TP_CHANNEL_GROUP_FLAG_MESSAGE_REJECT = 64,
    TP_CHANNEL_GROUP_FLAG_MESSAGE_RESCIND = 128,
    TP_CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES = 256,
    TP_CHANNEL_GROUP_FLAG_ONLY_ONE_GROUP = 512,
    TP_CHANNEL_GROUP_FLAG_HANDLE_OWNERS_NOT_AVAILABLE = 1024,
    TP_CHANNEL_GROUP_FLAG_PROPERTIES = 2048,
    TP_CHANNEL_GROUP_FLAG_MEMBERS_CHANGED_DETAILED = 4096,
    TP_CHANNEL_GROUP_FLAG_MESSAGE_DEPART = 8192,
} TpChannelGroupFlags;

typedef enum {
    TP_CHANNEL_GROUP_CHANGE_REASON_NONE = 0,
    TP_CHANNEL_GROUP_CHANGE_REASON_OFFLINE = 1,
    TP_CHANNEL_GROUP_CHANGE_REASON_KICKED = 2,
    TP_CHANNEL_GROUP_CHANGE_REASON_BUSY = 3,
    TP_CHANNEL_GROUP_CHANGE_REASON_INVITED = 4,
    TP_CHANNEL_GROUP_CHANGE_REASON_BANNED = 5,
    TP_CHANNEL_GROUP_CHANGE_REASON_ERROR = 6,
    TP_CHANNEL_GROUP_CHANGE_REASON_INVALID_CONTACT = 7,
    TP_CHANNEL_GROUP_CHANGE_REASON_NO_ANSWER = 8,
    TP_CHANNEL_GROUP_CHANGE_REASON_RENAMED = 9,
    TP_CHANNEL_GROUP_CHANGE_REASON_PERMISSION_DENIED = 10,
    TP_CHANNEL_GROUP_CHANGE_REASON_SEPARATED = 11,
} TpChannelGroupChangeReason;
#define TP_NUM_CHANNEL_GROUP_CHANGE_REASONS (11+1)
#define NUM_TP_CHANNEL_GROUP_CHANGE_REASONS TP_NUM_CHANNEL_GROUP_CHANGE_REASONS

typedef enum {
    TP_LOCAL_HOLD_STATE_UNHELD = 0,
    TP_LOCAL_HOLD_STATE_HELD = 1,
    TP_LOCAL_HOLD_STATE_PENDING_HOLD = 2,
    TP_LOCAL_HOLD_STATE_PENDING_UNHOLD = 3,
} TpLocalHoldState;
#define TP_NUM_LOCAL_HOLD_STATES (3+1)
#define NUM_TP_LOCAL_HOLD_STATES TP_NUM_LOCAL_HOLD_STATES

typedef enum {
    TP_LOCAL_HOLD_STATE_REASON_NONE = 0,
    TP_LOCAL_HOLD_STATE_REASON_REQUESTED = 1,
    TP_LOCAL_HOLD_STATE_REASON_RESOURCE_NOT_AVAILABLE = 2,
} TpLocalHoldStateReason;
#define TP_NUM_LOCAL_HOLD_STATE_REASONS (2+1)
#define NUM_TP_LOCAL_HOLD_STATE_REASONS TP_NUM_LOCAL_HOLD_STATE_REASONS

typedef enum /*< flags >*/ {
    TP_MESSAGE_PART_SUPPORT_FLAG_ONE_ATTACHMENT = 1,
    TP_MESSAGE_PART_SUPPORT_FLAG_MULTIPLE_ATTACHMENTS = 2,
} TpMessagePartSupportFlags;

typedef enum /*< flags >*/ {
    TP_MESSAGE_SENDING_FLAG_REPORT_DELIVERY = 1,
    TP_MESSAGE_SENDING_FLAG_REPORT_READ = 2,
    TP_MESSAGE_SENDING_FLAG_REPORT_DELETED = 4,
} TpMessageSendingFlags;

typedef enum {
    TP_DELIVERY_STATUS_UNKNOWN = 0,
    TP_DELIVERY_STATUS_DELIVERED = 1,
    TP_DELIVERY_STATUS_TEMPORARILY_FAILED = 2,
    TP_DELIVERY_STATUS_PERMANENTLY_FAILED = 3,
    TP_DELIVERY_STATUS_ACCEPTED = 4,
    TP_DELIVERY_STATUS_READ = 5,
    TP_DELIVERY_STATUS_DELETED = 6,
} TpDeliveryStatus;
#define TP_NUM_DELIVERY_STATUSES (6+1)
#define NUM_TP_DELIVERY_STATUSES TP_NUM_DELIVERY_STATUSES

typedef enum /*< flags >*/ {
    TP_DELIVERY_REPORTING_SUPPORT_FLAG_RECEIVE_FAILURES = 1,
    TP_DELIVERY_REPORTING_SUPPORT_FLAG_RECEIVE_SUCCESSES = 2,
    TP_DELIVERY_REPORTING_SUPPORT_FLAG_RECEIVE_READ = 4,
    TP_DELIVERY_REPORTING_SUPPORT_FLAG_RECEIVE_DELETED = 8,
} TpDeliveryReportingSupportFlags;

typedef enum /*< flags >*/ {
    TP_CHANNEL_PASSWORD_FLAG_PROVIDE = 8,
    TP_CHANNEL_PASSWORD_FLAG_HINT = 4,
} TpChannelPasswordFlags;

typedef enum {
    TP_SASL_ABORT_REASON_INVALID_CHALLENGE = 0,
    TP_SASL_ABORT_REASON_USER_ABORT = 1,
} TpSASLAbortReason;
#define TP_NUM_SASL_ABORT_REASONS (1+1)
#define NUM_TP_SASL_ABORT_REASONS TP_NUM_SASL_ABORT_REASONS

typedef enum {
    TP_SASL_STATUS_NOT_STARTED = 0,
    TP_SASL_STATUS_IN_PROGRESS = 1,
    TP_SASL_STATUS_SERVER_SUCCEEDED = 2,
    TP_SASL_STATUS_CLIENT_ACCEPTED = 3,
    TP_SASL_STATUS_SUCCEEDED = 4,
    TP_SASL_STATUS_SERVER_FAILED = 5,
    TP_SASL_STATUS_CLIENT_FAILED = 6,
} TpSASLStatus;
#define TP_NUM_SASL_STATUSES (6+1)
#define NUM_TP_SASL_STATUSES TP_NUM_SASL_STATUSES

typedef enum {
    TP_TUBE_CHANNEL_STATE_LOCAL_PENDING = 0,
    TP_TUBE_CHANNEL_STATE_REMOTE_PENDING = 1,
    TP_TUBE_CHANNEL_STATE_OPEN = 2,
    TP_TUBE_CHANNEL_STATE_NOT_OFFERED = 3,
} TpTubeChannelState;
#define TP_NUM_TUBE_CHANNEL_STATES (3+1)
#define NUM_TP_TUBE_CHANNEL_STATES TP_NUM_TUBE_CHANNEL_STATES

typedef enum {
    TP_SOCKET_ADDRESS_TYPE_UNIX = 0,
    TP_SOCKET_ADDRESS_TYPE_ABSTRACT_UNIX = 1,
    TP_SOCKET_ADDRESS_TYPE_IPV4 = 2,
    TP_SOCKET_ADDRESS_TYPE_IPV6 = 3,
} TpSocketAddressType;
#define TP_NUM_SOCKET_ADDRESS_TYPES (3+1)
#define NUM_TP_SOCKET_ADDRESS_TYPES TP_NUM_SOCKET_ADDRESS_TYPES

typedef enum {
    TP_SOCKET_ACCESS_CONTROL_LOCALHOST = 0,
    TP_SOCKET_ACCESS_CONTROL_PORT = 1,
    TP_SOCKET_ACCESS_CONTROL_NETMASK = 2,
    TP_SOCKET_ACCESS_CONTROL_CREDENTIALS = 3,
} TpSocketAccessControl;
#define TP_NUM_SOCKET_ACCESS_CONTROLS (3+1)
#define NUM_TP_SOCKET_ACCESS_CONTROLS TP_NUM_SOCKET_ACCESS_CONTROLS

typedef enum {
    TP_MEDIA_STREAM_ERROR_UNKNOWN = 0,
    TP_MEDIA_STREAM_ERROR_EOS = 1,
    TP_MEDIA_STREAM_ERROR_CODEC_NEGOTIATION_FAILED = 2,
    TP_MEDIA_STREAM_ERROR_CONNECTION_FAILED = 3,
    TP_MEDIA_STREAM_ERROR_NETWORK_ERROR = 4,
    TP_MEDIA_STREAM_ERROR_NO_CODECS = 5,
    TP_MEDIA_STREAM_ERROR_INVALID_CM_BEHAVIOR = 6,
    TP_MEDIA_STREAM_ERROR_MEDIA_ERROR = 7,
} TpMediaStreamError;
#define TP_NUM_MEDIA_STREAM_ERRORS (7+1)
#define NUM_TP_MEDIA_STREAM_ERRORS TP_NUM_MEDIA_STREAM_ERRORS

typedef enum {
    TP_MEDIA_STREAM_BASE_PROTO_UDP = 0,
    TP_MEDIA_STREAM_BASE_PROTO_TCP = 1,
} TpMediaStreamBaseProto;
#define TP_NUM_MEDIA_STREAM_BASE_PROTOS (1+1)
#define NUM_TP_MEDIA_STREAM_BASE_PROTOS TP_NUM_MEDIA_STREAM_BASE_PROTOS

typedef enum {
    TP_MEDIA_STREAM_TRANSPORT_TYPE_LOCAL = 0,
    TP_MEDIA_STREAM_TRANSPORT_TYPE_DERIVED = 1,
    TP_MEDIA_STREAM_TRANSPORT_TYPE_RELAY = 2,
} TpMediaStreamTransportType;
#define TP_NUM_MEDIA_STREAM_TRANSPORT_TYPES (2+1)
#define NUM_TP_MEDIA_STREAM_TRANSPORT_TYPES TP_NUM_MEDIA_STREAM_TRANSPORT_TYPES

typedef enum /*< flags >*/ {
    TP_PROPERTY_FLAG_READ = 1,
    TP_PROPERTY_FLAG_WRITE = 2,
} TpPropertyFlags;

typedef enum /*< flags >*/ {
    TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_PARAMETERS = 1,
    TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_ENABLED = 2,
    TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_PRESENCE = 4,
    TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_SERVICE = 8,
} TpStorageRestrictionFlags;

typedef enum {
    TP_DEBUG_LEVEL_ERROR = 0,
    TP_DEBUG_LEVEL_CRITICAL = 1,
    TP_DEBUG_LEVEL_WARNING = 2,
    TP_DEBUG_LEVEL_MESSAGE = 3,
    TP_DEBUG_LEVEL_INFO = 4,
    TP_DEBUG_LEVEL_DEBUG = 5,
} TpDebugLevel;
#define TP_NUM_DEBUG_LEVELS (5+1)
#define NUM_TP_DEBUG_LEVELS TP_NUM_DEBUG_LEVELS

typedef enum {
    TP_TLS_CERTIFICATE_STATE_PENDING = 0,
    TP_TLS_CERTIFICATE_STATE_ACCEPTED = 1,
    TP_TLS_CERTIFICATE_STATE_REJECTED = 2,
} TpTLSCertificateState;
#define TP_NUM_TLS_CERTIFICATE_STATES (2+1)
#define NUM_TP_TLS_CERTIFICATE_STATES TP_NUM_TLS_CERTIFICATE_STATES

typedef enum {
    TP_TLS_CERTIFICATE_REJECT_REASON_UNKNOWN = 0,
    TP_TLS_CERTIFICATE_REJECT_REASON_UNTRUSTED = 1,
    TP_TLS_CERTIFICATE_REJECT_REASON_EXPIRED = 2,
    TP_TLS_CERTIFICATE_REJECT_REASON_NOT_ACTIVATED = 3,
    TP_TLS_CERTIFICATE_REJECT_REASON_FINGERPRINT_MISMATCH = 4,
    TP_TLS_CERTIFICATE_REJECT_REASON_HOSTNAME_MISMATCH = 5,
    TP_TLS_CERTIFICATE_REJECT_REASON_SELF_SIGNED = 6,
    TP_TLS_CERTIFICATE_REJECT_REASON_REVOKED = 7,
    TP_TLS_CERTIFICATE_REJECT_REASON_INSECURE = 8,
    TP_TLS_CERTIFICATE_REJECT_REASON_LIMIT_EXCEEDED = 9,
} TpTLSCertificateRejectReason;
#define TP_NUM_TLS_CERTIFICATE_REJECT_REASONS (9+1)
#define NUM_TP_TLS_CERTIFICATE_REJECT_REASONS TP_NUM_TLS_CERTIFICATE_REJECT_REASONS

typedef enum {
    TP_CALL_CONTENT_PACKETIZATION_TYPE_RTP = 0,
    TP_CALL_CONTENT_PACKETIZATION_TYPE_RAW = 1,
    TP_CALL_CONTENT_PACKETIZATION_TYPE_MSN_WEBCAM = 2,
} TpCallContentPacketizationType;
#define TP_NUM_CALL_CONTENT_PACKETIZATION_TYPES (2+1)
#define NUM_TP_CALL_CONTENT_PACKETIZATION_TYPES TP_NUM_CALL_CONTENT_PACKETIZATION_TYPES

typedef enum {
    TP_CALL_CONTENT_DISPOSITION_NONE = 0,
    TP_CALL_CONTENT_DISPOSITION_INITIAL = 1,
} TpCallContentDisposition;
#define TP_NUM_CALL_CONTENT_DISPOSITIONS (1+1)
#define NUM_TP_CALL_CONTENT_DISPOSITIONS TP_NUM_CALL_CONTENT_DISPOSITIONS

typedef enum /*< flags >*/ {
    TP_RTCP_XR_STATISTICS_FLAGS_LOSS = 1,
    TP_RTCP_XR_STATISTICS_FLAGS_DUPLICATE = 2,
    TP_RTCP_XR_STATISTICS_FLAGS_JITTER = 4,
    TP_RTCP_XR_STATISTICS_FLAGS_TTL = 8,
    TP_RTCP_XR_STATISTICS_FLAGS_HL = 16,
} TpRTCPXRStatisticsFlags;

typedef enum {
    TP_RCPT_XR_RTT_MODE_ALL = 0,
    TP_RCPT_XR_RTT_MODE_SENDER = 1,
} TpRCPTXRRTTMode;
#define TP_NUM_RCPT_XR_RTT_MODES (1+1)
#define NUM_TP_RCPT_XR_RTT_MODES TP_NUM_RCPT_XR_RTT_MODES

typedef enum {
    TP_STREAM_FLOW_STATE_STOPPED = 0,
    TP_STREAM_FLOW_STATE_PENDING_START = 1,
    TP_STREAM_FLOW_STATE_PENDING_STOP = 2,
    TP_STREAM_FLOW_STATE_STARTED = 3,
} TpStreamFlowState;
#define TP_NUM_STREAM_FLOW_STATES (3+1)
#define NUM_TP_STREAM_FLOW_STATES TP_NUM_STREAM_FLOW_STATES

typedef enum {
    TP_CALL_STREAM_CANDIDATE_TYPE_NONE = 0,
    TP_CALL_STREAM_CANDIDATE_TYPE_HOST = 1,
    TP_CALL_STREAM_CANDIDATE_TYPE_SERVER_REFLEXIVE = 2,
    TP_CALL_STREAM_CANDIDATE_TYPE_PEER_REFLEXIVE = 3,
    TP_CALL_STREAM_CANDIDATE_TYPE_RELAY = 4,
    TP_CALL_STREAM_CANDIDATE_TYPE_MULTICAST = 5,
} TpCallStreamCandidateType;
#define TP_NUM_CALL_STREAM_CANDIDATE_TYPES (5+1)
#define NUM_TP_CALL_STREAM_CANDIDATE_TYPES TP_NUM_CALL_STREAM_CANDIDATE_TYPES

typedef enum {
    TP_STREAM_COMPONENT_UNKNOWN = 0,
    TP_STREAM_COMPONENT_DATA = 1,
    TP_STREAM_COMPONENT_CONTROL = 2,
} TpStreamComponent;
#define TP_NUM_STREAM_COMPONENTS (2+1)
#define NUM_TP_STREAM_COMPONENTS TP_NUM_STREAM_COMPONENTS

typedef enum {
    TP_STREAM_TRANSPORT_TYPE_UNKNOWN = 0,
    TP_STREAM_TRANSPORT_TYPE_RAW_UDP = 1,
    TP_STREAM_TRANSPORT_TYPE_ICE = 2,
    TP_STREAM_TRANSPORT_TYPE_GTALK_P2P = 3,
    TP_STREAM_TRANSPORT_TYPE_WLM_2009 = 4,
    TP_STREAM_TRANSPORT_TYPE_SHM = 5,
    TP_STREAM_TRANSPORT_TYPE_MULTICAST = 6,
} TpStreamTransportType;
#define TP_NUM_STREAM_TRANSPORT_TYPES (6+1)
#define NUM_TP_STREAM_TRANSPORT_TYPES TP_NUM_STREAM_TRANSPORT_TYPES

typedef enum {
    TP_SENDING_STATE_NONE = 0,
    TP_SENDING_STATE_PENDING_SEND = 1,
    TP_SENDING_STATE_SENDING = 2,
    TP_SENDING_STATE_PENDING_STOP_SENDING = 3,
} TpSendingState;
#define TP_NUM_SENDING_STATES (3+1)
#define NUM_TP_SENDING_STATES TP_NUM_SENDING_STATES

typedef enum {
    TP_STREAM_ENDPOINT_STATE_CONNECTING = 0,
    TP_STREAM_ENDPOINT_STATE_PROVISIONALLY_CONNECTED = 1,
    TP_STREAM_ENDPOINT_STATE_FULLY_CONNECTED = 2,
    TP_STREAM_ENDPOINT_STATE_EXHAUSTED_CANDIDATES = 3,
    TP_STREAM_ENDPOINT_STATE_FAILED = 4,
} TpStreamEndpointState;
#define TP_NUM_STREAM_ENDPOINT_STATES (4+1)
#define NUM_TP_STREAM_ENDPOINT_STATES TP_NUM_STREAM_ENDPOINT_STATES


#ifdef __cplusplus
}
#endif
