TeamTalk 5 C-API DLL: Client Error Handling

TeamTalk 5 C-API DLL Version 5.18A

Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions
Client Error Handling

This section explains how to handle errors occuring in the client instance or as a result of server commands. More...

## Classes

struct | ClientErrorMsg
| Struct containing an error message. More...

## Typedefs

typedef enum ClientError | ClientError
| Errors which can occur either as a result of client commands or as a result of internal errors.
typedef struct ClientErrorMsg | ClientErrorMsg
| Struct containing an error message.

## Enumerations

enum

ClientError {
CMDERR_SUCCESS = 0 , CMDERR_SYNTAX_ERROR = 1000 , CMDERR_UNKNOWN_COMMAND = 1001 , CMDERR_MISSING_PARAMETER = 1002 ,
CMDERR_INCOMPATIBLE_PROTOCOLS = 1003 , CMDERR_UNKNOWN_AUDIOCODEC = 1004 , CMDERR_INVALID_USERNAME = 1005 , CMDERR_INCORRECT_CHANNEL_PASSWORD = 2001 ,
CMDERR_INVALID_ACCOUNT = 2002 , CMDERR_MAX_SERVER_USERS_EXCEEDED = 2003 , CMDERR_MAX_CHANNEL_USERS_EXCEEDED = 2004 , CMDERR_SERVER_BANNED = 2005 ,
CMDERR_NOT_AUTHORIZED = 2006 , CMDERR_MAX_DISKUSAGE_EXCEEDED = 2008 , CMDERR_INCORRECT_OP_PASSWORD = 2010 , CMDERR_AUDIOCODEC_BITRATE_LIMIT_EXCEEDED = 2011 ,
CMDERR_MAX_LOGINS_PER_IPADDRESS_EXCEEDED = 2012 , CMDERR_MAX_CHANNELS_EXCEEDED = 2013 , CMDERR_COMMAND_FLOOD = 2014 , CMDERR_CHANNEL_BANNED = 2015 ,
CMDERR_MAX_FILETRANSFERS_EXCEEDED = 2016 , CMDERR_NOT_LOGGEDIN = 3000 , CMDERR_ALREADY_LOGGEDIN = 3001 , CMDERR_NOT_IN_CHANNEL = 3002 ,
CMDERR_ALREADY_IN_CHANNEL = 3003 , CMDERR_CHANNEL_ALREADY_EXISTS = 3004 , CMDERR_CHANNEL_NOT_FOUND = 3005 , CMDERR_USER_NOT_FOUND = 3006 ,
CMDERR_BAN_NOT_FOUND = 3007 , CMDERR_FILETRANSFER_NOT_FOUND = 3008 , CMDERR_OPENFILE_FAILED = 3009 , CMDERR_ACCOUNT_NOT_FOUND = 3010 ,
CMDERR_FILE_NOT_FOUND = 3011 , CMDERR_FILE_ALREADY_EXISTS = 3012 , CMDERR_FILESHARING_DISABLED = 3013 , CMDERR_CHANNEL_HAS_USERS = 3015 ,
CMDERR_LOGINSERVICE_UNAVAILABLE = 3016 , CMDERR_CHANNEL_CANNOT_BE_HIDDEN = 3017 , INTERR_SNDINPUT_FAILURE = 10000 , INTERR_SNDOUTPUT_FAILURE = 10001 ,
INTERR_AUDIOCODEC_INIT_FAILED = 10002 , INTERR_SPEEXDSP_INIT_FAILED = 10003 , INTERR_AUDIOPREPROCESSOR_INIT_FAILED = 10003 , INTERR_TTMESSAGE_QUEUE_OVERFLOW = 10004 ,
INTERR_SNDEFFECT_FAILURE = 10005
}

| Errors which can occur either as a result of client commands or as a result of internal errors. More...

## Functions

TEAMTALKDLL_API void | TT_GetErrorMessage (IN INT32 nError, OUT TTCHAR szErrorMsg[TT_STRLEN])
| Get textual discription of an error message.

