The Asterisk Community has become the top influencer in VoIP with ambassadors and contributors from every corner of the globe. Leading the effort are the skilled and dedicated developers who contribute thousands of lines of code and cutting-edge features to Asterisk. Thanks to the community, Asterisk is now at the forefront of open source VoIP development and changing the telecommunications market at a fast disruptive rate.
Digium and the Asterisk Community want to enable and encourage new Asterisk development talent. Interested developers should review these resources and decide how they want to contribute to the Asterisk revolution.
What kind of a developer are you?
Asterisk Integrator or Solution provider
If you are looking to learn Asterisk and build applications and solutions with it, then you'll want to head to the Getting Started section. There, you'll read about various applications of Asterisk and find out how to start your journey to becoming an Asterisk expert.
Asterisk source developer
All you need to know about Asterisk development is located on the Asterisk Wiki. If you already know what you are looking for, then dive right in. Below, you'll find some helpful tips to lead you to the right place.
Basics of Asterisk development
Get source code
There are two ways to get access to the Asterisk source code: tar balls from the downloads page for the latest branch releases and release candidiates, then subversion for the very latest source in a particular branch or trunk itself. If you are going to be contributing source, then subversion is the route to go.
Coding guidelines and best practices
If you are already familiar with Asterisk and you have the source code, then you may want to start coding. The Asterisk coding guidelines include reference information, best practices and other bits of useful information for a developer. You can find all of this information in the development section of the Asterisk Wiki.
Submitting code to the project
Good peer review typically results in quality code. Once you have read the coding guidelines and have actually written some code, you will want to read through the Asterisk issue guidelines and then submit a patch to the issue tracker. After you contribute a patch, bug marshals will triage the issue per the Issue Tracker Workflow. At this time, it is appropriate to put your patch up for code review. The Asterisk project uses Review Board for peer review of patches - for instructions on how to submit your patch to Review Board, see Review Board Usage.
All users who have signed a license contributor agreement have access to Review Board and are encouraged to participate in the peer review process. This includes not only review of your patch, but review of other patches as well.
Once reviewed and tested, the code may go up for commit. Commit access is given to those developers who have been active a while, write code up to the standards of the project, and have demonstrated a track record of being a good participant in the project. It's really about a trusting relationship with other developers in the community.
Subversion is currently used to manage the commit process for those that have access.
Getting in touch with other developers
Asterisk developers don't work in a vacuum. The people who know it and work with it on a daily basis collaborate in various places. Online, you'll find them primarily on the asterisk-dev mailing list and #asterisk-dev IRC channel. You'll run into them in person at AstriDevCon, AstriCon (the Asterisk Users' Conference) and other Asterisk-related user groups and events. You may want to read more about the mailing lists and IRC channels before joining.
Lifecycle of Asterisk
Asterisk has been around since 1999 and is a mature platform. The majority of common features and functionality desired in a telecommunications platform have already been implemented into Asterisk. That being said, given how quickly technology changes; support for new protocols, devices and environments are added on a regular basis. Bug and security fixes are on-going depending on the partcular version of Asterisk in support.
When you are considering which version of Asterisk to use or develop on, you'll want to review the Asterisk versions page on the Asterisk Wiki to see what is currently supported and for how long.
Future versions of Asterisk are discussed during the planning session held each year at AstriDevCon, held alongside the annual AstriCon users conference. AstriDevCon is essentially a full day of Asterisk development discussons. Other planning and and project strategy decisions occur throughout the year, and are often discussed on the mailing lists and IRC channels.