Asterisk features and licensing

Hi,
We need to provide an entity able to manage communications between SIP UA end devices.
The management of the communications includes:

  • management of priorities between the different calls
  • group calls
  • forking
  • mixing of audio streams from different UAs and sending the resuting audio stream to another UA
  • etc…
    It seems Asterisk is able to do all that things.
    Could you, please, confirm me that is the case?
    Concerning the licensing of Asterisk, from what I understood of the GPLv2 license, if we use it without modifying its source code for a commercial application, we can use it freely and we don’t need to reditribute our source code.
    Is it right?
    Regards

Any “priority” for calls is something you build using what is available in Asterisk. Asterisk also does have conferencing, and it can call multiple devices at once and the first one to answer will receive the call. You would need to do testing to confirm your requirements are met.

Disclaimer: I am not a lawyer.

Even if you have not modified the source code you must still make the source code available.
I would also suggest consulting a lawyer to ensure you are in compliance with the GPL.

As for the licensing, (oee I get to put my Richard Stallman hat on) and as a published author (not lawyer) who is concerned about copyright (for obvious reasons) IMHO this is the explanation.

First you have to look at the author of the GPL, what they say:

Frequently Asked Questions about the GNU Licenses - GNU Project - Free Software Foundation

What is the difference between an “aggregate” and other kinds of “modified versions

"Where’s the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program."

The GPL and FSF likes to be deliberately vague on licensing because they know that if a lawyer finds a loophole in a specific contract it’s pretty much an open and shut case to go into a court and get a judgement in their favor. They want it vague so if they are challenged they can drag an expert witness into court and fight it out. So they do a lot of handwaving in their published documentation, but what it basically boils down to from their POV is if you write software that links into Asterisk, then it must go under the GPL.

Or if you write software that has a requirement that it be compiled with the same compiler as the version of Asterisk you build (necessary for tricks like shared address space) then it’s the same program and thus must be licensed under the GPL.

But if you can build them with even separate compilers, not link them not have them use each other’s libraries - you are fine you can apply a commercial license to your code.

They approach it this way because the main goal is embrace and extend and increase dependency.

You build a commercial app and save a lot of work using Asterisk. Now, future iterations of your commercial program are dependent on Asterisk. Sooner or later your programmers decide it would be a heck of a lot easier to implement part of your product inside of Asterisk by maybe having Asterisk issue a return code or log entry or something. So you submit a patch to Asterisk, figuring it won’t help anyone but us and maybe someone else might use it but it will be of no consequence. Now, you are going to have to devote some of your programmers time maintaining that bit of Asterisk. In the process of doing that they get familiar with Asterisk code and notice a bug and mention it or send in a patch for it. Everyone benefits.

Regular copyright law is concerned with derivative works and they would use different criteria but since the FSF has specifically defined things that basically mean linking as the criteria for a derivative work - that’s all you really have to worry about.

You still have to distribute Asterisk source on request but this really isn’t a burden because nobody is going to 100% trust that the source of Asterisk you give them is the exact one true source when they can just get it from the official repository so you won’t ever get asked for it. You WON’T need to distribute source of your own stuff as long as it’s not linked in.

Now, there’s a SECOND player in all of this - the actual copyright holder. The FSF encourages projects to assign copyright over to them with the promise that if people do they will go to court if the copyright gets violated. However the FSF has a poor track record of actually doing this. So most copyright holders are like the Asterisk project - they retain their own copyright. Asterisk is copyrighted by Digium, Inc.

if Digium Inc. feels your commercial product is violating the GPL license, then they can actually sue you. The FSF - since Asterisk never assigned it’s copyright over to the FSF - can only stand by handwringing.

So if you really want to CYA then send a nice letter to Digium Inc. and ask your question.

But then, there is one last bit of wood to throw on the fire, here.

Turns out, under US law at any rate, for anyone to successfully sue anyone, they have to prove they suffered economic harm. Damages.

Digium Inc. doesn’t make money off Asterisk. They make money off products that contain it - just like you want to do - but not off Asterisk itself, anymore than you would.

So, they -can’t- sue you even if they wanted to - since they wouldn’t be damaged.

But, one of your own customers might be - if you don’t follow the terms of the GPL and distribute Asterisk source code, make sure you aren’t linking into it, etc. etc.

Now you maybe see the genius of the GPL and FSF. It’s not about just a mere license. It’s how that license is written, how the organization that wrote it is setup, and the entire court system and caselaw over software.

All you really can do is just read the various licenses and use the stuff the way the GPL intends and is laid out in it’s FAQ and standard industry practices, and take out the inevitable business insurance you need to for a commercial product manufacturer because your gonna get some weirdo customer who’s gonna sue you because your product made his dog turn green. Or something.

Ted

On 9/30/2024 1:53 AM, Boban via Asterisk Community wrote:

Boban
September 30

Hi,
We need to provide an entity able to manage communications between SIP UA end devices.
The management of the communications includes:

  • management of priorities between the different calls
  • group calls
  • forking
  • mixing of audio streams from different UAs and sending the resuting audio stream to another UA
  • etc…
    It seems Asterisk is able to do all that things.
    Could you, please, confirm me that is the case?
    Concerning the licensing of Asterisk, from what I understood of the GPLv2 license, if we use it without modifying its source code for a commercial application, we can use it freely and we don’t need to reditribute our source code.
    Is it right?
    Regards

Visit Topic or reply to this email to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, click here.

Thanks for your answer

Digium Inc. no longer exists. Their copyrights are now owned by Sangoma.

I should probably then put in a bug to the distro maintainers to update the license. (check the GPL license in the Asterisk source)