Other events

## Other events

When a client starts or stops talking, a talk status change event is sent by the server:

`void onTalkStatusChangeEvent(` | serverConnectionHandlerID, |
| status, |
| isReceivedWhisper, |
| clientID`)`; |

`uint64 serverConnectionHandlerID`;
`int status`;
`int isReceivedWhisper`;
`anyID clientID`;

Parameters

- `serverConnectionHandlerID`

  ID of the server connection handler on which the event occured.

- `status`

  Possible return values are defined by the enum TalkStatus:

      enum TalkStatus {
          STATUS_NOT_TALKING = 0,
          STATUS_TALKING = 1,
          STATUS_TALKING_WHILE_DISABLED = 2,
      };

  `STATUS_TALKING` and `STATUS_TALKING` are triggered everytime a client starts or stops talking. `STATUS_TALKING_WHILE_DISABLED` is triggered only if the microphone is muted. A client application might use this to implement a mechanism warning the user he is talking while not sending to the server or just ignore this value.

- `isReceivedWhisper`

  1 if the talk event was caused by whispering, 0 if caused by normal talking.

- `clientID`

  ID of the client who started or stopped talking.

If a client drops his connection, a timeout event is announced by the server:

`void onClientMoveTimeoutEvent(` | serverConnectionHandlerID, |
| clientID, |
| oldChannelID, |
| newChannelID, |
| visibility, |
| timeoutMessage`)`; |

`uint64 serverConnectionHandlerID`;
`anyID clientID`;
`uint64 oldChannelID`;
`uint64 newChannelID`;
`int visibility`;
`const char* timeoutMessage`;

Parameters

- `serverConnectionHandlerID`

  ID of the server connection handler on which the event occured.

- `clientID`

  ID of the moved client.

- `oldChannelID`

  ID of the channel the leaving client was previously member of.

- `newChannelID`

  0, as client is leaving.

- `visibility`

  Always `LEAVE_VISIBILITY`.

- `timeoutMessage`

  Optional message giving the reason for the timeout. UTF-8 encoded.

When the description of a channel was edited, the following event is called:

`void onChannelDescriptionUpdateEvent(` | serverConnectionHandlerID, |
| channelID`)`; |

`uint64 serverConnectionHandlerID`;
`uint64 channelID`;

Parameters

- `serverConnectionHandlerID`

  ID of the server connection handler on which the event occured.

- `shutdownMessage`

  ID of the channel with the edited description.

The new description can be queried with `ts3client_getChannelVariableAsString(channelID, CHANNEL_DESCRIPTION)`.

The following event tells the client that the specified channel has been modified. The GUI should fetch the channel data with `ts3client_getChannelVariableAsInt` and `ts3client_getChannelVariableAsString` and update the channel display.

`void onUpdateChannelEvent(` | serverConnectionHandlerID, |
| channelID`)`; |

`uint64 serverConnectionHandlerID`;
`uint64 channelID`;

Parameters

- `serverConnectionHandlerID`

  ID of the server connection handler on which the event occured.

- `channelID`

  ID of the updated channel.

The following event is called when a channel password was modified. The GUI might remember previously entered channel passwords, so this callback announces the stored password might be invalid.

`void onChannelPasswordChangedEvent(` | serverConnectionHandlerID, |
| channelID`)`; |

`uint64 serverConnectionHandlerID`;
`uint64 channelID`;

Parameters

- `serverConnectionHandlerID`

  ID of the server connection handler on which the event occured.

- `channelID`

  ID of the channel with the changed password.

Custom encryption |  | Miscellaneous functions