Teamspeak
TeamSpeak is a proprietary voice-over-Internet Protocol (VoIP) application for audio communication between users on a chat channel, much like a telephone conference call. Users typically use headphones with a microphone. The client software connects to a TeamSpeak server of the user’s choice, from which the user may join chat channels.
The target audience for TeamSpeak is gamers, who can use the software to communicate with other players on the same team of a multiplayer video game. Communicating by voice gives a competitive advantage by enabling players to keep their hands on the controls.
Teamspeak is an alternative to Mumble and needs a license to run. This can be obtained from the the Teamspeak-License website and from the LICENSE
file which is part of the downloadable teamspeak file.
License
All relevant legal information can be found here
Teamspeak-License models
Prerequisites
To make the application accessible from the outside, open a port in the firewall:
[isabell@stardust ~]$ uberspace port add
Port 40132 will be open for TCP and UDP traffic in a few minutes.
[isabell@stardust ~]$
Run the command four times to retrieve four ports. One open port for the default_voice_port
, filetransfer_port
, query_port
and query_ssh_port
.
Installation
Download
Download the Teamspeak Server for Linux. Get the latest download-URL from the Teamspeak-Downloads website.
[isabell@stardust ~]$ mkdir ts3server
[isabell@stardust ~]$ cd ts3server
[isabell@stardust ts3server]$ wget https://files.teamspeak-services.com/releases/server/3.11.0/teamspeak3-server_linux_amd64-3.11.0.tar.bz2
--2020-02-14 21:23:12-- https://files.teamspeak-services.com/releases/server/3.11.0/teamspeak3-server_linux_amd64-3.11.0.tar.bz2
Auflösen des Hostnamen »files.teamspeak-services.com (files.teamspeak-services.com)«... 151.139.128.10
Verbindungsaufbau zu files.teamspeak-services.com (files.teamspeak-services.com)|151.139.128.10|:443... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 9245357 (8,8M) [application/x-tar]
In »»teamspeak3-server_linux_amd64-3.11.0.tar.bz2«« speichern.
100%[======================================================================================================>] 9.245.357 32,4MB/s in 0,3s
2020-02-14 21:23:12 (32,4 MB/s) - »»teamspeak3-server_linux_amd64-3.11.0.tar.bz2«« gespeichert [9245357/9245357]
[isabell@stardust ts3server]$
Extract
Unpack the downloaded archive into the current directory
[isabell@stardust ts3server]$ tar --extract --bzip2 --strip-components=1 --verbose --file teamspeak3-server_linux_amd64-3.11.0.tar.bz2
teamspeak3-server_linux_amd64/LICENSE
[...]
teamspeak3-server_linux_amd64/CHANGELOG
[isabell@stardust ts3server]$
Configuration
Setup license agreement
Before starting the server for the first time you should either read the LICENSE
file that is part of the teamspeak server archive you just unpacked or go to the Teamspeak-License website.
If you agree to the license you need to create a file named .ts3server_license_accepted
in the teamspeak server directory. It is enough to create the file. No need to add content.
Create a default config file, admin password and admin token
To create a configuration file execute the minimal runscript with the createinifile=1
parameter
[isabell@stardust ts3server]$ ./ts3server_minimal_runscript.sh createinifile=1
2020-02-14 21:04:49.238119|INFO |ServerLibPriv | |TeamSpeak 3 Server 3.11.0 (2020-01-13 08:12:37)
[...]
------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
Server Query Admin Account created
loginname= "serveradmin", password= "superSecretPassword"
------------------------------------------------------------------
[...]
------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
ServerAdmin privilege key created, please use it to gain
serveradmin rights for your virtualserver. please
also check the doc/privilegekey_guide.txt for details.
token=MKopgBVlbZm6r+8RLuKZGbiHVuNKPfH5gKcPMk+Y
------------------------------------------------------------------
2020-02-14 21:04:50.025184|INFO |Query | |listening for query on 0.0.0.0:10011, [::]:10011
2020-02-14 21:04:50.025653|INFO |Query | |listening for query ssh on 0.0.0.0:10022, [::]:10022
2020-02-14 21:04:50.025748|INFO |Query | |creating QUERY_SSH_RSA_HOST_KEY file: ssh_host_rsa_key
2020-02-14 21:04:59.245200|INFO |CIDRManager | |updated query_ip_whitelist ips: 127.0.0.1/32, ::1/128,
You can now press CTRL+C to kill the server and to continue with the configuration.
Note
Make a copy of Server Query Admin Account loginname
, password
and ServerAdmin token
. You will need this when you connect to your teamspeak server for the first time to gain administrator rights.
Edit configuration file
Now edit the ts3server.ini
and change the following entries. Use the four ports you were assigned by uberspace port add
above.
machine_id=0
default_voice_port=40132
filetransfer_port=40133
query_port=40134
license_accepted=1
query_ssh_port=40135
Start test server
You can test your configuration by executing the minimal runscript. Use the parameter inifile
with the argument ´´ts3server.ini`` to start the server with your configuration.
[isabell@stardust ts3server]$ ./ts3server_minimal_runscript.sh inifile=ts3server.ini
2020-02-14 21:43:43.659472|INFO |ServerLibPriv | |TeamSpeak 3 Server 3.11.0 (2020-01-13 08:12:37)
[...]
2020-02-14 22:17:31.884829|INFO | | |Puzzle precompute time: 703
2020-02-14 22:17:31.885977|INFO |FileManager | |listening on 0.0.0.0:47304, [::]:47304
2020-02-14 22:17:31.895316|INFO |VirtualServerBase|1 |listening on
2020-02-14 22:17:31.896826|INFO |Query | |listening for query on 0.0.0.0:47305, [::]:47305
2020-02-14 22:17:31.897214|INFO |Query | |listening for query ssh on 0.0.0.0:47306, [::]:47306
2020-02-14 22:17:31.897479|INFO |CIDRManager | |updated query_ip_whitelist ips: 127.0.0.1/32, ::1/128,
Note
If this does not work right now, it might be, that the ports are not yet open. Try again in a couple minutes.
If you want, you can also try to connect to the teamspeak server with your local teamspeak client software. Please use the IP address of your server the the default_voice_port (<IPofYourServer>:<default_voice_port>)
Example:
Configure the supervisord service
Since teamspeak does come with a start-stop script, all we need to do is to create the supervisor
ini-file.
Create supervisord ini (e.g. /home/$USER/etc/services.d/ts3server-daemon.ini
):
[program:ts3server]
directory=%(ENV_HOME)s/ts3server/
command=%(ENV_HOME)s/ts3server/ts3server inifile=ts3server.ini
startsecs=10
autostart=yes
autorestart=yes
After creating the configuration, tell supervisord to refresh its configuration and start the service:
[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE RUNNING pid 26020, uptime 0:03:14
[isabell@stardust ~]$
If it’s not in state RUNNING after 10 seconds, check your configuration and the log file in $HOME/logs/supervisord.log
.
You can read more about the supervisord in the supervisord manual.
Additional Notes
Gaining Admin Rights
When you connect to your teamspeak server for the first time, you will need the token that got generated on first start of the server. If you have not taken a copy of the token and/or the admin/password combination, then you can get them from the log files located in the logs
folder of your teamspeak installation.
Start and Stopping the Server
To stop and start the teamspeak to perform maintenance tasks, you can use the supervisorctl command which is documented in the supervisord.
Backup The Server
You should make a regular backup of your server. To do this, you need to backup at least the following files and folder:
files/
query_ip_blacklist.txt
query_ip_whitelist.txt
ssh_host_rsa_key
ts3server.ini
ts3server.sqlitedb
Updating The Server
To update the server download the latest linux teamspeak server release from the teamspeak website and unpack the archive into a temporary directory. Then stop the server and replace at least the following files:
libts3db_sqlite3.so
ts3server
—
Tested with Teamspeak 3.11.0 64-bit, Uberspace 7.1.1
Written by: cblte <https://cbrueggenolte.de>