TeamTalk 5 Documentation

repository·master·Indexed 18 days ago

https://github.com/bearware/teamtalk5

A development repository providing SDKs, libraries, and example projects for building TeamTalk clients and servers across multiple platforms and languages. Includes build instructions for Qt-based clients on Ubuntu and Windows, Android client setup, and language-specific bindings for Rust, Java (JNI), and .NET. Provides details on the TeamTalk C-API, including TeamTalk.h for clients and TeamTalkSrv.h for Professional Edition server applications.

Tokens
42.6K
Snippets
88
Records
205
Agent score
62%

What's inside TeamTalk 5

  1. Overview of the TeamTalk C++ client example

    master

    The ttserverlog client example is a C++ implementation designed to demonstrate how to intercept and record voice conversations.

    Key Features:

    • Prompts for login credentials.
    • Records all intercepted conversations to .wav files.

    Requirements for Recording: To record conversations across all channels, the client must use an administrator account. This allows the client to utilize the intercept subscription mechanism to capture voice data directly from the server.

  2. Access the TeamTalk C-API header files

    master

    The TeamTalk C-API is split into two primary header files depending on your application type:

    • Client Applications: Use TeamTalk.h to access the API for creating TeamTalk client applications.
    • Server Applications: Use TeamTalkSrv.h to access the API for creating TeamTalk server applications. Note that the server API is exclusive to the TeamTalk 5 Professional Edition.
  3. .NET managed DLL for TeamTalk DLL overview

    master

    This project provides a .NET managed DLL containing wrapper classes for the TeamTalk C-API (TeamTalk DLL). It allows .NET developers to interface with the TeamTalk core functionality through managed code.

    To use this, you must build the appropriate DLL based on whether you are using the standard or Pro version of the TeamTalk library.

  4. Understand the TeamTalk Main Window layout

    master

    The TeamTalk application interface is organized into several key areas:

    • Menu Bar: Located at the top, providing access to Client, Me, Users, Channels, Server, and Help menus.
    • Toolbar: Provides quick access to common tasks like connecting, push-to-talk, and video transmission.
    • Channels View: Located on the left side, displaying channels (folder icons) and users. The root channel is represented by a computer icon.
    • Volume Controls: Located below the Channels View, containing master volume, microphone gain, and voice activation sliders.
    • Tab Control: Located on the right side, containing the Chat, Video, Desktops, and Files tabs.
    • Splitter: A draggable element between the Channels View and the Tab Control used to resize the panels.
  5. Set up Auto-Operator status for users

    master

    You can configure specific user accounts to automatically receive Channel Operator status in certain channels via the User Accounts Dialog:

    • Selected Channels: The user automatically becomes an operator in a specific list of channels.
    • Available Channels: The user automatically becomes an operator in any channel from a predefined list. Note: This mode only supports static channels.
  6. Use the Advanced-menu for shortcuts and relaying

    master

    The Advanced-menu provides keyboard shortcuts for common tasks and advanced audio routing.

    Volume Shortcuts

    • Increase/Lower Voice Volume
    • Increase/Lower Media File Volume

    User Management

    • Store User(s) for Move: Copies selected users to a temporary buffer (like a clipboard).
    • Move User(s): Moves the users stored in the buffer to the currently selected channel.

    Audio Relaying

    Relaying allows you to replace your own microphone input with another user's stream. Note: Voice activation and push-to-talk cannot be active when relaying is enabled.

    • Relay Voice Stream: Replaces your microphone with a user's voice stream. (Requires 'Intercept Voice' in the Subscriptions menu if the user is in a different channel).
    • Relay Media File Stream: Replaces your microphone with a user's media file stream. (Requires 'Intercept Media File' in the Subscriptions menu if the user is in a different channel).
  7. Manage channels via the Channels-menu

    master

    The Channels-menu options appear when a channel is selected in the channels view. Permissions for these actions depend on your user rights (e.g., User can create temporary channels, User can create/modify all channels, or Administrator status).

    Channel Membership and Lifecycle

    • Join Channel / Leave Channel: Join or exit the selected channel.
    • Create Channel: Create a new channel (requires specific user rights).
    • Update Channel: Modify properties of an existing channel (requires operator or specific user rights). Note: Audio codecs cannot be changed while users are present.
    • Delete Channel: Removes the channel and all sub-channels. Users in the channel will be kicked out (requires specific user rights).

    Information and Media

    • Channel Information:
      • View Channel Info: View details about the channel.
      • Speak Channel Info: Use Text-To-Speech to read channel info.
      • Speak Channel State: Use Text-To-Speech to announce who is currently transmitting.
    • Stream Media File to Channel: Opens a dialog to stream an audio/video file to the channel (requires User can transmit audio/video files rights).

    User and File Management

    • Banned Users From Channel: View the list of banned users.
    • Upload File: Upload a file to the channel (requires User can upload files rights and an available disk quota).
    • Download File: Download a file selected in the Files-tab (requires User can download files rights).
    • Delete File: Delete a selected file (only the owner, channel-operator, or Administrator can do this).
  8. Understand Channel Operators (Op)

    master

    A Channel Operator (or Op) is typically the channel owner or a user granted permissions to manage a specific channel.

    Capabilities

    • Kick users from the channel.
    • Modify channel properties.
    • Control transmission rights (who can speak) using the Transmit Control menu.

    Management

    • Operator Password: When creating a channel, you can set a password so others can become operators.
    • Automatic Assignment: Users can be configured to automatically become channel operators via the User Accounts Dialog.
  9. Control channel transmission permissions

    master

    Channel operators use the Transmit Control-menu to manage what users are allowed to send to a channel. This is useful for managing classroom-style environments.

    Individual User Controls

    Toggle these to allow or deny a specific user the ability to transmit:

    • Allow Channel Text Messages
    • Allow Voice Transmission
    • Allow Video Transmission
    • Allow Desktop Transmission
    • Allow Media File Transmission

    Global Channel Controls

    Toggle these to set the permission level for all users in the channel:

    • Allow All Channel Text Messages
    • Allow All Voice Transmission
    • Allow All Video Transmission
    • Allow All Desktop Transmission
    • Allow All Media File Transmission
  10. Use Classroom channel type to control transmission

    master

    A Classroom channel allows an operator to control which users are permitted to transmit audio, video, or media files.

    Operator Controls

    • User Checkboxes: In the Channels view, operators can check/uncheck boxes next to users to grant permission for specific types of transmission (e.g., allowing a user to share a desktop but not video).
    • Global Shortcuts: Checkboxes next to the channel name act as shortcuts to allow/disallow everyone in the channel to transmit voice or media files.
    • Transmit Control menu: An alternative way to toggle transmission permissions.

    Non-Operator View

    • Non-operators cannot modify transmission settings. They must request permission from the channel operator.
  11. Configure TeamTalk dependency toolchains with TOOLCHAIN_ options

    master

    TeamTalk uses CMake's ExternalProjects to build dependencies. You can control whether TeamTalk builds its own dependencies or uses libraries already installed on your host system using TOOLCHAIN_ prefixed options.

    Note: Setting a TOOLCHAIN_ option to OFF is generally only supported on Linux distributions and is recommended for them to avoid version conflicts (e.g., OpenSSL).

    # Example: Use host-installed OPUS instead of building it
    cmake -DTOOLCHAIN_OPUS=OFF -S TeamTalk5 -B builddir
  12. Manage data subscriptions for users

    master

    The Subscriptions-menu allows you to control which data or events you receive from a specific user. This is useful for ignoring specific types of communication without muting the user entirely.

    Standard Subscriptions

    • User Messages: Accept text messages from this user.
    • Channel Messages: Accept channel text messages from this user.
    • Broadcast Messages: Accept broadcast text messages (typically from administrators).
    • Voice: Accept microphone audio. (Note: Disabling this stops the user from sending audio data to you, unlike Mute).
    • Video: Accept video streams.
    • Desktop: Accept shared desktop windows.
    • Desktop Access: If you are sharing your desktop, this allows the selected user to take control of your mouse and keyboard.
    • Media File: Accept audio and video streams of media files.

    Administrative Intercept Subscriptions

    Only available to administrators: allows receiving data even if you are not in the same channel as the user.

    • Intercept User Messages: Receive all the user's text messages (private and public).
    • Intercept Channel Messages: Receive all the user's channel text messages.
    • Intercept Voice: Receive audio from this user.
    • Intercept Video: Receive video from this user.
    • Intercept Desktop: Receive shared desktop windows from this user.

    To set default subscription behaviors, use the Connection-tab in the Preferences dialog.