Licensing
The SOFTWARE
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 GPL FAQ.
Alternative License
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 (the 0.2.9.x series) was released under GNU Lesser
General Public License (LGPL), and it would
stay this way.
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
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 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
-
PJMEDIA uses G.711 algorithm from Sun Microsystems, Inc.
- 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
-
- 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/
- 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.
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
Optional command line parsing library, included in pjlib-util. This normally is only used by console programs.
- 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 is 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
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 <jos@ccrma.stanford.edu> at CCRMA <http://www-ccrma.stanford.edu> in 1981. It was called SRCONV and was written in SAIL for PDP-10 compatible machines. The algorithm was first published in
Smith, Julius O. and Phil Gossett. ``A Flexible Sampling-Rate Conversion Method,'' Proceedings (2): 19.4.1-19.4.4, IEEE Conference on Acoustics, Speech, and Signal Processing, San Diego, March 1984.
An expanded tutorial based on this paper is available at the Digital Audio Resampling Home Page given above.
Circa 1988, the SRCONV program was translated from SAIL to C by Christopher Lee Fraley working with Roger Dannenberg at CMU.
Since then, the C version has been maintained by jos.
Sndlib support was added 6/99 by John Gibson <jgg9c@virginia.edu>.
The resample program is free software distributed in accordance with the Lesser GNU Public License (LGPL). There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- License
This software is distibuted under opensource GNU LGPL terms.
- Using the Software
The resampling software is enabled by default is used by the conference bridge. Define PJMEDIA_HAS_SMALL_FILTER=0 and PJMEDIA_HAS_LARGE_FILTER=0 to disable this software.
GSM Codec 06.10
- Software
GSM 06.10 Software Library.
- Author
Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, Technische Universitaet Berlin
- Location
third_party/gsm/
- Description
-
PJMEDIA includes uses GSM 06.10 version 1.0 at patchlevel 12
- License
Free to use with no warranty:
Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, Technische Universitaet Berlin
Any use of this software is permitted provided that this notice is not removed and that neither the authors nor the Technische Universitaet Berlin are deemed to have made any representations as to the suitability of this software for any purpose nor are held responsible for any defects of this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
As a matter of courtesy, the authors request to be informed about uses this software has found, about bugs in this software, and about any improvements that may be of general interest.
Berlin, 28.11.1994 Jutta Degener Carsten Bormann
- Using the Software
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
- Speex accoustic echo cancellation
- Speex sampling rate conversion
- Author
http://www.speex.org
- Location
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
Speex is distributed under the following free license:
Copyright 2002-2005 Xiph.org Foundation Jean-Marc Valin David Rowe EpicGames Analog Devices
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 the Xiph.org Foundation 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.
- Using the Software
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
Global IP Sound, http://www.ilbcfreeware.org
- Location
third_party/ilbc/
- Description
PJMEDIA supports iLBC codec, and iLBC codec implementation is included in PJSIP source distribution.
- License
The use of iLBC requires permission from Global IP Sound, http://www.ilbcfreeware.org. Please see http://www.ilbcfreeware.org/documentation/gips_iLBClicense.pdf for iLBC licensing details.
- Using the Software
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
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 Polycom yourself to use the codec and/or distribute software linked with the codec. Please see http://www.polycom.com/company/about_us/technology/siren_g7221/license_schedule.html for more info.
- Using the Software
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.
OpenSSL
- Software
SSL/TLS encryption and transport
- Author
http://www.openssl.org
- Location
external
- Description
-
PJSIP may be linked with OpenSSL to enable SIP TLS transport.
- License
Please see OpenSSL License
- Using the Software
SIP TLS transport is disabled by default, and application must enable SIP TLS transport manually by declaring PJSIP_HAS_TLS_TRANSPORT to 1 in config_site.h. OpenSSL library must be installed in order to build SIP TLS transport.
The
OpenSSL library itself is not included in PJSIP distribution. With the
GNU build system, the configure script will detect the presence of
OpenSSL library automatically. On Windows, application must add OpenSSL
include and lib paths in Visual Studio directory search paths.
Milenage and Rijndael
- Software
Milenage
- Author
The implementation was taken from 3GPP TS 35.206 V7.0.0 document.
- Location
third_party/milenage/
- Description
Milenage algorithm is used for AKAv1-MD5 and AKAv2 SIP digest authentication.
- License
Please consult 3GPP TS documents.
- Using the Software
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
third_party/srtp/
- Description
libSRTP implements Secure RTP/RTCP (SRTP and SRTCP).
- License
libSRTPis distributed under the following free license:
/* * * Copyright (c) 2001-2006 Cisco Systems, Inc. * All rights reserved. * * 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 the Cisco Systems, Inc. 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 * COPYRIGHT HOLDERS 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. * */
- Using the Software
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.
Deprecated Third Party Software
This section contains information about third party software which was used in the past and subsequently has been deprecated in favor of new algorithm. You may or may not be affected by the licensing requirements of the software, depending on whether your PJSIP software version contains copy of the software.
Adaptive Silence Detection
- Software
Adaptive Silence Detection
- Author
OpenH323 Project
- Location
pjmedia/silencedet.[hc]
- Description
-
The adaptive silence detector was based on adaptive silence detector implementation in Open H423 project.
- License
This software is distributed under opensource Mozilla MPL terms:
Open H423 Library
Copyright (c) 1998-2000 Equivalence Pty. Ltd.
The contents of this file are subject to the Mozilla Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
The Original Code is Open H423 Library.
The Initial Developer of the Original Code is Equivalence Pty. Ltd.
Portions of this code were written with the assisance of funding from Vovida Networks, Inc. http://www.vovida.com.
- Using the Software
This software is used by various codecs and also by the conference bridge, and can not be disabled.
- Deprecated in:
This software has been removed and/or replaced in PJSIP version 1.0-rc1.
|
|