## Detailed Description

This section explains how to handle errors occuring in the client instance or as a result of server commands.

There are two types errors which can occur in the client, either server command error or internal errors. Section Client/Server Commands describes all the commands a client can issue to a server. If a server commands fails the client instance notifies the user application through the event CLIENTEVENT_CMD_ERROR. An example of a server command error could be to issue the TT_DoLogin command with an incorrect password. The server will in this case respond with the error CMDERR_INVALID_ACCOUNT. The user application must be designed to process these errors so application users can be notified of errors.

Internal errors are errors due to failing devices. Currently only two such errors exist INTERR_SNDINPUT_FAILURE and INTERR_SNDOUTPUT_FAILURE.

## Typedef Documentation

## ◆ ClientError

typedef enum ClientError ClientError

Errors which can occur either as a result of client commands or as a result of internal errors.

Use TT_GetErrorMessage to get a text-description of the error.

## ◆ ClientErrorMsg

typedef struct ClientErrorMsg ClientErrorMsg

Struct containing an error message.

## Enumeration Type Documentation

## ◆ ClientError

enum ClientError

Errors which can occur either as a result of client commands or as a result of internal errors.

Use TT_GetErrorMessage to get a text-description of the error.

Enumerator
CMDERR_SUCCESS | Command indicating success. Only used internally.
CMDERR_SYNTAX_ERROR | Command has syntax error. Only used internally.

CMDERR_UNKNOWN_COMMAND

The server doesn't support the issued command.

       This error may occur if the server is an older version than
       the client instance.

CMDERR_MISSING_PARAMETER | Command cannot be performed due to missing parameter. Only used internally.
CMDERR_INCOMPATIBLE_PROTOCOLS | The server uses a protocol which is incompatible with the client instance.

CMDERR_UNKNOWN_AUDIOCODEC

The server does not support the audio codec specified by the client. Introduced in version 4.1.0.1264.

See also
  TT_DoMakeChannel
  TT_DoJoinChannel

CMDERR_INVALID_USERNAME

Invalid username for UserAccount.

See also
  TT_DoNewUserAccount()

CMDERR_INCORRECT_CHANNEL_PASSWORD

Invalid channel password.

       The #TT_DoJoinChannel or #TT_DoJoinChannelByID passed an
       invalid channel password. #TT_DoMakeChannel can also cause
       a this error if the password is longer than #TT_STRLEN.

CMDERR_INVALID_ACCOUNT

Invalid username or password for account.

       The #TT_DoLogin command was issued with invalid account
       properties. This error can also occur by
       #TT_DoNewUserAccount if username is empty.

CMDERR_MAX_SERVER_USERS_EXCEEDED | Login failed due to maximum number of users on server. TT_DoLogin failed because the server does not allow any more users.
CMDERR_MAX_CHANNEL_USERS_EXCEEDED | Cannot join channel because it has maximum number of users. TT_DoJoinChannel or TT_DoJoinChannelByID failed because no more users are allowed in the channel.

CMDERR_SERVER_BANNED

IP-address has been banned from server.

       #TT_DoLogin failed because the local client's IP-address
       has been banned on the server.

CMDERR_NOT_AUTHORIZED

Command not authorized.

       The command cannot be performed because the client instance
       has insufficient rights.

       @see TT_DoDeleteFile
       @see TT_DoJoinChannel
       @see TT_DoJoinChannelByID
       @see TT_DoLeaveChannel
       @see TT_DoChannelOp
       @see TT_DoChannelOpEx
       @see TT_DoKickUser
       @see TT_DoUpdateChannel
       @see TT_DoChangeNickname
       @see TT_DoChangeStatus
       @see TT_DoTextMessage
       @see TT_DoSubscribe
       @see TT_DoUnsubscribe
       @see TT_DoMakeChannel
       @see TT_DoRemoveChannel
       @see TT_DoMoveUser
       @see TT_DoUpdateServer
       @see TT_DoSaveConfig
       @see TT_DoSendFile
       @see TT_DoRecvFile
       @see TT_DoBanUser
       @see TT_DoUnBanUser
       @see TT_DoListBans
       @see TT_DoListUserAccounts
       @see TT_DoNewUserAccount
       @see TT_DoDeleteUserAccount

