XML Documentation of Dialplan Applications and Functions

I posted an update on one of the development projects going on to the asterisk-dev mailing list. We are restructuring the way documentation is managed for the interfaces inside of Asterisk and the first phase of the project will likely be merged soon. Check out the update here.

From the update:

===== Project Background =====

Writing documentation is a huge job. Every time that someone has gone to write documentation on Asterisk, part of the task is always to take the information from “core show application <foo>” or “core show function <bar>” and convert it to some other format. This documentation has been maintained in the source code in a raw string format, and there has been no programmatic way to extract it from the source. This project aimed to improve that situation.

Asterisk 1.6.1-beta1 Now Available

The Asterisk.org development team has released Asterisk 1.6.1-beta1.

While Asterisk 1.6.0 was in the beta and release candidate stage, the development team was also working on merging new things for Asterisk 1.6.1. Now that 1.6.0 has been released, the testing cycle for Asterisk 1.6.1 has begun.

To see the list of new features in Asterisk 1.6.1, see the CHANGES file:


For a full list of changes that have gone into the development of Asterisk 1.6.1 so far, see the ChangeLog:


To download Asterisk 1.6.1-beta1, visit the Digium downloads site:


Please report all issues to the issue tracker, http://bugs.digium.com/.

Thank you for your continued support of Asterisk!

Porting Code to Asterisk 1.6.0

Asterisk 1.6.0 has now been officially released. One of the questions that is going to come up over time is how to port custom code that was written for older versions of Asterisk up to Asterisk 1.6.

For Asterisk 1.6.0, we included a document that describes every C level API change between Asterisk 1.4 and Asterisk 1.6. For more information, see the file doc/api-1.6.0-changes.odt in the Asterisk 1.6.0 tarball.

Asterisk 1.4.22 and 1.6.0 Released

The Asterisk.org development team is proud to announce the releases of Asterisk 1.4.22 and 1.6.0.

=== Asterisk 1.4.22 =============================================

Asterisk 1.4.22 includes a large number of bug fixes for the 1.4 release series of Asterisk. 1.4.22 also includes support for DAHDI. For more information about the transition from Zaptel to DAHDI, please see the following help file:


For a full listing of changes in this release, see the ChangeLog:


Asterisk 1.4.22 is available for immediate download from the Digium downloads site:



=== Asterisk 1.6.0 ==============================================

Asterisk 1.6.0 is the first official release of Asterisk 1.6.

— Upgrade Information —————————————–

Asterisk 1.6 no longer supports Zaptel. It only contains support for DAHDI. For more information on this transition, please see the following help file:


There are a number of other important changes to be aware of when upgrading to Asterisk 1.6.0 from previous versions of Asterisk. For a listing of those things, please see UPGRADE.txt:


— New Features ————————————————

Asterisk 1.6.0 contains new features that were not previously available in an Asterisk release. For a full listing of the features that are included in Asterisk 1.6.0, please see the CHANGES file:


A verbose listing of each individual change that was made in the development of Asterisk 1.6.0 is also available:


— Release Management ——————————————

The Asterisk.org development team has decided on a new release management style for Asterisk 1.6. Previously, a release series was strictly feature frozen for its entire lifetime. The release management guidelines for Asterisk 1.6 were inspired by the Linux Kernel, among a
number of other projects.

Asterisk 1.6 is not feature frozen. Features will be added in point releases. However, effort will be made to ensure that the number of large changes is minimized in a single point release. Even as 1.6.0 is being released, the Asterisk development team is already working on what new things will be in 1.6.1 and beyond. To take a look ahead to see what features have been added for releases that have not yet been made, take a look at the trunk version of the CHANGES file:


Even though new features will be added in point releases of Asterisk 1.6, that does not mean that any deprecated functionality will be removed as has been done between major releases in the past. In fact,
we have decided that maintaining backwards compatibility is of the utmost importance for configuration and external interfaces. C API and ABI compatibility is not guaranteed between point releases. However, things like dialplan applications, functions, and AGI commands will not disappear just because there is a new and better way to accomplish the same thing.

With Asterisk 1.4, once Asterisk 1.4.N is released, Asterisk 1.4.X is no longer supported, where X < N. With Asterisk 1.6, the development team plans to maintain a total of 3 releases at a time. For example, the development team will support Asterisk 1.6.0, 1.6.1, and 1.6.2 until 1.6.3 is released. This means that for the time that 1.6.0 is supported, there may be,, etc. releases that include fixes for regressions found in 1.6.0.

With Asterisk 1.4, the goal has been to make releases every 4 to 6 weeks. With Asterisk 1.6, we aim to release updates in a similar time frame, but it is likely that it will be closer to 6 to 8 weeks for Asterisk 1.6 due to a more strict beta and release candidate testing cycle for each point release.

The number of releases supported and release time frames are not yet set in stone. The development team is interested in adjusting these policies to help meet the desires of the Asterisk community.

— Download —————————————————-

Asterisk 1.6.0 is available for immediate download from the Digium downloads site:


— Reporting Issues ——————————————–

The bug tracking process is one of the best places to get started in the Asterisk development community. Please report all issues to http://bugs.digium.com/. Live discussion about current issues is done on the Freenode IRC network, in the #asterisk-bugs or #asterisk-dev channels.


Thank you very much for your continued support of the Asterisk project!

Astricon, Code Zone Adventures

Allison Smith introduces us to the Astricon Code Zone:


I am feeling especially motivated this year to make good use of the Astricon Code Zone. I seem to do well at working on development projects while I travel. Part of it is probably breaking out of my normal routine. Some of it is because I am stuck on an airplane for hours with nothing to distract me. This time, most of it is because I will be immersed in a very high concentration of Asterisk geeks for a week!

I have been trying to get some thoughts together about what things I would like to work on while I’m there. Here are some things on my mind.

  • Video on Hold – Someone on the asterisk-users mailing list asked if this was supported in Asterisk. It currently is not. However, it occurred to me that it wouldn’t be that hard to add. I have already written a rough draft. I plan to get it tested and finished up in the code zone.
  • SIP Performance – One thing that could be done to improve the performance in chan_sip is to make processing multi-threaded. I have stage 1 of this process completed, which is to run the SIP scheduler in its own thread. I would like to load test this code some more, as well as multi-thread packet processing. I have learned a _lot_ from the long and painful process of making chan_iax2 multi-threaded, so I think this will go over much smoother. Early load testing of the scheduler optimization on a multi-core machine by Joshua Colp showed a performance improvement of 300%!!! I was blown away. Hopefully we can put together some more details about these test cases soon. These results give me a lot of motivation to move forward with completing this work.
  • Distributed Call Queues – We have been talking about this one for years. It keeps coming back up. Some of the needed prerequisites, like distributed device state, are now in place. I have talked to a number of people about what this functionality needs to look like, and I think we’re ready to start developing the framework for it. Lately, Josh has been expressing interest in this, as well. So, we will likely work on this together on the trip.

If anyone has thoughts on things they would like to work on or talk about in the code zone, please share them!

I’ll see you at Astricon.

Astricon, A Time for Celebration

From the full post:

So, after a year of focus on the Asterisk code, I’m ready to get out and meet up with the Asterisk community. I will be spending as much time as possible in the code zone. I love hearing all of the stories of success and new Asterisk applications that I have never thought of. I get most of my inspiration for what new things to work on from these discussions at Astricon. I want to find great ideas, as well as the people that can help conceptualize and bring them to reality. I hope to see you there, so that I can hear your story, and your ideas, as well.