Adam Hart wrote:
> Steven Sokol wrote:
>> I'd just look at asterisk's implementation for ideas [although not
>> code, because asterisk is GPL].
>> “I’m a bit fuzzy on the whole good/bad thing, Egon. What do you mean
>> I guess my understanding of GPL is a bit weak. Is this to say that
>> the code in Asterisk can be freely used, and modified (so long as
>> changes are returned to Digium) but only when used as part of the
>> whole? I.e. the libiax2 is LGPL and that allows it to be used as a
>> separate library, but the ilbc and speex codec code is simply more of
>> Asterisk, so it can’t be used in iaxClient…
>> So, could we ask Mark if he would be willing to allow us to use the
>> code, or could we license it from him under some kind of code-sharing
>> arrangement (if that’s possible under the LGPL license)?
>> I understand that Intellectual Property is important stuff. I just
>> find the license sub-types confusing and frustrating.
Yes, this is all confusing. I'd like to clarify some of Adam's points,
> Mark couldn't give you permission, unforunately. You shouldn't need
> the ilbc or speex code, just get it from the respective sites. GPL
> says if you have any GPL'd code in your source, the entire program
> must be available under GPL. Hence, if you have iaxcomm use some GPL,
> it must in turn become GPL, which causes program that uses it to turn
> GPL. Oh the fun :)
As far as the codecs themselves go:
1) Speex is licensed under a LGPL compatible licence (modified BSD); We
just get it from them, and can use it in our code.
2) I _think_ iLBC's license is also some kind of modified BSD license.
I'm pretty sure that it isn't GPL, and since it was presumably
compatible with the GPL for asterisk, it's probably LGPL compatible for
us to use as well.
3) G711a/u itself is simple enough that you really don't need to use
anyone else's code.
4) As far as asterisk code itself, Mark _can_ give us permission to
include it in iaxclient under the LGPL, since he (well, Digium) has the
complete copyright on it, and can license it anyway they want, including
GPL and/or any other license they want. So if there was code in asterisk
that was helpful to us, we could ask Mark nicely, and I'm guessing he
may be amenable to donating it to us for LGPL use.
As to why we use LGPL and not GPL: The answer is on the website, but
basically it is because it allows people to:
a) Link with proprietary codecs and stuff, like the encumbered G.xxx stuff.
b) Create proprietary UI code. This is what allows Adam to make a
proprietary Firefly application on top of libiax2, which is also LGPL.
> I see no reason why iaxcomm would need any of asterisk's code. The
> iLBC and speex stuff is just a wrapper around the libraries.
Right; and the particulars of the implementation in asterisk is probably
not what we want and/or need inside of iaxclient. The basic idea of
modularization, though, is something we need, similarly to how we have
modularized the audio interface (there are actually 2 mostly modularized
audio interfaces: portaudio, and "file", the latter of which is a simple
debugging tool for now).