Time for a distro?

There are many flavors of FreePBX distributions that make up the huge installed base of FreePBX and as such, we have discussed the wisdom of creating a FreePBX distro for years. The range of options span from AsteriskNOW to the likes of trixbox who packages FreePBX with a name change to keep their branding. (Whether or not trixbox will be around much longer, ??? – more on that.) As this space has evolved, tighter security and other integration spanning FreePBX and the underlying distro has become more important to provide a great user experience and we feel it is critical to the continued success of this great product.

We have watched the dynamics change on the distro front with different flavors of distros available with varying focuses and appealing to different needs of this community. One of the biggest distros, albeit one that masks the FreePBX name to emphasize their branding, has recently made moves hinting they will no longer be investing in the FreePBX space. As a result, we thought we would tell you about what we’ve been up to for some time now. Call it a pre-announcement or what ever you will but we want to make sure that everyone feels confident that the FreePBX space is live and kicking with lots of great things still coming down the pipe, now on the distro front in addition to all the great stuff you’ve been hearing about with FreePBX 2.9!

For those of you who don’t know Schmooze Com, Inc. they are one of the biggest FreePBX resellers as well as the largest corporate FreePBX contributor outside of Bandwidth.com. They put in a significant amount of development on the FreePBX project as well as many of the Aastra XML applications that many of you are familiar with. They run a multi-tiered distribution channel with their own branded FreePBX distribution in a setting that requires the same 24×7 support options and infrastructure as any mainstream PBX vendor requires. As such, they have been in the distro business for years with hundreds of systems in their own installed base. They’ve also been the primary partner on the FreePBX support side and as a result, between Schmooze and our own experience we have a unique view of many key ingredients that should be emphasized in the PBX distro space as well as first hand experience with the various weak links in many of the mainstream FreePBX distros as a result of the hundreds of support customers that we have served using these platforms.

So … we are pleased to tell you that we have teamed up and are leveraging this very strong partnership with Schmooze to bring forward a first class distro that will be fully supported by the FreePBX project! For those of you who are wondering where you go next with the de-investment on the trixbox platform rest assured that there will be a first rate landing place and we’ll also investigate transition aids to help you get here easier. There are some key areas that are of primary focus we have been looking at from the FreePBX distro perspective. At the top of our list are security, streamlined GUI integration and tighter Asterisk integration.

On the security front you’ll see new approaches to assure that no standard passwords are floating around the internet making it easy for hackers to automatically find and exploit open systems as is so often the case today. The tighter GUI integration will present a single GUI view vs. the often cobbled together GUI in a GUI integration that is sometimes the case. We’ve coupled this tighter integration with new ways to approach security holes that are sometimes left vulnerable on some distros that have potentially dangerous root level sudo access to various linux commands provided to allow the GUIs to do their thing. On the Asterisk level we will be providing a yum (rpm) based approach to allow simple to manage packages on your system but with a slight twist. We’ve often run into issues where some critical patches are needed on Asterisk which are making their way on the Asterisk bug tracker but because of conflicting priorities, not always quick enough to address your needs. As a result, we will be providing some of these patches pre-built into the Asterisk rpms that we make available. This provides a great benefit for many of the users saving you from the manual and error prone process of patchong your own versions of Asterisk which often involves installing full copies and breaking the RPMs that your distro may be providing today.

