Skip to end of metadata
Go to start of metadata

FreePBX Development


 

FreePBX is a true Open Source development effort. Providing GNU GPL v2+ 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 GIT 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.

To participate in the FreePBX project you must agree and submit a filled out copy of our code submission agreement: http://literature.schmoozecom.com/EUA/CodeSubmissionsAgreement-r3.pdf (For more information on this Please see our FAQ)

Getting Started

The easiest way to get started is to simply take a look at our bug tracker. We have over 683 issues currently open for FreePBX alone.

Accessing The source

Please take a look at our development documentation for setting up a development environment here: Setting Up a Development Environment

Browsing The Source

You can take a quick look at the source here: http://code.freepbx.org/project/FREEPBX

Here is a list of the last 5 commits made to the FreePBX Project

FreePBX_music (release/13.0): ton of work restructuring and reconfiguing this module to classify streaming as custom application instead
Andrew Nagy committed abae9cc on branch release/13.0 in FreePBX_music
ton of work restructuring and reconfiguing this module to classify streaming as custom application instead

· /Music.class.php (-62, +340) | History | Source | Diff
· /assets/js/music.js (-15, +27) | History | Source | Diff
· /functions.inc.php (-133, +6) | History | Source | Diff
· /install.php (-60, +0) | History | Source | Diff
· /page.music.php (-61, +1) | History | Source | Diff
· /views/addstreamform.php (-110, +0) | History | Source | Diff
· /views/bootnav.php (-3, +3) | History | Source | Diff
· /views/customform.php (-0, +89) | History | Source
· /views/filesform.php (-0, +94) | History | Source
· /views/form.php (-0, +0) | History | Source | Diff
· /views/grid.php (-2, +2) | History | Source | Diff
· /views/main.php (-0, +19) | History | Source
· /views/updatecat.php (-110, +0) | History | Source | Diff
FreePBX_Framework (release/13.0): [Module Tag script: framework 13.0.1beta3.61]
Andrew Nagy committed 7b8ec79 on branch release/13.0 in FreePBX_Framework
[Module Tag script: framework 13.0.1beta3.61]

· /amp_conf/htdocs/admin/i18n/amp.pot (-18, +18) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/bg_BG/LC_MESSAGES/amp.mo (binary) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/bg_BG/LC_MESSAGES/amp.po (-19, +19) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/de_DE/LC_MESSAGES/amp.mo (binary) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/de_DE/LC_MESSAGES/amp.po (-19, +19) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/es_ES/LC_MESSAGES/amp.mo (binary) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/es_ES/LC_MESSAGES/amp.po (-19, +19) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/fr_FR/LC_MESSAGES/amp.mo (binary) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/fr_FR/LC_MESSAGES/amp.po (-19, +19) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/he_IL/LC_MESSAGES/amp.mo (binary) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/he_IL/LC_MESSAGES/amp.po (-19, +19) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/hu_HU/LC_MESSAGES/amp.mo (binary) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/hu_HU/LC_MESSAGES/amp.po (-19, +19) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/it_IT/LC_MESSAGES/amp.mo (binary) | History | Source | Diff
· /amp_conf/htdocs/admin/i18n/it_IT/LC_MESSAGES/amp.po (-19, +19) | History | Source | Diff
… 16 more files in changeset.
FreePBX_Framework (release/13.0): FREEPBX-10102 added slider to jqueryUI
Andrew Nagy committed 3505c23 on branch release/13.0 in FreePBX_Framework
FREEPBX-10102 added slider to jqueryUI

· /module.xml (-1, +2) | History | Source | Diff
FreePBX_Framework (release/13.0): update jquery and add button fixes
Andrew Nagy committed 70eaf13 on branch release/13.0 in FreePBX_Framework
update jquery and add button fixes

· /amp_conf/htdocs/admin/assets/js/jquery-ui-1.11.4.custom.min.js (-4, +4) | History | Source | Diff
· /amp_conf/htdocs/admin/assets/less/freepbx/buttons.less (-0, +10) | History | Source | Diff
FreePBX_music (release/13.0): more tweaks
Andrew Nagy committed 548c31e on branch release/13.0 in FreePBX_music
more tweaks

· /Music.class.php (-1, +1) | History | Source | Diff
· /module.xml (-1, +2) | History | Source | Diff

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.

Getting Involved

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 on Freenode and make contact. 

We have recently transitioned to GIT which makes getting involved much easier.  To assist in bug fixes and improvements you may fork one of the submodules on Github at https://github.com/FreePBX/ or https://github.com/FreePBX-ContributedModules. Once you have your code tested and working you can submit a pull request or submit a patch after you have fully completed our CSA on file. All bug fixes and feature requests should relate to a ticket at http://issues.freepbx.org.  If you have written a module you would like included in our contributed repo (https://github.com/FreePBX-ContributedModules) simply create a repo for your module on Github then open a ticket in the bug tracker to make us aware of it and we can mirror your repo.  Remember all code submissions through the bug tracker or through git require a CSA on file.  If you are new to GIT please see our wiki for a general overview.

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. For information on translating go here.

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. 

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.

We have also created a tag in our issue tracker called "patches welcome" for things that seem like solid ideas but we do not have official resources for. A good place to get your feet wet may be in working on one of these issues.

