Version 13 (modified by ismangil, 11 years ago) (diff) |
---|
PJSIP Detailed Licensing Info
Table of Contents
- PJSIP Detailed Licensing Info
- Third Party Software
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@… 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 0.2.9.x release) 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
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@…) 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.
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 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
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
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
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
Location
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.
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
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/siren-licensing-form.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.
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
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.
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
Author
David A. McGrew, Cisco Systems, Inc.
Location
third_party/srtp/
Description
libSRTP implements Secure RTP/RTCP (SRTP and SRTCP).
License
libSRTP is 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.
DirectShow Base Classes Microsoft SDK Sample
Software
Author
Microsoft
Location
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.”
Using the Software
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.
External Third Party Software
PJSIP may be linked with these external third party software.
OpenSSL
Software
Author
OpenSSL Project
Location
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.
Using the Software
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)
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.