We are very excited about this progression and will fill you in with more over the coming weeks. We’ll also let you know how you can get an early copy to start evaluating shortly though if you can’t wait that long, feel free to ping me and when I get back from a short vacation (I’m on the plane now 🙂 (Or come on over to our [url=/open-telephony-training-seminar]FreePBX Training in May[/url] and get a first hand view of what is going on!) I’ll see what I can do. There are still several distros out there with their own value adds and flavors so rest assured that as a development team, we are still fully dedicated to the continued development and greater FreePBX community that helps make this such a great project. For those of you who may be looking for alternatives though with some of the coming changes in this space, we will be very happy to welcome you on board!

[b]Philippe[/b] – On behalf of the FreePBX and Schmooze team!

Online Upgrade to 2.9 Beta Now Available

If you’ve been wanting to help test but were avoiding the extra steps of loading the 2.9 Version Upgrade tool manually then now is your time to hop on board and help give us the additional coverage we need to make 2.9 final! Simply go to Module Admin on your 2.8 system and check for updates as you always do and this time you will see the 2.9 Upgrade Tool available for you to download and upgrade. Not on 2.8 yet? (Shame on you!) Just upgrade from the version you are on to the next version and keep up the process until you are on 2.9.

We’ve had a decent amount of coverage and have talked to several testers running production systems on the 2.9 Beta which has led us to publish the 2.9 Upgrade Tool and help increase the testing so we can move 2.9 to a release candidate. At this point, we are effectively in feature freeze so other than minor tweaks that we may push through, you should only see bug fixes coming in. Something to remember, a large portion of the bug reports that we get are often issues from previous releases that happen to be exposed during the increased testing which occurs with new release cycles. Often, you will only get those fixes on the new release!

What has changed in 2.9?

As is always the case, the best and most exhaustive way to see what is going on is to have a look at the consolidated information in the [url=/trac/milestone/2.9]current (2.9) milestone[/url] where you can see as of this writing there are 491 closed tickets and only 13 open tickets. Beyond that, load it up and try. There are many great new features including some which have been requested for years now!

I’ve also tried to provide some editorial updates on key areas within these blogs. Last time I discussed the [url=/news/2011-02-28/version-2-9-amportal-conf-advanced-settings-im-confused]Advanced Settings (replacement for amportal.conf)[/url] changes and what was behind those. Today I’ll talk about something a little more subtle, those new Repository checkboxes and why did it change from before.

Module Admin Repositories

Upon upgrading you may notice the “Standard/Extended Repository” select box is gone and in its place are four checkboxes with:

[list] [*]Basic

So what is this all about or is it simply the same as before with checkboxes instead of a select box? And why are there multiple repositories anyhow?

The reason we have categorized the different repositories is to help set a level of support expectation when you are choosing modules to download. As a project made up mostly of volunteer developers our resources can be stretched thin. As such, we have tried to categorized the different modules based on a combination of usage within the community and commitments within the development team to provide timely support. This has led to the first 3 primary categories. The modules that are in the Basic category are considered prevalent and thus critical and as such, we make a strong effort to address important issues in those modules quickly. The Extended category still has the core development team’s commitment to support these modules but they are often used by a much smaller percentage of the community and as such, the level of responsiveness to issues on these modules may be significantly reduced. The Unsupported category includes a list of modules that do not have the core FreePBX development team’s support. This does not mean that none of us will work on these modules and in fact we often do. These modules typically have a single contributing author who is backing them, or someone who has adopted the module. They are kept in the online system based on the demand from the community to have them available and some sort of track record that someone is looking after them.

The last category, the Commercial category, is not currently used but we do have plans for it. There are several commercial modules available from various sources and no centralized way to make the community aware of those modules. Although we strongly believe in the process of Open Source we also have no problems with companies producing specialized modules that they wish to make available for a fee. As long as they are not violating the GPL or any other license, which means they have 100% of the copyright ownership of their code, then we are very happy to see such modules further enhance the very rich FreePBX eco-system. The Commercial repository will be a way to access and download such modules. The licensing and purchase process will depend on where the modules are coming from. We’ll talk more about this before going online with any such modules.

A bit more technical – what’s going on behind the scene?

So what is really going on behind the scenes with these different repositories? The actual categories are nothing more than tags in the master XML file that is accessed by Module Admin when you check for online modules and updates. The internal mechanism has changed a bit from the Standard/Extended select box of 2.8 and prior. In the previous releases, there were two different XML files for the two different repositories. This created some very annoying artifacts when switching between the repositories such as reports of new modules when there were none, or extended modules showing as only locally available when switching back to the Standard repository. These have all been rectified by the new design since there is a single XML file regardless of what you choose, thus no more of these artifacts.

First, if you un-check all of the repositories and check for updates online, you will be informed of any updates available for all installed modules on your system. You will not be presented with any new modules available. Once you start selecting repositories, you will also be presented with any modules within those repositories that you do not have installed. Once installed though, you do not have to have that repository checked to be informed of updates, it will always check based on what is currently installed on your system. This can be quite handy for two similar scenarios. If you are installing a system new, you may want to include the Standard repository and click install all, knowing that you are limiting your system to just those modules. Similarly, you can setup your system as needed choosing modules from any of the repositories that you need. Once setup, you can un-check all the repositories allowing you to check for updates online and then choose the upgrade all option knowing that only installed modules will be upgraded and no new modules will be presented.

So the changes are more than just moving form a select box to the checkboxes and should enhance your experience while getting rid of some annoying past artifacts. For now, the sun is shining outside so it’s time for me to go have a life. Happy testing!

Philippe – on behalf of the FreePBX Team!