Developer Blog
TeamSpeak 3 Architecture
by Bastian Schaar on Jun 23, 2007
Hi folks,

Last month we didn't have much devblog-worthy news for you because we were busy working on packet structure rewrites deep down in the core of TeamSpeak 3. For our new, upcoming website we have designed a flow-chart with a high level overview of the TeamSpeak 3 architecture. So, in this devblog we will give you a sneak preview and explain the flow-chart in some detail.

The four boxes at the top are the things a regular user is most likely to encounter.
  • The "Graphical User Interface" (Qt) is the main TeamSpeak 3 client application, similar to what you use currently in TeamSpeak 2. Note, however, that TeamSpeak 3 will now natively support Macintosh, Linux, and Windows platforms (hooray!).
  • The "Console User Interface" is currently used for stress testing a TeamSpeak 3 server with bot-like clients, but depending on the lua script (scripting language) it is now capable of doing just about anything you can imagine!
  • "Telnet" and "Scripts / Programs, 3rd Party, Web Interface" all use our new powerful query interface similar to TeamSpeak 2's TCP Query but much more powerful. In addition, the web interface is now an external PHP script which can be used to administer a TeamSpeak server via a web browser.
  • "ClientLib/SDK" is a library (dll/so) which makes it possible to interact with the server by using its simple programming interface. So, it provides the possibility to for example connect to a server, mute the microphone, or switch channels. The "Capture/Playback/Input" components are going to provide a plugin system which allows you to for example write your own playback plugin which streams the output to a shoutcast server in addition to playing it back. Although the UDP protocol is a superior choice for real time voice communication, TeamSpeak 3 will also provide the option of using TCP instead of UDP. Support for TCP connectivity is particularly useful for circumstances where people need to use proxies, or where UDP is completely blocked due to corporate firewalls, etc.
  • "Server" is fairly self-explanatory, we will support a database plugin system so for example you can write your own plugin for a completely proprietary database if you wanted to. The server components will also be available as a library version to include into your own application.
That's about all the tasty new information we'd like to reveal to you at this time!

As a side note, we are currently looking for another full time, talented programmer to join our team. For more information on this position please visit our Jobs & Careers page.

As usual, please stay tuned to our site for more information and keep your eyes peeled for our NEW site coming soon!
« Read all Developer Blogs