CMDERR_MAX_DISKUSAGE_EXCEEDED

Cannot upload file because disk quota will be exceeded.

       #TT_DoSendFile was not allowed because there's not enough
       disk space available for upload.

       @see Channel

CMDERR_INCORRECT_OP_PASSWORD

Invalid password for becoming channel operator.

       The password specified in #TT_DoChannelOpEx is not correct.
       The operator password is the @a szOpPassword of the
       #Channel-struct.

CMDERR_AUDIOCODEC_BITRATE_LIMIT_EXCEEDED

The selected AudioCodec exceeds what the server allows.

       A server can limit the vitrate of audio codecs if @c
       nAudioCodecBpsLimit of #ServerProperties is specified.

CMDERR_MAX_LOGINS_PER_IPADDRESS_EXCEEDED

The maximum number of logins allowed per IP-address has been exceeded.

See also
  ServerProperties
  TT_DoLogin()

CMDERR_MAX_CHANNELS_EXCEEDED

The maximum number of channels has been exceeded.

See also
  TT_CHANNELID_MAX

CMDERR_COMMAND_FLOOD

Command flooding prevented by server.

       Commands are issued faster than allowed by the server. See
       #UserAccount @c commandsPerMSec.  @see TT_CHANNELID_MAX

CMDERR_CHANNEL_BANNED

Banned from joining a channel.

       @see TT_DoJoinChannel()
       @see TT_DoJoinChannelByID()
       @see TT_DoBanUser()

CMDERR_MAX_FILETRANSFERS_EXCEEDED

Maximum number of file transfers exceeded.

        @see TT_DoSendFile()
        @see TT_DoRecvFile()

CMDERR_NOT_LOGGEDIN

Client instance has not been authenticated.

       #TT_DoLogin has not been issued successfully or
       #TT_DoLogout could not be performed because client
       instance is already logged in.

CMDERR_ALREADY_LOGGEDIN

Already logged in.

       #TT_DoLogin cannot be performed twice.

CMDERR_NOT_IN_CHANNEL

Cannot leave channel because not in channel.

       #TT_DoLeaveChannel failed because user is not in a channel.

CMDERR_ALREADY_IN_CHANNEL

Cannot join same channel twice.

       #TT_DoJoinChannel or #TT_DoJoinChannelByID failed because
       client instance is already in the specified channel.

CMDERR_CHANNEL_ALREADY_EXISTS

Channel already exists.

       #TT_DoMakeChannel failed because channel already exists.

CMDERR_CHANNEL_NOT_FOUND

Channel does not exist.

       Command failed because channel does not exists.
       @see TT_DoRemoveChannel
       @see TT_DoUpdateChannel
       @see TT_DoMakeChannel Due to invalid channel name
       @see TT_DoSendFile
       @see TT_DoRecvFile
       @see TT_DoDeleteFile
       @see TT_DoJoinChannel
       @see TT_DoJoinChannelByID
       @see TT_DoLeaveChannel
       @see TT_DoChannelOp
       @see TT_DoKickUser
       @see TT_DoBanUser
       @see TT_DoMoveUser
       @see TT_DoTextMessage

CMDERR_USER_NOT_FOUND

User not found.

       Command failed because user does not exists.
       @see TT_DoChannelOp
       @see TT_DoKickUser
       @see TT_DoBanUser
       @see TT_DoMoveUser
       @see TT_DoTextMessage
       @see TT_DoSubscribe
       @see TT_DoUnsubscribe

CMDERR_BAN_NOT_FOUND

Banned IP-address does not exist.

       #TT_DoUnBanUser failed because there is no banned
       IP-address which matches what was specified.

CMDERR_FILETRANSFER_NOT_FOUND

File transfer doesn't exists.

       TT_DoSendFile() or TT_DoRecvFile() failed because the server
       cannot process the file transfer.

