Getting the Source Code Distribution
TracNav
Getting Started- Moved to: https://docs.pjsip.org/en/latest/index.html#get-started
Preparation
Build for Desktop
Build for Mobile
- iOS: Apple iPhone, iPad, and iPod Touch
- Android
- BlackBerry 10 (BB10)
- Windows Mobile
- Windows Phone 8.x and UWP
Symbian...
- Build for Other
Next: Using the libraries
See Also
All libraries (PJLIB, PJLIB-UTIL, PJSIP, PJMEDIA, and PJMEDIA-CODEC) are currently distributed under a single source tree, collectively named as PJPROJECT or just PJ libraries. These libraries can be obtained by either downloading the release tarball or getting them from the source repository, the "Subversion trunk".
Getting the Release tarball
Getting the released tarball, in ZIP or TGZ format, which is a certain snapshot in time.
The latest released tarball can always be downloaded from the https://www.pjsip.org/download.htm.
You view all releases on https://github.com/pjsip/pjproject/releases
Getting from GitHub
You can get the latest, most up-to-date source code from https://github.com/pjsip/pjproject.
Be mindful that the most up-to-date code may not have gone through as rigorous tests as official releases.
Source Directories Layout
Top-Level Directory Layout
The top-level directories (denoted as $TOP here) in the source distribution contains the following sub-directories:
$TOP/build
Contains makefiles that are common for all projects.
$TOP/build.symbian
Contains MMP files for building Symbian target.
$TOP/pjlib
Contains header and source files of PJLIB. PJLIB is the base portability and framework library which is used by all other libraries
$TOP/pjlib-util
Contains PJLIB-UTIL header and source files. PJLIB-UTIL is an auxiliary library that contains utility functions such as scanner, XML, STUN, MD5 algorithm, getopt() implementation, etc.
$TOP/pjnath
Contains PJNATH header and source files. PJNATH contains STUN, TURN, and ICE implementation.
$TOP/pjmedia
Contains PJMEDIA and PJMEDIA-CODEC header and source files. The sources of various codec wrappers (such as GSM, Speex, and iLBC) can be found under this directory. The codec libraries themselves normally will be put under $TOP/third_party directory
$TOP/pjsip
Contains PJSIP header and source files. This library is the SIP protocol stack implementation.
$TOP/pjsip-apps
Contains source code for PJSUA and various sample applications, including the Python wrapper.
$TOP/tests
Contains various unit tests for the libraries.
$TOP/third_party
Contains source code for various third party libraries, such as Speex, iLBC, and GSM codecs.
Individual Directory Inside Each Project
Each library directory further contains these sub-directories:
bin
Contains binaries produced by the build process.
build
Contains build scripts/makefiles, project files, project workspace, etc. to build the project. In particular, it contains one Makefile file to build the project with GNU build systems, and a *.dsw workspace file to build the library with Microsoft Visual Studio 6 or later.
build/output
The build/output directory contains the object files and other files generated by the build process. To support building multiple targets with a single source tree, each build target will occupy a different subdirectory under this directory.
docs
Contains Doxygen configuration file (doxygen.cfg) to generate online documentation from the source files. The output documentation will be put in this directory as well (for example, docs/html directory for the HTML files).
(to generate Doxygen documentation from the source tree, just run "doxygen docs/doxygen.cfg" in the individual project directory. The generated files will reside in docs directory).
include
Contains the header files for the project.
lib
Contains libraries produced by the build process.
src
Contains the source files of the project.