Skip to content

Getting Started Download

bennylp edited this page Mar 5, 2020 · 1 revision

Disk Space Requirements

The building process needs:

  • about 50-60 MB of disk space to store the uncompressed source files, and
  • another 30-50 MB of additional space for building each target
    • each Windows build configuration is a separate target
  • If you work directly using the version from git, the disk space needed may increase due to git files.

Getting the Source Code Distribution

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 GitHub repository.

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://pjsip.org/download.htm.

Getting from GitHub repository

The https://github.com/pjsip/pjproject repository will always contain the latest/most up-to-date version of the sources. Normally the git repository is always kept in a "good" state. However, there's always a chance that things break and the tree doesn't build correctly (particularly for the "not-so-popular" targets), so please consult the Issues list should there be any problems.

Using git also has benefits of keeping the local copy of the source up to date with the main PJ source tree and to easily track the changes made to the local copy, if any.

Source Directories Layout

Top-Level Directory Layout

  • build/

    Contains makefiles that are common for all projects.

  • build.symbian/

    Contains MMP files for building Symbian target.

  • pjlib/

    Contains header and source files of PJLIB. PJLIB is the base portability and framework library which is used by all other libraries

  • 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.

  • pjnath/

    Contains PJNATH header and source files. PJNATH contains STUN, TURN, and ICE implementation.

  • 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 third_party/ directory

  • pjsip/

    Contains PJSIP header and source files. This library is the SIP protocol stack implementation.

  • pjsip-apps/

    Contains source code for PJSUA and various sample applications, including the Python wrapper.

  • tests/

    Contains various unit tests for the libraries.

  • 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 various *.vcproj Visual Studio files.

  • 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).

    Note: 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.

Contents:

HOME
Datasheet
FAQ
Getting Started:

Features Guide:

  • Video
  • Media:
  • NAT Traversal
  • SIP

Troubleshooting

  • NAT problems
  • Audio problems License
Clone this wiki locally