What Version of FreePBX Should You Use?

With 6+ years under our belt and releases that started as AMP followed by FreePBX versions 2.0 - 2.8 and now 2.9 underway, there are a lot of versions floating around out there that may make you wonder, "what should I be running?" This question is complicated by the fact that different FreePBX distributions tend to move slower than others in adopting new versions of FreePBX, with varying reasons why they each move at their own pace.

Given this confusion, I’d like to shed some light on our perspective and general approach to managing the various releases. I’ll start by quoting a comment I read the other day in a forum post that may imply some of you are mis-interpreting the bug tracking data and thus possibly making decisions you did not intend to. The user commented that:

“The other thing that sort of puts me off [upgrading] is the relatively high number of (so far) unaddressed bugs (see http://www.freepbx.org/trac/query?st…&group=version and note the relatively higher number under the 2.8 branch”

What does it really mean when you see bugs listed under a given branch? As a general rule, when a bug is reported, it is reported against the current branch and when not, if the bug exists in the current branch, it is often reassigned to that branch. The reality that we find is the majority of bugs reported in the current branch (and earlier) are bugs that have existed in many earlier versions, often going back years. Our normal process with bugs is to fix bugs in the current release and very rarely do we back port those fixes to the previously (supported) release or earlier ones.

The time that we see the most bugs being reported is when we are actively engaged in a beta/RC cycle. This activity prompts large numbers of the community to proactively look for issues and as a result, there are typically large numbers of bugs uncovered during these periods. We find that significant portions of these bugs exist in previous releases, though more often then not, they are never applied back to either of the currently supported releases unless they are determined to be significant. (When a bug has been sitting around for years un-detected/reported - it is usually not very significant).

What does all this mean? This approach is taken for a good reason; If the bug has been lurking in the code for so long un-reported, it’s probably best we not perturb the current releases since any bug fix always has a chance of breaking something else in the process no matter how careful we are. However, these very facts violate that premise assumed in the user’s quote above. The reality is each new release of FreePBX usually contains many less bugs than older releases. If that is your priority, you are usually better off moving forward. If you have a system that works and to your knowledge, there are no new features available in the new releases that you care about, then there is always prudence to “if it isn’t broken, don’t fix it!” However - I suspect most of you who have not poked around the new releases may not really know what awaits you for features that you didn’t know you really wanted!

The one exception to back porting bug fixes is with Security Vulnerabilities. Although I can assure you that 9 out of 10 such vulnerabilities reported to us are very insignificant and very low risk, we still back port them to many earlier releases. Up until this point, we typically back ported such security patches on all versions back to 2.3. Given the age of these older releases, and the busy work that is involved in updating them, we’ve decided to limit the number of releases that will be updated with security patches to 2 releases prior to the currently supported versions. At this time, that means we will back port security issues to version 2.5 and above since the currently supported releases are 2.7 and 2.8, unless we determine that a vulnerability is serious enough in which case we may supply updates to earlier releases as well. Versions prior to 2.3 have not had any updates for quite some time.

I hope this helps you better understand what we maintain in what releases, how to better interpret the bug tracking system and realize that our latest releases are typically the most stable and have the fewest bugs in them, contrary to many other software products out there.

Philippe - On behalf of the FreePBX Team

Let me first suggest if folks want to discuss a specific feature, let’s move it to the forums and not derail this blog post (though I know I’m partially guilty for chiming in…)

Second let me clarify something in case folks are getting the wrong impression. If you upgrade to version 2.8, or for that matter, from any version to almost any other version, everything is migrated. There is virtually nothing that we have ever done that did not include automatic migration if/when necessary.

So for those who got the wrong impression wrt to changes such as how the GUI is presented (in addition to increased features) for Outbound Routes, or anything else for that matter, rest assured that everything migrates forward and functionality continues as it previously did. This is something that we have absolutely not strayed from and I should probably have re-inforced it in my initial blog - your settings and functionality will always migrate when upgrading versions.

First, I only posted my “complaint” on this forum, and if someone else copied it elsewhere, they did so without my knowledge or permission. Second, I assure you that my route patterns were not a joke, and as surmised they are used to route calls differently, for example Canada calls take a different route than U.S. calls, and to prevent high-cost and fraud calls to the Caribbean.

Anyway, what we have here is a “Catch 22” situation. Right now I have a system that’s working well with a previous version of FreePBX and I am reluctant to touch it. And in particular I don’t want to upgrade if there’s even a slight chance that something might stop working, because I’m not that good at fixing things and I have a tendency to go into full panic mode. My fear, however, is that someday I’ll be forced to upgrade for any of a number of reasons, ranging from hardware failure to a necessary security fix that’s not backported to the version I use, to some great new feature I don’t want to live without. Whenever that happens, whether it’s a week from now or five years from now, I’d like to be able to use my existing dial patterns.

As you may surmise, since I’m not running the latest version yet that means I can’t test the CSV import, though it sounds like a great solution to the problem. I hope you will find people braver than I am that are willing to test it for you, because as much as I’d like to see it included, I just can’t bring myself to possibly break a working system right now. I don’t have the luxury of having multiple servers or multiple IP addresses to play with, otherwise I’d be much more willing to set up another system and see if I can get it to work as well as the one I have.

Your posts have made me wonder if I missed the announcement of the CSV feature, I assume you must have put it somewhere so people could test it but I never saw it mentioned, or at least don’t recall seeing it. If I didn’t see it, maybe others who wanted it never saw it either, and that might be why you haven’t had any offers to test it.

actually, my intention the whole time has been to put it into 2.8 once it got proper feedback (the CSV import). That was so long ago because there was so little response that I have not kept up with it.

If there have been a half a dozen people who have given it some reasonable testing then I’ll be happy to push it back into 2.8, it just needs someone to enumerate that and make it as obvious that it is ready as much as a few folks had made it obvious they wanted it changed.

When the new Outbound Route was introduced I was really excited. What a clean way to enter route patterns and what an easy way to add or remove dial pattern.
This is the way it should be. Easy to understand, easy to use.

Then someone posted on the forum:

And in the post there was a 572 lines of route patterns followed by 122 lines for Canada and Caribbean.

My first thought was that it was a joke, but it turned out it was not. It was used to only allow calls “valid” numbers and to block calls to not go to scam phones.

I looked into it, and so did Philippe, what was done to Outbound Routes was the addition to import a .csv-file into the route pattern.

It did work perfect, so I updated the ticket to reflect my testing and… that was it?? No response, no others to test? Hmmm, confusing, was this really an issue at all??

I turned out that it was only sir_sip that complained (loudly) about the issue on a couple of forums, and have never (as far as I know) tested the csv import.
dcitelecom did test it and came up with some suggestions that where valid and it will be rolled into FreePBX 2.9.

I can’t wait for FreePBX 2.10, I have some very exciting news for that, it is in testing (at home, not ready for release (yet)), so you who hesitate to upgrade, don’t wait, you will miss features and fixes.

It’s why we support more than one release:-)