CMDERR_OPENFILE_FAILED

Server failed to open file.

       TT_DoSendFile() or TT_DoRecvFile() failed because the server
       cannot open the specified file (possible file lock).

CMDERR_ACCOUNT_NOT_FOUND

Cannot find user account.

       #TT_DoDeleteUserAccount failed because the specified user
       account does not exists.

CMDERR_FILE_NOT_FOUND

File does not exist.

       #TT_DoSendFile, #TT_DoRecvFile or #TT_DoDeleteFile failed
       because the server cannot find the specified file.

CMDERR_FILE_ALREADY_EXISTS

File already exist.

       #TT_DoSendFile failed because the file already exists in
       the channel.

CMDERR_FILESHARING_DISABLED

Server does not allow file transfers.

       #TT_DoSendFile or #TT_DoRecvFile failed because the server
       does not allow file transfers.

CMDERR_CHANNEL_HAS_USERS

Cannot process command since channel is not empty.

       @see TT_DoUpdateChannel #AudioCodec cannot be changed while
       there are users in a channel.

CMDERR_LOGINSERVICE_UNAVAILABLE

The login service is currently unavailable.

       Added in TeamTalk v5.3 to support web-logins.

CMDERR_CHANNEL_CANNOT_BE_HIDDEN

Cannot apply CHANNEL_HIDDEN to Channel's type.

       A hidden channel cannot contain subchannels or have it
       #CHANNEL_HIDDEN property toggled.

INTERR_SNDINPUT_FAILURE

A sound input device failed.

       This can e.g. happen when joining a channel and the sound
       input device has been unplugged.

       Call #TT_CloseSoundInputDevice and TT_InitSoundInputDevice
       with a valid #SoundDevice to releave the problem.

INTERR_SNDOUTPUT_FAILURE

A sound output device failed.

       This can e.g. happen when joining a channel and the sound
       output device has been unplugged. Note that it can be posted
       multiple times if there's several users in the channel.

       Call #TT_CloseSoundOutputDevice and TT_InitSoundOutputDevice
       with a valid #SoundDevice to releave the problem.

INTERR_AUDIOCODEC_INIT_FAILED

Audio codec used by channel failed to initialize. Ensure the settings specified in AudioCodec are valid.

See also
  TT_DoJoinChannel()

INTERR_SPEEXDSP_INIT_FAILED | Same as INTERR_AUDIOPREPROCESSOR_INIT_FAILED.

INTERR_AUDIOPREPROCESSOR_INIT_FAILED

AudioPreprocessor failed to initialize.

       This error occurs when joining a channel and the
       #AudioPreprocessor is initialized.

       The settings specified by TT_SetSoundInputPreprocessEx()
       are invalid or unsupported. @see TT_DoJoinChannel()

INTERR_TTMESSAGE_QUEUE_OVERFLOW

TTMessage event queue overflowed.

       The message queue for events has overflowed because
       TT_GetMessage() has not drained the queue in time. The
       #TTMessage message queue will suspend event handling once
       the queue overflows and resumes event handling again when
       the message queue has been drained.

INTERR_SNDEFFECT_FAILURE

SoundDeviceEffects failed to initialize.

       This error occurs when joining a channel and an effect in
       #SoundDeviceEffects failed to initialize.

       The effects are applied using TT_SetSoundDeviceEffects()

Definition at line 2843 of file TeamTalk.h.

## Function Documentation

## ◆ TT_GetErrorMessage()

TEAMTALKDLL_API void TT_GetErrorMessage | ( | IN INT32 | nError,
|  | OUT TTCHAR | szErrorMsg[TT_STRLEN] )

Get textual discription of an error message.

Get a description of an error code posted by either CLIENTEVENT_CMD_ERROR or CLIENTEVENT_INTERNAL_ERROR.

Parameters

  nError | The number of the error.
  szErrorMsg | A text description of the error.

See also
  CLIENTEVENT_CMD_ERROR
  CLIENTEVENT_INTERNAL_ERROR