BearWare.dk

TeamTalk Server Setup

This section explains how to set up a TeamTalk server. This is a quite complicated procedure so users who are not so skilled with network setup are advised to use the public TeamTalk servers which are available in the Connect to Server dialog (press F2). To be able to set up a TeamTalk server you first you need to ensure that the TeamTalk server was installed when you ran the TeamTalk installation. If it is installed there will be a folder called "TeamTalk NT Service" in the "TeamTalk 4" program group of Windows' start-menu.

Here's an overview of this section:

Configuring and Installing the TeamTalk Server as an NT service

To install the TeamTalk server click "Install TeamTalk NT Service" in the TeamTalk 4 program group. On Windows Vista this will bring up User Access Control (UAC) since the TeamTalk server requires Administrator access. The TeamTalk server will now run it's configuration wizard (its -wizard option). If you want to change the server's default settings or set up user accounts you need to run the configuration wizard and answer 'y' to the first question.

Here is an example of how to set up a server which allows file sharing, guest logins (users without user accounts) and has one user account for an administrator with the username 'admin' and password 'admin':

Server Wizard

When the configuration has completed you can try to connect to the server by starting TeamTalk can put in 127.0.0.1 as the server's IP-address.

Installing multiple NT Services

To install multiple TeamTalk 4 NT Services the sc.exe command can be used. Here is an example:

 
sc.exe create "TeamTalk Server 2" binPath= "C:\MyServer\tt4svc.exe -wd c:\MyServer" start= auto

The service in the above example will be called "TeamTalk Server 2" in the NT service list. Notice the spaces after binPath and start. For some strange reason these are required. To start the above service run:

 
sc.exe start "TeamTalk Server 2"

To stop it type:

 
sc.exe stop "TeamTalk Server 2"

To uninstall it type:

 
sc.exe delete "TeamTalk Server 2"

TeamTalk Server on Linux and Mac OS X

The Linux and Mac OS X distributions of TeamTalk also include a TeamTalk server which can run both in daemon mode and as a regular console application. On Linux the TeamTalk server binary is called teamtalkd and is located in the server subfolder after untar'ing the archive. On Mac OS X the server binary is also called teamtalkd and is located in /Applications/TeamTalk4.app/Contents/Server subfolder after installing the TeamTalk .dmg file.

For instructions on how to configure and run the TeamTalk server (teamtalkd) simply type ./teamtalkd to execute the server and get a list of options. Type ./teamtalkd -wizard to start the TeamTalk server setup-wizard.

Manually configuring the TeamTalk server

This section is for the more hardcode TeamTalk users who want to manually configure the TeamTalk server.

The TeamTalk server reads its configuration from an XML file, typically tt4svc.xml. This file can be edited manually (using an UTF-8 aware editor) or one can choose to use the -wizard option to the server executable.

Below is an example a server's configuration file:

<?xml version="1.0" encoding="UTF-8" ?>
<teamtalk version="4.0">
<general>
<server-name>TeamTalk Server</server-name>
<motd>My login message to users</motd>
<max-users>1000</max-users>
<auto-save>true</auto-save>
<bind-ip></bind-ip>
<tcpport>10333</tcpport>
<udpport>10333</udpport>
<server-password></server-password>
<server-log-maxsize>-1</server-log-maxsize>
<login-attempts>10</login-attempts>
<file-storage>
<files-root>c:\ttserverfiles</files-root>
<max-diskusage>51200000</max-diskusage>
<channel-diskquota>5120000</channel-diskquota>
</file-storage>
<user-rights>
<channel-creation>true</channel-creation>
<channel-operators>true</channel-operators>
<channel-commands>true</channel-commands>
<modify-subscriptions>true</modify-subscriptions>
<client-broadcast>false</client-broadcast>
<view-all-users>true</view-all-users>
<guest-login>true</guest-login>
<double-login>true</double-login>
<forward-audio>true</forward-audio>
<forward-video>true</forward-video>
<forward-deskop>true</forward-desktop>
</user-rights>
</general>
<users>
<user>
<username>admin</username>
<password>mypasswd</password>
<user-type>2</user-type>
</user>
</users>
<serverbans>
<serverban address="192.168.11.44">
<bantime>2009/10/12 12:48</bantime>
<nickname>Benjamin</nickname>
<username>ben</username>
<channel-path>/Conf ABC</channel-path>
</serverban>
</serverbans>
</teamtalk>

