Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: opensource
Fetching contributors…

Cannot retrieve contributors at this time

111 lines (61 sloc) 4.165 kb


A VoIP client developed in Qt, using libfreeswitch for the sip part.

It is designed to work with a server which speaks a private JSON protocol. However, the server code is too specific to our business logic to be opensourced. So, we only opensource the client part as a thank to the FreeSWITCH community. The code is straight forward and it's easy to take out of the socket( the JSON protocol) code or you can implement your own server - you can figure out the protocol by following the code and working flows described in doc/ .

The idea is to initiate a TCP socket connection on authenticate, the remote server verify the login/pass and return back a user object (in JSON) which contains a SIP server and username/password pair, then the client can register to SIP. The advantage of using a TCP socket is that the server knows immediately if a client gone(crash/network down).



TS depends on FreeSWITCH to be built, freeswitch must be targeted to /Applications/ (e.g. ./configure --prefix=/Applications/

You should make install and change the .pro file (or symlink) so the build system can find and link to it.

Compile FS

You don't need FS source to compile TS, but in case you want to compile, here is the instruction:

git clone git://
cd freeswitch
#edit modules.conf, uncomment mod_port_audio
./configure --prefix=/Applications/
make install

Note: you can also install in /usr/local/freeswitch by using ./configure without --prefix, but you need to change the to let it can find the headers in the following step

Compile TS

LGPL version of QT 4.7:

Open in Qt creator, using shadow build.


It need FreeSWITCH source:

To build FS on windows, we need Visual Studio 2008 express edition. VS2010 is also supported, but the last time I tried to build failed. (Aug. 2010)

clone code from git: git://


select build solution (F7)


Build TS

Need qt 4.7. VC++ Version

freeswitch and trainer_studio need in the same dir.

Open in Qt Creator, using shadow build.


There's different ways to release

  1. User install QT framework, and install TS
  2. User Just install TS, with framework build in
  3. Make a installer auto install QT framework if missing, or just install TS

Ideally we can get 3. work, 1. is not user friendly. I use 2. currently.

The last TS release increases to 84M, so we definitely need to consider option 1.

We need to target to i386:

  1. Support Mac 10.5
  2. Support XP

There's also another reason, Flash plugin doesn't work in 64bit.(The latest Alpha plugin does work on 64bit, but it was not exist when I first write TS, pain).



QT already compiled in Framework. It seems we only need libfreeswitch.dylib. However, the install_name_tools way causes core dump. So, for simplicity's sake, I just compiled FS target to /Applications/

I can compile FS on 10.6.4 to i386, however, it links to 10.6 SDK. I tried to link to 10.5 SDK using -isysroot 10.5SDK but failed. So I just compiled FS on my old 10.5.2 Mac. It's in the Alpha RC2 release.

Before make a release, copy /Applications/TrainerStudio.cpp/FreeSWITCH into your shadow build dir, e.g. ../trainer_studio-build-desktop

Then run in the source tree.


There's a inno setup .iss available. Compiled DLLs need in certain dir.


Win: dll checker


otool -L xxx.dylib
otool -l xxxx.dylib
nm -gfj xxxxx.dylib
file TrainerStudio


We borrowed (or, stole) some ideas and codes from

Jump to Line
Something went wrong with that request. Please try again.