Third Party SOFTWARE

The SOFTWARE may provide links to third party libraries or code (collectively “Third Party Software”) to implement various functions, and access to Third Party Software may be included along with the SOFTWARE delivery as a convenience. Third Party Software does not comprise part of the SOFTWARE.

The use of Third Party Software may or may not be made optional (depending on the nature of the software).

Contributed and Public Domain Third Party Software

ACE Timer Heap

Software

Timer heap management of ​Adaptive Communication Framework (ACE) Library

Author

Douglas C. Schmidt and his research group at Washington University, University of California, Irvine, and Vanderbilt University, Copyright (c) 1993-2006, all rights reserved

Location

Description

The timer heap in PJLIB was based on ACE’s Timer_Heap

License

Permissions have been obtained from the copyright holder/original author (Douglas C. Schmidt) to use and redistribute this code according to the SOFTWARE licenses. You may, at your option, opt to use ACE license for this particular software.

Usage

This code is integral part of the library and can not be disabled.

Alaw/Ulaw Converter

Software

Alaw/ulaw conversion algorithm

Author

Sun Microsystems, Inc

Location

https://github.com/pjsip/pjproject/blob/master/pjmedia/src/pjmedia/alaw_ulaw.c

Description

PCM Alaw and U-law conversion

License

Free and unrestricted use, see the source code for details.

Usage

This software is not used by default unless PJMEDIA_HAS_ALAW_ULAW_TABLE is disabled. When PJMEDIA_HAS_ALAW_ULAW_TABLE is enabled (the default setting), a table based alaw/ulaw conversion will be used instead.

CRC32 Algorithm

Software

CRC32 algorithm

Author

Unknown

Location

https://github.com/pjsip/pjproject/blob/master/pjlib-util/src/pjlib-util/crc32.c

Description

License

This software is put in public domain, and can be used for any purpose with no warranty:

This is an implementation of CRC32. See ISO 3309 and ITU-T V.42
for a formal specification