Here is an explanation of each of the tags in the server configuration file:

  • <general> This section contains tags related to server's configuration.
  • <server-name> The server's name.
  • <motd> The message of the day (MOTD) which will be available to users once they log in. The MOTD supports the following variables:
    • %users% The number of users on the server.
    • %admins% The number of administrators on the server.
    • %uptime% The time the server has been online.
    • %voicetx% The number of KBytes containing audio which has been forwarded through the server to users.
    • %voicerx% The number of KBytes containing audio which has been received by the server.
    • %lastuser% The nickname of the last user to log on to the server.
  • <max-users> The maximum number of users on the server.
  • <auto-save> If 'true' the server will automatically save changes to it configuration file whenever the server's configuration is changed. When static channels are either created, updated or deleted this will also be automatically saved to the server's configuration.
  • <bind-ip> The server should bind to this IP-address. If the computer running the server has multiple IP-address it is advised to specify the IP-address where the server should be running.
  • <tcpport> The TCP port the server must use. Ensure it's not taken by another application.
  • <udpport> The UDP port the server must use. Ensure it's not taken by another application.
  • <server-password> A password which users must provide to log on to the server. This password must be provided even if the user has a user account on the server.
  • <server-log-maxsize> The maximum size in bytes of the server log file before it creates a new one. Specifying -1 means there is no limit. 0 means don't log events.
  • <login-attempts> The maximum number of log in attempt with incorrect password before banning a user's IP-address.
  • <file-storage> Tags related to storing files.
    • <files-root> If file-sharing is enabled uploaded files will be stored at this location.
    • <max-diskusage> The maximum number of bytes available for storing files on the server.
    • <channel-diskquota> The default number of bytes available for storing files when a user creates a channel.
  • <user-rights> Tags related to user-rights.
    • <channel-creation> Whether default users, i.e. non-administrators, should be allowed to create channels using the 'join' option.
    • <channel-operators> Whether when a new channel is created using the 'join' option the user will become channel-operator, i.e. the person can kick users from the channel and update its settings.
    • <channel-commands> Whether users should be allowed to send channel-commands, i.e. channel text-messages which are prefixed with '/'
    • <modify-subscriptions> Whether users can subscribe and unsubscribe audio, video, etc. from other users. Usually used to ignore certain users.
    • <client-broadcast> Whether users, i.e. non-administrators, can broadcast messages in similar way as administrators.
    • <view-all-users> Whether users should be allowed to see all users on the server and not only those in their channel.
    • <guest-login> Whether users can login without a user account.
    • <double-login> Whether multiple users can log in using the same user account.
    • <forward-audio> Whether users should be allowed to send their packets through the server. If disabled users must run in peer to peer mode.
    • <forward-video> Whether users should be allowed to send their packets through the server. If disabled users must run in peer to peer mode.
    • <forward-desktop> Whether users should be allowed to share desktop application.
  • <users> This section contains user accounts.
    • <user> A user account.
      • <username> The username of the user account.
      • <password> The password of the user account.
      • <user-type> The type of user. 1 = Default user, 2 = Administrator.
  • <server-bans> This section contains users who have been banned from the server.
    • <serverban address="..."> A banned user where the address attribute is the IP-address which has been banned. Note that it's the IP-address which is banned and not the user who own the account.
      • <bantime> The time of when the ban was issued.
      • <nickname> The nickname of the user at the time of the ban.
      • <username> If the user has an account on the server it is specified here.
      • <channel-path> The channel the user was in a the time of the ban.