155 lines
5.8 KiB
Plaintext
155 lines
5.8 KiB
Plaintext
|
=======================================================================
|
||
|
BUILDING THE LIBRARY: (tested on Gentoo/Ubuntu/Windows XP/Windows 7)
|
||
|
|
||
|
* Linux:
|
||
|
first Install dev tools (gcc, cmake, make, ..)
|
||
|
sudo apt-get install build-essential cmake libopenal-dev libopenal1
|
||
|
mkdir build/
|
||
|
cd build/
|
||
|
cmake ../lib
|
||
|
make
|
||
|
|
||
|
- Iaxclient:
|
||
|
cd lib
|
||
|
mkdir build && cd build
|
||
|
cmake ..
|
||
|
make
|
||
|
|
||
|
=======================================================================
|
||
|
BUILDING THE CLIENT
|
||
|
|
||
|
cd ..
|
||
|
cd simpleclient
|
||
|
make
|
||
|
|
||
|
=======================================================================
|
||
|
LICENSES
|
||
|
|
||
|
|
||
|
The iaxclient library itself, is provided under the terms of the LGPL:
|
||
|
|
||
|
This library is free software; you can redistribute it and/or
|
||
|
modify it under the terms of the GNU Library General Public
|
||
|
License as published by the Free Software Foundation; either
|
||
|
version 2 of the License, or (at your option) any later version.
|
||
|
|
||
|
This library is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
|
Library General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU Library General Public
|
||
|
License along with this library; if not, write to the Free
|
||
|
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||
|
MA 02111-1307, USA
|
||
|
|
||
|
The iaxclient library may also include, when compiled, works distributed
|
||
|
under other licenses. See those directories and source files for
|
||
|
specifics. These include:
|
||
|
|
||
|
libiax: (c) 2001 Mark Spencer under the LGPL.
|
||
|
libiax2: (c) 2001 Mark Spencer under the LGPL.
|
||
|
gsm encoder: Copyright 1992, 1993, 1994 by Jutta Degener
|
||
|
and Carsten Bormann, Technische Universitaet Berlin
|
||
|
(free license, terms in gsm/copyright)
|
||
|
portaudio: Copyright (c) 1999-2000 Ross Bencina and Phil Burk
|
||
|
Modified BSD style license, in portaudio/LICENSE.txt
|
||
|
|
||
|
sox tools: compand.c: Copyright 1999 Chris Bagwell And
|
||
|
Nick Bailey
|
||
|
resample.c: (not currently used) Copyright 1991
|
||
|
Lance Norskog And Sundry Contributors,
|
||
|
free licenses in source files.
|
||
|
libspeex: (c) various authors
|
||
|
BSD-like license.
|
||
|
|
||
|
|
||
|
=======================================================================
|
||
|
CONTRIBUTORS:
|
||
|
|
||
|
IAXCLIENT itself was contributed to by:
|
||
|
|
||
|
Steve Kann <stevek@stevek.com>
|
||
|
Shawn Lawrence <shawn.lawrence@terracecomm.com>
|
||
|
Faizan "Tili" Naqvi <faizan@tilizone.com> [Win32 VC++ build/client]
|
||
|
Scott Lambert <lambert@lambertfam.org> [FreeBSD build changes]
|
||
|
Michael Van Donselaar <mvand@vandonselaar.org> [Win32/MinGW build directions, UI changes, IAXComm phone ]
|
||
|
Steven Sokol <ssokol@sokol-associates.com> [ Debugging, Blind Transfer ]
|
||
|
Stephan Kauss <Stephan@kauss.org> [ 32-bit alignment for IAX2 ]
|
||
|
Stephen Uhler <suhler@sun.com> [Solaris build, tkiaxphone]
|
||
|
Steve Underwood <steveu@coppice.org> [PLC implementation from spandsp]
|
||
|
Jean-Denis Girard <jd.girard@sysnux.pf> [URL Receive implementation]
|
||
|
Panfilov Dmitry <dima@bdpu.org> [Basic ALSA-native audio driver]
|
||
|
Mihai Balea <mihai at hates dot ms>
|
||
|
Bill Welch <welch1820 at gmail dot com> [Project files for several MS development environments]
|
||
|
|
||
|
|
||
|
In addition to including libiax, IAXCLIENT is also based in part on code
|
||
|
included in test clients within libiax itself.
|
||
|
|
||
|
The included sub-libraries, including libiax, libiax2, gsm, portaudio,
|
||
|
and the sox-derived filters, were developed by others, as noted in above
|
||
|
and in their sources. We couldn't have built IAXCLIENT (or, it would
|
||
|
have been much more difficult!) without the great work from these
|
||
|
projects.
|
||
|
|
||
|
=======================================================================
|
||
|
LIBRARY ORGANIZATION/DESIGN/CODING CONVENTION NOTES
|
||
|
|
||
|
The iaxclient library is designed to be a small, simple library that
|
||
|
encapsulates all that you need in order to make IAX protocol telephony
|
||
|
programs.
|
||
|
|
||
|
All exported symbols should be prefixed with "iaxc_", to avoid namespace
|
||
|
collisions/pollution in programs using this library.
|
||
|
|
||
|
The header file "iaxclient.h" should contain those declarations needed
|
||
|
by client programs, but not rely on other headers (i.e. those from
|
||
|
included libraries). The "iaxclient-lib.h" header file is the main
|
||
|
header file for the library's internal declarations.
|
||
|
|
||
|
|
||
|
=========================================================================
|
||
|
|
||
|
CODECS
|
||
|
|
||
|
The codec API is pretty straightforward; just use any of the existing
|
||
|
available codecs as a guide. The only place in the main code they
|
||
|
interface is the switch in audio_encode.c:create_codec
|
||
|
|
||
|
ILBC
|
||
|
|
||
|
Lots of people are enamored with iLBC lately, so I put this together for
|
||
|
them. Personally, I prefer speex, because it seems to sound just as
|
||
|
good, but has no license restrictions. With proper compilation options
|
||
|
(i.e. use it's SSE optimizations), it can be made even faster than the
|
||
|
iLBC reference.
|
||
|
|
||
|
There is glue to build iaxclient with iLBC available in the source, but
|
||
|
the source to iLBC itself is _not_ included. This is primarily because
|
||
|
of the licensing issues.
|
||
|
|
||
|
I'm not a lawyer, but it appears that iLBC's license would make it
|
||
|
impossible to build iaxclient and link it with a GPL front-end, meaning
|
||
|
a library built this way is no longer something that could be considered
|
||
|
LGPL. However, you could probably build a client using iLBC and
|
||
|
distribute it legally, if you follow the rules in the LGPL. So, this is
|
||
|
an issue for you and your legal counsel to figure out.
|
||
|
|
||
|
To actually build iaxclient with iLBC, though is very easy. Just make a
|
||
|
directory under lib named iLBC, and drop the iLBC reference sources into
|
||
|
it, then change CODEC_ILBC=0 to CODEC_ILBC=1 in the Makefile, and away
|
||
|
you go.
|
||
|
|
||
|
The source presently is set up for the draft-5 version.
|
||
|
|
||
|
The iLBC license and software can be found here
|
||
|
http://www.ilbcfreeware.org/software.html
|
||
|
(sources are also in asterisk).
|
||
|
|
||
|
=========================================================================
|
||
|
|
||
|
AUDIO DRIVERS
|
||
|
|
||
|
Use alsa
|