The following chart presents a high-level overview of the TeamSpeak 3 architecture.
User Interface
The part of the application you are developing. The client is the user front-end, which offers the interface to connect to a TeamSpeak 3 server and communicate with other users.
The TeamSpeak 3 client developed by TeamSpeak Systems utilizes Qt as a cross-platform GUI library to allow a rich client interface for Windows, Linux and Mac OS X. In addition, a small console client scriptable with Lua assists in development and testing tasks.
Client Lib / SDK
The Client Lib is responsible for all communication between Client UI and Server. The Client UI will exclusively call Client Lib functions and never interact with the Server directly. Vice versa, the Client Lib handles traffic sent by the server and forwards events to the Client UI for displaying to the enduser.
Reponsible for sound input and ouput, the Client Lib uses industry-standard libraries like FMOD, Speex (all platforms), DirectSound (Windows), CoreAudio (Macintosh) and Alsa (Linux). Speech preprocessing, encoding and decoding takes place in this package.
Splitting the client-side functionality and interface allows to exchange the Client UI with a customized replacement. This flexible modular architecture offers the possibility to add third-party interfaces to the TeamSpeak 3 network.
Server
The TeamSpeak 3 server is mainly responsible for routing the network traffic from and to the connected clients. The server SDK allows to develop extensions to add customized functionality.