Teamspeak3 connection init.

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,028
896
216
So, I've started not too long ago to try and understand how the client would initiate a connection with a server. But I'm still a bit lost. If I interpreted correctly what i studied then there seems to be two ways of initiating a connection. The old way with some kind of heavily encrypted blob from the start; and the new way : with a little "SYN" (I know it's udp :p ) packet containing some unknown version informations.
So I'd like to know if anyone has done some research on the topic and if there's some kind of doc available somewhere ? :)
 

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,028
896
216
Unfortunately I already knew about that. But thanks anyway :)
 

Supervisor

Administrator
Apr 27, 2015
1,863
2,546
335
Problem there was, we kinda got it to work, but only kinda..
We'd need mmBBQ 3.0.1. The problem is, we did not find that version. Versions higher than 3.0.1 will produce an error sometimes and mess stuff up
 

Asphyxia

Owner
Administrator
Apr 25, 2015
1,844
2
2,197
327
I am going to upload ( https://r4p3.github.io/zips/yumBBQ3.0.3.zip ) yumBBQ soon, yumBBQ runs on version 3.0.3 of mmBBQ --- so what the fuck is yumBBQ? That is what I chose to name mmBBQ packaged with information about the TeamSpeak 3 protocol. It also has the config setup for beginning your adventure into the TeamSpeak 3 protocol. Personally I believe this whole thread should be within the TeamSpeak 3 protocol thread, but I will leave it here for now. ;)

The process is going to work like this, from my understanding:
Handshake --- send to the server a client version (if you are under a certain number the server will reject your handshake), send your identity information .. establish a public/private key with the TS3 server on your first connection.. then store the private key for future use. TeamSpeak 3 and Mumble actually work pretty similarly, any software like this is going to have a lot of similarities so if you are interested, check out the Mumble open-source project first... just an idea.

This is actually a Mumble server written in what I believe to be very clean/understandable code: https://github.com/mumble-voip/grumble
If you want to just see how a connection works in general with these "secure" VoIP servers, this shows it in Go: https://github.com/mumble-voip/grumble/blob/master/cmd/grumble/client.go
 
Last edited:
Top