wiki:PJSIP-Detail-License

Version 4 (modified by ismangil, 12 years ago) (diff)

--

PJSIP Detail Licensing Info

Table of Contents

  1. PJSIP Detail Licensing Info
    1. The SOFTWARE
    2. License
    3. Alternative License
    4. Special Exception
    5. Third Party Licensing Requirements
    6. Older Version
  2. Third Party Software
    1. Contributed and Public Domain Third Party Software
      1. ACE Timer Heap
      2. Alaw/Ulaw Converter
      3. CRC32 Algorithm
      4. MD5 Hashing Algorithm
      5. SHA1 Encryption
      6. G.722 Codec
    2. Third Party Software with Licensing Requirements
      1. GNU Getopt
      2. PortAudio
      3. Resample
      4. GSM Codec 06.10
      5. Speex
      6. iLBC Codec
      7. G.722.1/C (aka Siren7 and Siren14) codecs
      8. Milenage and Rijndael
      9. libSRTP
    3. Deprecated Third Party Software
      1. Adaptive Silence Detection


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

The resampling software is enabled by default is used by the conference bridge. Declare 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

WebRTC Project

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

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

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

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.


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.