Version 2.7.3 changes PearlPBX2’s license from the PolyForm Shield License 1.0.0 to the GNU
Affero General Public License v3.0-or-later (AGPL-3.0-or-later). This touches LICENSE,
NOTICE, README.md, CONTRIBUTING.md, and the SPDX-License-Identifier headers in
core/conf.py, core/models.py, manage.py, and pbx/settings.py.
What changed
PolyForm Shield 1.0.0 allowed using, modifying, and deploying PearlPBX2 for any purpose — including running your own commercial telephony business — with one exception: you couldn’t sell a product or service that competes with PearlPBX2 without a separate written agreement with the copyright holder. Formally, that’s “source-available,” not an OSI-open license.
AGPL-3.0-or-later is an OSI- and FSF-recognized free and open-source license. It has no restriction on competing use: PearlPBX2 can be forked, extended, and offered as your own product or service that directly competes with the original, and no separate agreement is needed for that anymore.
The key difference in AGPL: network-use copyleft
Instead of a ban on competing use, AGPL adds a different obligation — the same one that sets it apart from plain GPL: section 13, network use. If you modify PearlPBX2 and give users access to the modified version over a network — for example, offering it as a hosted service to your own customers — you must give those users the complete corresponding source code of the exact version they’re using. This applies even if you never handed over a single binary directly: the act of network access itself counts as distribution.
Standard AGPL copyleft still applies: when distributing copies — modified or not — you must keep the copyright notices and license text and provide the source code. Derivative works may only be distributed under the same AGPL-3.0-or-later — you can’t re-release a fork under a closed or more restrictive license.
Here’s how the project’s README puts it:
You may use, modify, and distribute PearlPBX2 for any purpose. If you run a modified version to provide a service over a network, you must make the complete corresponding source code available to users of that service, under the same license.
What this means if you just deploy PearlPBX2
If you run PearlPBX2 on your own server for your own call center and give no outside access to anyone, the license change practically doesn’t affect you: you could already use the product for your own commercial telephony business without a separate agreement, and you still can. What’s different is the legal basis — a genuine open license now, instead of an exception carved out of source-available terms.
What this means if you offer PearlPBX2 as a service
If you take PearlPBX2, modify it, and give access to it over a network to other people or companies — your own customers, say — you’re now subject to the section 13 obligation: give those users the source code of the modified version under AGPL-3.0. Previously, the opposite logic applied here: that kind of activity could fall under PolyForm Shield’s competing-use restriction and require a separate agreement. Now there’s no legal prohibition — there’s a requirement to disclose the code to the service’s users.
CLA for contributions to the project itself
Separately from the license, version 2.7.3 adds a requirement to sign a Contributor License
Agreement for external contributions to the PearlPBX2 project itself — not to forks. A GitHub
Action built on contributor-assistant/github-action posts a sign-off request on a contributor’s
first pull request; the terms are described in CLA.md. This doesn’t change any rights AGPL-3.0
already grants to anyone who uses or forks the code — the CLA only applies to people who want
their code merged into the main repository.
Where to find the full text
The full license text is in LICENSE and NOTICE in the product repository, and at
gnu.org/licenses/agpl-3.0.html. A plain-language
explanation and a link to the original are on this site’s License page.