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. Once submitted, the issue will be triaged by the core team and then, depending on the specifics of the patch, it may be put up for review on reviewboard . Your peers will review the code and provide feedback to help ensure it fits the Asterisk project's coding guidelines and quality standards. It'll be up to you and the community to test that code and ensure it works in production.
Once reviewed and tested , the code may go up for commit. Generally commit access will be granted to those developers who have been active a while, write code up to the standards of the project and who have contributed plenty of code, testing and reviews.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. There is a history to the code in Asterisk source, and 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.