Loading
Key Summary T Created Updated Due Assignee Reporter P Status Resolution
FREEPBX-9989 Call Whisper Improvement Aug 12, 2015 Aug 17, 2015 Unassigned Womble Minor Needs Feedback Unresolved
FREEPBX-9822 Allow users to restrict ability to leave voicemail when setting temporary greeting Feature Requests Jul 23, 2015 Jul 27, 2015 Unassigned Ed Kohler Minor Open Unresolved
FREEPBX-9307 Option to record a message to be played back when the alarm goes off. Feature Requests Oct 23, 2011 Aug 10, 2015 Unassigned Lorne Gaetz Minor Open Unresolved
FREEPBX-9306 Option to Config Ring-Time/Retry-Time/Max-retries for each alarm. Feature Requests Oct 23, 2011 Aug 10, 2015 Unassigned Lorne Gaetz Minor Closed Duplicate
FREEPBX-9299 Allow Wake up calls to forward to a destination upon wakeup cancelation Feature Requests Oct 19, 2011 Aug 10, 2015 Unassigned Lorne Gaetz Blocker Open Unresolved
FREEPBX-8978 Add totals in CDR Improvement Mar 24, 2015 Mar 30, 2015 Unassigned GeekBoy Minor Open Unresolved
FREEPBX-8838 Show busy on phone display when calling an internal extension in use Feature Requests Feb 27, 2015 Mar 02, 2015 Unassigned gmeyer30 Minor Open Unresolved
FREEPBX-8823 Add SDES Support for SIP Extensions for pjsip Improvement Feb 24, 2015 Jun 14, 2015 Andrew Nagy slykens Minor QA Unresolved
FREEPBX-8804 can't playback file from CDR reports Bugs Feb 19, 2015 Feb 23, 2015 Unassigned sr377 Minor Open Unresolved
FREEPBX-8683 Accessing USB Drive Feature Requests Feb 07, 2015 Jun 18, 2015 Unassigned JessicaRabbit Minor Reopened Invalid
FREEPBX-8680 Show only Enabled modules on Module Admin page Improvement Feb 06, 2015 Feb 16, 2015 Unassigned Tim Stauffer Minor Open Unresolved
FREEPBX-8466 Can't make outgoing call with no user logged in. (device/user mode) Bugs Dec 15, 2014 Dec 19, 2014 Unassigned williamj1984 Major Open Unresolved
FREEPBX-8229 CLONE - Fax Config Module Generates Incorrect Error Condition Feature Requests Nov 09, 2014 Dec 18, 2014 Unassigned wardmundy Minor Open Unresolved
FREEPBX-7950 Blocking Inbound Collect calls with $Channel(Reversecharge) Feature Requests Sep 12, 2014 Dec 18, 2014 Unassigned dtobal Minor Reopened Fixed
FREEPBX-7725 "Intra-Company" checkbox in Outbound routes doesn't work for "CID Num Alias" Patches Jul 16, 2014 Aug 18, 2015 Unassigned TracerOute Minor Closed Unresolved
FREEPBX-7691 Device and user mode hint generation problem Bugs Jul 08, 2014 Apr 29, 2015 Unassigned Vanboxtel Minor Open Unresolved
FREEPBX-6893 Unknown/Blocked Caller ID management for each DID Inbound Route (not Globally like provided by Blacklist module). Feature Requests Oct 25, 2013 Dec 19, 2014 Andrew Nagy parnassus Minor Closed Duplicate
FREEPBX-6357 GR-1310 (Call Deflection for PRI) Feature Requests Feb 25, 2013 Dec 19, 2014 Unassigned pshempel Minor Open Unresolved
FREEPBX-5105 Device and User Mode - Intercom/Paging Bug Improvement Apr 26, 2011 Aug 10, 2015 Unassigned Martin Anderson Minor Reopened Won't Fix
FREEPBX-3506 new Follow Me and Group Ring Strategie Feature Requests Feb 03, 2009 Dec 26, 2014 Unassigned fdecher Trivial Open Unresolved
Showing 20 out of 32 issues Refresh

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.

A Note about Third Party Module Development

New module submissions are a regularly occurring event and you will find many modules that have been submitted as tarballs in the Ticket system that are not available in the online system. Why is that?

The FreePBX project is designed as a Framework that can easily accommodate new modules and for that reason, new modules get written and submitted. This does not mean that we put every module that comes along into the project. As the project has matured and stabilized, we are putting a lot more thought into the architecting of the FreePBX as it continues to evolve and mature into a world class product. In order to do that, we need to carefully evaluate what officially enters the system since adopting a module has many implications. We try very hard once something becomes part of the project to take on the commitment of maintaining and supporting it and making sure that future upgrades of the project will continue to work with the Modules that are part of it. If you are thinking about writing a module that you would like to be part of the core project, you should talk with one of the active developers in advance.

This does not mean that the other modules are less valuable or inferior in any way, if we don't adopt them. If you have written a module you would like included in our contributed repo simply create a repo for your module on github. Open a ticket in the bug tracker to make us aware of it and we can mirror your repo.  Remember all code submissions through the bug tracker or through git require a CSA on file.  If you are new to git please see our wiki for a general overview

 

 

  • No labels