This file is partly taken from Crypto++ library (http://www.cryptopp.com)
and http://www.di-mgt.com.au/crypto.html#CRC.

Since the original version of the code is put in public domain,
this file is put on public domain as well.

Usage

This code is needed by the STUN implementation in PJNATH and can not be disabled.

MD5 Hashing Algorithm

Software

MD5 hashing implementation

Author

Written by Colin Plumb in 1993 based on MD5 algorithm by Ron Rivest, no copyright is claimed.

Location

https://github.com/pjsip/pjproject/blob/master/pjlib-util/src/pjlib-util/md5.c

Description

MD5 hashing for digest authentication.

License

Public domain, see the source code for details.

Usage

This code is needed by SIP digest authentication procedure, and can not be disabled.

SHA1 Encryption

Software

SHA1 Encryption

Author

Steve Reid, James H. Brown, Saul Kravitz, Ralph Giles

Location

https://github.com/pjsip/pjproject/blob/master/pjlib-util/src/pjlib-util/sha1.c

License

Public domain, see the source code for details.

Usage

This code is needed by the STUN implementation in PJNATH and can not be disabled.

G.722 Codec

Software

G.722 audio encoding and decoding algorithm

Author

Based on the implementation found in ftp://ftp.cs.cmu.edu/project/fgdata/speech-compression/CCITT-ADPCM/64kbps/adpcm64_g722/. No copyright is claimed on the original source code. The author is possibly Milton Anderson (milton@thumper.bellcore.com) from BELLCORE

Location

https://github.com/pjsip/pjproject/tree/master/pjmedia/src/pjmedia-codec/g722/

Description

The G.722 codec algorithms are included in PJMEDIA source directory

License

Public domain software

Usage

This software will only be linked if application explicitly initialize the G.722 library by calling pjmedia_codec_g722_init(). Note that if PJSUA-LIB is used, then this call is made by PJSUA-LIB, hence causing your application to be linked with the software. The software can be explicitly disabled from the link process by defining PJMEDIA_HAS_G722_CODEC to zero.

Third Party Software with Licensing Requirements

The use of Third Party Software below will require compliance of the licensing requirements of the Third Party Software. You must make sure that your software meets the licensing requirements of the third party libraries below. Some third party libraries may require attributions to be placed in the software, significant portion of the software, and/or in the accompanying documentation.

GNU Getopt

Software

Command line parsing library, part of GNU LIBC

Author

Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc

Location

Description

Command line parsing library that is used by our sample applications

License

GNU LGPL

Usage

This code will only be linked if applications explicitly call pj_getopt() or pj_getopt_long(). Normally application doesn’t need to use this, since this functionality is useful for command line/console types of applications only.

Resample

Software

High Quality Sample Rate Conversion

Author

https://ccrma.stanford.edu/~jos/resample/

Location

https://github.com/pjsip/pjproject/tree/master/third_party/resample/

Description

PJMEDIA uses resample-1.7.tar.gz from Digital Audio Resampling Home Page.

License

LGPL: https://github.com/pjsip/pjproject/blob/master/third_party/resample/COPYING

Usage

This resampling software is used by the conference bridge. This software is used when the PJMEDIA_RESAMPLE_IMP macro is set to PJMEDIA_RESAMPLE_LIBRESAMPLE, which is the default. Other options for resampling backends include Speex and Secret Rabbit Code (which is dual licensed). Please see PJMEDIA_RESAMPLE_IMP documentation for more info.

GSM Codec 06.10

Software

GSM 06.10

Author

Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, Technische Universitaet Berlin

Location

https://github.com/pjsip/pjproject/tree/master/third_party/gsm/

Description

PJMEDIA includes uses GSM 06.10 version 1.0 at patchlevel 12

License

Free to use with no warranty: https://github.com/pjsip/pjproject/blob/master/third_party/gsm/COPYRIGHT

Usage

This software will only be linked if application explicitly initialize the GSM library by calling pjmedia_codec_gsm_init(). Note that if PJSUA-LIB is used, then this call is made by PJSUA-LIB, hence causing your application to be linked with the software. The software can be explicitly disabled from the link process by defining PJMEDIA_HAS_GSM_CODEC to zero.

Speex

Software

Speex codec, accoustic echo cancellation, and sampling rate conversion.

Author

https://speex.org/

Location

https://github.com/pjsip/pjproject/tree/master/third_party/speex/

Description

PJMEDIA uses Speex codec version 1.1.12. Speex is a high quality, Open source, patent free codec implementation developed by open source community.

License

https://github.com/pjsip/pjproject/blob/master/third_party/speex/COPYING

Usage

Speex codec: this software will only be linked if application explicitly initialize the Speex library by calling pjmedia_codec_speex_init(). Note that if PJSUA-LIB is used, then this call is made by PJSUA-LIB, hence causing your application to be linked with the software. The software can be explicitly disabled from the link process by defining PJMEDIA_HAS_SPEEX_CODEC to zero.

Speex AEC: Speex accoustic echo cancellation is enabled by default for the sound device. Application can disable this by setting PJMEDIA_HAS_SPEEX_AEC to zero.

Speex sample rate converter: Speex sample rate converter is only used when PJMEDIA_HAS_SPEEX_RESAMPLE macro is set to non-zero. The default is disabled.

iLBC Codec

Software

iLBC Audio Codec

Author

WebRTC Project

Location

https://github.com/pjsip/pjproject/tree/master/third_party/ilbc/

Description

PJMEDIA supports iLBC codec, and iLBC codec implementation is included in PJSIP source distribution.

License

iLBC is distributed under the following free license::

    Copyright 2011 The WebRTC project authors

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

- Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.

- Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in the
  documentation and/or other materials provided with the distribution.

- Neither the name of Google nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Usage

This software will only be linked if application explicitly initialize the iLBC library by calling pjmedia_codec_ilbc_init(). Note that if PJSUA-LIB is used, then this call is made by PJSUA-LIB, hence causing your application to be linked with the software. The software can be explicitly disabled from the link process by defining PJMEDIA_HAS_ILBC_CODEC to zero.

G.722.1/C (aka Siren7 and Siren14) codecs

Software

Siren7/ITU-T G.722.1, licensed from Polycom, and Siren14/ITU-T G.722.1 Annex C, licensed from Polycom

Author

Polycom

Location

https://github.com/pjsip/pjproject/tree/master/third_party/g7221/

Description

PJMEDIA supports G.722.1/C codecs, and G.722.1/C codec implementation is included in PJSIP source distribution.

License

We have acquired a license from Polycom to distribute the codec with PJSIP, however you (the user of PJSIP software) MUST acquire the license from Poly (previously Polycom) yourself to use the codec and/or distribute software linked with the codec. Please see https://web.archive.org/web/20140709022721/http://www.polycom.com/company/about-us/technology/siren/siren-faq.html for more info (this is temporarily a web archive link because when Polycom became Poly the original link disappeared).

Usage

This software is by default disabled, due to the licensing restriction above. The software can be explicitly enabled by defining PJMEDIA_HAS_G7221_CODEC to one.

Milenage and Rijndael

Software

Milenage

Author

The implementation was taken from 3GPP TS 35.206 V7.0.0 document

Location

https://github.com/pjsip/pjproject/tree/master/third_party/milenage/

Description

Milenage algorithm is used for AKAv1-MD5 and AKAv2 SIP digest authentication.

License

Please consult 3GPP TS documents

The 3GPP authentication and key generation functions (MILENAGE) have been developed
through the collaborative efforts of the 3GPP Organizational Partners.

They may be used only for the development and operation of 3G Mobile Communications and
services. There are no additional requirements or authorizations necessary for these
algorithms to be implemented.

Usage

The Milenage and Rijndael implementation will only be linked with application if AKA authentication is used and application explicitly calls or makes reference to pjsip_auth_create_aka_response() function.

libSRTP

Software

libSRTP

Author

David A. McGrew, Cisco Systems, Inc.

Location

https://github.com/pjsip/pjproject/tree/master/third_party/srtp/

Description

libSRTP implements Secure RTP/RTCP (SRTP and SRTCP).

License

BSD 3-clause: https://github.com/pjsip/pjproject/blob/master/third_party/srtp/README.md

Usage

Copy of libSRTP is included in PJSIP distribution, and it is built by default on all supported platforms. SRTP functionality is also enabled by default. If you wish to disable SRTP, declare PJMEDIA_HAS_SRTP macro to zero.

DirectShow Base Classes Microsoft SDK Sample

Software

​DirectShow Base Classes

Author

Microsoft

Location

https://github.com/pjsip/pjproject/tree/master/third_party/BaseClasses/

Description

The DirectShow base classes are a set of C++ classes and utility functions designed for implementing DirectShow filters. Several of the helper classes are also useful for application developers.

License

Microsoft Windows SDK Licence (Licence.htm in Windows SDK installation directory):

Sample Code.  You may modify, copy, and distribute the source and
object code form of code marked as "sample."

Usage

Used in DirectShow device driver for video capture support on Windows platform. If you wish to disable it define macro PJMEDIA_VIDEO_DEV_HAS_DSHOW to 0. This will disable video capture on Windows.

libYUV

Software

https://chromium.googlesource.com/libyuv/libyuv/

Author

The LibYuv Project Authors

Location

https://github.com/pjsip/pjproject/tree/master/third_party/yuv/

Description

Video conversion utilities.

License

Usage

Libyuv may be detected and enabled by the configure script, either automatically or manually via --with-libyuv option. It may be forcefully disabled by defining PJMEDIA_HAS_LIBYUV to 0 in config_site.h.

WebRTC

Software

https://chromium.googlesource.com/external/webrtc/+/master

Location

https://github.com/pjsip/pjproject/tree/master/third_party/webrtc/

Description

WebRTC Acoustic Echo Cancellation

License

Please consult:

Usage

WebRTC AEC is by default enabled, but can be disabled by passing --disable-webrtc to the configure script or defining PJMEDIA_HAS_WEBRTC_AEC to 0 in config_site.h.

WebRTC AEC3

Software

https://webrtc.googlesource.com/src

Location

https://github.com/pjsip/pjproject/tree/master/third_party/webrtc_aec3/

Description

WebRTC AEC3

License

Please consult:

Specifically, please consult WebRTC’s license in:

as well as the licenses of the third party components required in:

Usage

WebRTC AEC3 can be enabled by passing --enable-libwebrtc-aec3 to the configure script.

External Third Party Software

The SOFTWARE may be linked with these external third party software (i.e. libraries that are not shipped with the SOFTWARE).

bcg729

Software

http://www.linphone.org/technical-corner/bcg729

Location

Description

G.729 codec using backend implementation from bcg729

License

Please consult the bcg729 website

Usage

See BCG729 (a G.729 compliant codec)

ffmpeg and libx264

Software

Location

Description

Ffmpeg and libx264 are used as codec backends for H.263 and H.264 and as video format converter.

License

Please consult the Ffmpeg and libx264 websites.

Usage

See FFMPEG codecs (H.261, H.263, H.263P (H263-1998), H.264, MJPEG, VP8, VP9).

Oboe

Software

https://github.com/google/oboe

Author

https://github.com/google/oboe/blob/main/AUTHORS

Location

https://github.com/pjsip/pjproject/blob/master/pjmedia/src/pjmedia-audiodev/oboe_dev.cpp

Description

PJSIP may be configured to use Oboe capture and playback audio device on Android

License

Apache 2.0. See https://github.com/google/oboe/blob/main/LICENSE

Usage

See Android Oboe

OpenCore AMR

Software

https://sourceforge.net/projects/opencore-amr/

Location

https://github.com/pjsip/pjproject/blob/master/pjmedia/src/pjmedia-codec/opencore_amr.c

Description

OpenCore AMR NB/WB codec can be used with the SOFTWARE

License

Apache v2 license, but it may contain derived work of other project. Please check the website for the details.

Usage

See OpenCore AMR NB/WB

OpenH264

Software

http://www.openh264.org/

Location

https://github.com/pjsip/pjproject/blob/master/pjmedia/src/pjmedia-codec/openh264.cpp

Description

OpenH264 codec

License

Please consult the OpenH264 website

Usage

See OpenH264

OpenSSL

Software

http://www.openssl.org/

Location

https://github.com/pjsip/pjproject/blob/master/pjlib/src/pj/ssl_sock_ossl.c

Description

OpenSSL is used as the backend implementation of PJLIB’s secure socket, which among other thing is used by PJSIP’s SIP TLS transport object.

License

The OpenSSL library is licensed under Apache-style license, but this is deemed to be incompatible with GPL (hence we give explicit permission to link with it).

Usage

The library will use OpenSSL if PJ_HAS_SSL_SOCK is set to non-zero. It is detected automatically with the GNU build system, and must be set manually on other build systems (e.g. Windows and Symbian)

Opus

Software

Opus is a totally open, royalty-free, highly versatile audio codec.

Author

https://www.opus-codec.org/

Location

https://github.com/pjsip/pjproject/blob/master/pjmedia/src/pjmedia-codec/opus.c

License

https://www.opus-codec.org/license/

Usage

See Opus

Silk

Software

https://github.com/mycelialold/spore/tree/master/jni/silk/sources

Location

https://github.com/pjsip/pjproject/blob/master/pjmedia/src/pjmedia-codec/silk.c

Description

Silk codec

License

Please check the website

Usage

See SILK

VPX

Software

libvpx: https://www.webmproject.org/code/

Location

https://github.com/pjsip/pjproject/blob/master/pjmedia/src/pjmedia-codec/vpx.c

Description

VP8 and VP9 video codecs

License

BSD 3-clause: https://github.com/webmproject/libvpx/blob/main/LICENSE

Usage

See VP8 and VP9 (libvpx)

Template

Software

Author

Location

Description

License

Usage