{{{ #!html
}}}
= PJSIP Detail Licensing Info =
'''Table of Contents'''
[[PageOutline(1-3,,inline)]]
[[BR]]
== The SOFTWARE == #sw
PJSIP software ("The SOFTWARE") consists of:
- '''pjlib''': A cross-platforms portability and framework library,
- '''pjlib-util''': An adjunct library to pjlib which provides various utility functions,
- '''pjnath''': A NAT traversal helper library,
- '''pjmedia''': A multimedia communications library,
- '''pjmedia-codec''': A placeholder library to support various multimedia codecs,
- '''pjsip''': A SIP protocol stack collections.
and any and all build scripts, makefiles, tools, samples, and/or applications available and/or required to use or modify such 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.
== License ==
The SOFTWARE is released under dual license, open source (GPL) or alternative license.
The SOFTWARE may be used according to Free Software GNU General Public License (GPL) version 2, or (at your option) any later version, with special exception to permit linking with some Open Source Third Party libraries set out below.
The GPL allows you to compile, modify, link, or combine the SOFTWARE with other software, commercial or non-commercial, as long as the resulting program complies with GPL (see the GPL Compliance Guide for what this means). Copy of GNU General Public License is available on the http://www.gnu.org. More information about GPL can be found in [http://www.gnu.org/licenses/gpl-faq.html GPL FAQ].
== Alternative License == #alt
If you can't comply with GPL, an alternative licensing scheme may be arranged.
If you still have questions, just email licensing@pjsip.org and we'll help you sort it out.
== Special Exception ==
As a special exception to GPL, the author of the SOFTWARE gives permission to link the SOFTWARE with Open Source Third Party Software below, and distribute the linked combinations. GNU General Public License must be obeyed in all respects for all of the code used other than those Third Party Software.
== Third Party Licensing Requirements ==
In addition to the licensing requirements of the 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.
== Older Version ==
Older PJSIP (up to [http://www.pjsip.org/release 0.2.9.x release]) was released under GNU Lesser General Public License (LGPL), and it would stay this way.
[[BR]]
= 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).
[[BR]]
== Contributed and Public Domain Third Party Software ==
Contributed and Public Domain Third Party Software below can be used according to the SOFTWARE licenses, without no further restrictions.
=== ACE Timer Heap ===
Software
Timer heap management of [http://www.cs.wustl.edu/%7Eschmidt/ACE.html 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
{{{pjlib/timer.[hc]}}}
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.
Using the Software
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
{{{pjmedia/alaw_ulaw.c}}}
Description
PCM Alaw and U-law conversion.
License
{{{
This source code is a product of Sun Microsystems, Inc. and is provided
for unrestricted use. Users may copy or modify this source code without
charge.
SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
Sun source code is provided with no support and without any obligation on
the part of Sun Microsystems, Inc. to assist in its use, correction,
modification or enhancement.
SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
OR ANY PART THEREOF.
In no event will Sun Microsystems, Inc. be liable for any lost revenue
or profits or other special, indirect and consequential damages, even if
Sun has been advised of the possibility of such damages.
Sun Microsystems, Inc.
2550 Garcia Avenue
Mountain View, California 94043
}}}
Using the Software
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
{{{pjlib-util/crc32.c}}}
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.
}}}
Using the Software
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
{{{ pjlib-util/md5.c}}}
Description
MD5 hashing for digest authentication.
License
This software is put in public domain, and can be used for any purpose with no warranty:
{{{
This code implements the MD5 message-digest algorithm.
The algorithm is due to Ron Rivest. This code was
written by Colin Plumb in 1993, no copyright is claimed.
This code is in the public domain; do with it what you wish.
Equivalent code is available from RSA Data Security, Inc.
This code has been tested against that, and is equivalent,
except that you don't need to include two pages of legalese
with every copy.
To compute the message digest of a chunk of bytes, declare an
MD5Context structure, pass it to MD5Init, call MD5Update as
needed on buffers full of bytes, and then call MD5Final, which
will fill a supplied 16-byte array with the digest.
}}}
Using the Software
This code is needed by SIP digest authentication procedure, and can not be disabled.
=== SHA1 Encryption ===
Software
SHA1 encryption
Authors
Steve Reid, James H. Brown, Saul Kravitz, Ralph Giles
Location
{{{ pjlib-util/sha1.c }}}
License
This software is put in public domain, and can be used for any purpose with no warranty:
{{{
SHA-1 in C
By Steve Reid
100% Public Domain
-----------------
Modified 7/98
By James H. Brown
Still 100% Public Domain
-----------------
Modified 4/01
By Saul Kravitz
Still 100% PD
Modified to run on Compaq Alpha hardware.
-----------------
Modified 07/2002
By Ralph Giles
Still 100% public domain
}}}
Using the Software
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
{{{ pjmedia-codec/g722/}}} directory
Description
The G.722 codec algorithms are included in PJMEDIA source directory.
License
Public domain software.
Using the Software
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.
[[BR]]
== 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
{{{pjlib-util/getopt.[hc]}}}
Description
Command line parsing library that is used by our sample applications.
License
Distributed under opensource GNU LGPL.
Using the Software
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.
=== !PortAudio ===
Software
Cross platform audio device abstraction (http://www.portaudio.com)
Author
Based on the Open Source API proposed by Ross Bencina, Copyright (c) 1999-2000 Phil Burk
Location
{{{third_party/portaudio/}}}
Description
!PortAudio can be used as default sound device backend on Windows, !Linux/Unix and MacOS X target.
License
!PortAudio is an open source project distributed under the following terms:
{{{
Based on the Open Source API proposed by Ross Bencina
Copyright (c) 1999-2000 Phil Burk
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
}}}
Using the Software
The use of this software is controlled by {{{PJMEDIA_SOUND_IMPLEMENTATION}}} macro setting in pjmedia/config.h, and can be overriden by application.
=== Resample ===
Software
High Quality Sample Rate Conversion
Location
{{{third_party/resample/}}}
Description
PJMEDIA uses {{{resample-1.7.tar.gz}}} from [http://www-ccrma.stanford.edu/%7Ejos/resample/ Digital Audio Resampling Home Page].
Some excerpts from the original source codes:
{{{
HISTORY
The first version of this software was written by Julius O. Smith III
|