Compiling

tSIP softphone is built using Turbo C++ Explorer. This IDE is the free (even for commercial usage but with slightly limited functionality) version of C++ Builder 2006 or BDS 2006 (Borland Developer Studio). It has it strengths and weaknesses but the main problem may be it is no longer available - it was shut down and replaced with paid versions.

Why C++ Builder?

While I haven't tested it personally building tSIP with newer version of C++ Builder (in particular version 2009 and up) may cause some troubles due to VCL transition to Unicode.

Turbo C++ Explorer works best with Windows XP. For Windows 7 start using included with sources run_bds.bat (this is deleting EditorLineEnds.ttr file each time, otherwise IDE would not start correctly) and run as administrator.

TC++ has a number of bugs related to unnecessary rebuilding of multiple projects in group and opposite - not including changes in top level project if library project changed. To mitigate these problems multiple project group files are provided - for initial build use tSIP.bdsgroup (with both Debug and Release targets), if only top level (GUI) has to be changed use tSIP_exe.bdsgroup.

Other, very annoying kind of bugs is incorrect code generation - sometimes just randomly, without obvious cause (IDE restart or whole project rebuild helps), sometimes related to inline functions (that forced me to change some re function to non-inline) when instead of running code from inline function at some point execution just jumps to some random function.

Random IDE crashes are also not uncommon.
TC++ crash
I think many of these problems are fixed in newer version, although C++ Builder is little too expensive for private/non-commercial use. At the moment (2016.11) C++ Builder 10.1 Starter is given out for free (similar to TC++ Explorer few years ago), but this version has quite limited debugging capabilities (no "Local Variables", no "Debug/Inspect") which is very annoying when working with anything but small project. On top of that it cannot import TC++ project files making transition time consuming.

Video support

Since version 0.2.12 (2023.03) I'm distributing two sets of binaries: with and without video support. Build type is controlled by USE_VIDEO macro inside baresip_base_config.h file and after changing it rebuild of baresip and tSIP projects is required. While video support is rarely in use, tSIP version with video support enabled can also use avformat module as audio source (playing content of mp3, aac and multiple other formats).

Back to tSIP.