I’ve generally preferred to stay up to date with FreePBX, but I’m often hamstrung by the distribution I’m using. I realize this isn’t necessarily/directly the fault of FreePBX, but it doesn’t change the fact that updating poses a risk to the stability of my system. Also, I have a module (CallerID Superfecta) that seems to have problems with the latest versions of FreePBX. Again, not the fault of FreePBX, but just giving some insight as to why users who might want to upgrade still don’t.

Those are all valid points and unfortunately they are not really in our control.

We try to do everything very transparently and we go through extra ordinary efforts in most cases to maintain compatibility when modifying any form of API or other things that other modules might use. When we know there is an internal change coming that may break other modules (which is very very rare) we try to contact other distributions and developers and in general, make it very apparent and give plenty of lead time.

However, given the popularity of FreePBX, it gets used in a very diverse set of places and there are modules that pop up and out of our control and then get abandoned by the developers but none-the-less continue to be used.

We do support the two most current releases, and as indicated, we will continue to provide security fixes to the two releases prior to that. However, if you do want to upgrade for various reasons (new features, stay current, etc.) then unfortunately there may be forces outside of our control that we can’t help you with.

“However - I suspect most of you who have not poked around the new releases may not really know what awaits you for features that you didn’t know you really wanted!”

True enough, but there may also be features you DON’T want, like the new pattern entry methods for routes and trunks in post-2.7 releases. Just sayin’.