FreePBX is a true Open Source development effort. Providing GNU GPL licensing (or equivalent) is all that is required to make a project Open Source. However, obtaining true community involvement is what makes a good project become great. This means transparent access to the project's activities and a development community with access to the project that is not limited to a sponsoring organization. These values are what fuel a really successful project.
The FreePBX Project uses the Atlassian JIRA application in order to tightly integrate the SVN Activity, Ticket system and Development Wiki. We have integrated this system with the main site so that you are signed on to both sites when you create an account and login to the system. Without an account, you will not be able to submit tickets but will have access to view everything.
Access to Source
The FreePBX project provides transparent access to its legacy SVN and new Git version control repositories which means you can view all changes, in real time, that are done to the project before and after they are made available as general releases. The Git repository is where all new work is done and is the active repository for versions 2.10 and beyond. All releases prior to 2.10 are in the legacy SVN repository which has been frozen aside from any future Security fixes that we choose to push down.
Bug Tracking and Feature Requests
There are thousands of bugs (mostly closed) and feature requests that are submitted form both users and the development community. Any authenticated user can file bugs and feature requests and any user can review them.
Community Design and Development
In addition to taking input and feedback from the community at large, FreePBX tries to keep its design and road map plans transparent and accessible. This means ideas are discussed in the Forum, in the Wiki and in the #freepbx-dev IRC channel. Live interaction can also be extremely beneficial, so many phone conversations do take place (after all we are all about phones...). We try hard to document the content of these conversations into the Wiki to further benefit from community review and input.
The Development Wiki lists many ways to get involved. If you want to develop a good way to start is to contact one of the active developers. You can PM them, or you can get onto the Development IRC channel #freepbx-dev and make contact. SVN access is provided to developers similar to other Open Source projects. When a new member gets involved, they provide patches and work with existing developers. After their work is evaluated over a period of time and is found to be of good quality and judgment they are offered access.
Beyond code development there are many ways that you can help. Translations are important and you do not need to be a developer to help in this area. We are aware that there are parts of the code with some limitations today that you might run into. We will work with you on those. We are looking for a Developer who would like to take the lead on the translation subsystem and help us tie up any loose ends that may be needed.
Bug marshals and testing. As bugs get reported, it can be extremely helpful to have some testers who are able to review the bugs, confirm the issues, request additional information from the reporters and in general help us filter the bug reports and prioritize them. Get in touch with the core team if this is something you can help with.
Documentation, Documentation, Documentation
The more quality documentation that exists in a project, the more useful and valuable it becomes. This includes creating original content whether it be How-To Guides, Module Documentation or other forms. It also includes editing existing documentation for correctness and completeness and helping to get the site into a more standardized and organized form. If you have expertise in this area and would like to help drive it, please contact us.
Development Documentation is critical as well. If you are a developer, you probably know that this can be a weak point for many. There is a lot of information on the Development Wiki but it is also a priority of ours to put some effort into cleaning and updating the documentation, organizing it and augmenting it to make it easier for new developers to get involved.
Contributing New Modules
If you have a new module you are working on or want to contribute, there is a Contributed Modules branch in the FreePBX SVN repository where new modules can start their lives. You need only request SVN write access to that branch for your new module and it will be provided. Having your module their will give it more visibility to both developers and users. Some of these modules eventually get moved to an official module branch in FreePBX, which means they will be supported by the project team and show up in the Module Admin GUI.
Starting with the FreePBX 2.6 branch, the Module Admin GUI includes access to an Extended Repository in addition to the standard module branch supported by the project. The modules included in this Extended Repository will be nothing more than the set of standard modules plus a selection of modules from the Contributed Modules directory that are commonly known to work well by the community, appear to be maintained by the contributing author or others who have gotten involved, and are considered useful to a fairly wide audience of users. This means that access and visibility to these modules will be as easy as it is today for any standard module that shows up in the Module Admin tool. The only real difference is that the project's core team of developers are not making an implied commitment at the moment to take on the workload and responsiveness of supporting these Extended modules for one reason or another.
What We are Currently Looking For
We are always open to involvement of all forms as discussed above. In addition, we would love to see some individuals step up to the plate and help us with the following areas:
CSS Styling Experts with Excellent IE and FireFox knowledge
Developers don't always make the greatest Artists which is why there are Developers and there are Designers. For both the Website and the FreePBX Product we constantly struggle to get the Styling correctly for FireFox, Internet Explorer and other browsers. The different levels of compliance and other issues and bugs between browsers make for a bit of a challenge. We think we do a pretty good job but we know we are not Artistic Designers. If this is a strength and you have interest, we would love to hear from you.
This is always an ongoing need. The code base is developed in PHP so knowledge of PHP based web application design is clearly valuable in getting active. Knowledge of Asterisk/Dial Plan generation is not necessarily critical. It is clearly a value add but there is also need for the Web Application development that can be augmented by team members who have a very strong grasp in the Asterisk dial plan generation.