=======================================================================
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