Archive for category Uncategorized
Elastix 2.0 has been released!
Posted by admin in Uncategorized, elastix on August 4, 2010
It has been over two years since we released Elastix 1.0. Almost from that same moment we began to plan and develop what would become Elastix 2.0. It was a long period of hard work, but the new distro is finally ready to see the light. Thanks to the whole community for the incredible support. Special thanks go to the beta testers mailing list, whose members tested the product for several months before its release.
Asterisk 1.6.0 and 1.6.1 Branches Switching to Security Maintenance
Posted by admin in Uncategorized, asterisk on May 13, 2010
The Asterisk 1.6.0 and 1.6.1 branches are now nearing their full maintenance mode period and will be shortly switching to security fixes only. Administrators are asked to migrate to the Asterisk 1.6.2 branch for continued bug fixes if they are required. The current set of release candidates for Asterisk 1.6.0 and 1.6.1 are 1.6.0.28-rc1 and 1.6.1.20-rc1 but a second set of release candidates will be created later today as some additional fixes have been merged into the branches.
Developers are asked to stop merging bug fix changes into these branches as the only changes should be security related.
More information about the maintenance periods for branches, please see http://www.asterisk.org/asterisk-versions which contains a table outlining when branches will move between the various maintenance cycles. Currently Asterisk 1.4 and 1.6.2 branches are scheduled to move to security fix only modes in December of 2010, although that date is likely to be extended until Asterisk 1.8 is fully available.
Installing the Asterisk Test Suite
Posted by admin in Uncategorized, asterisk on April 29, 2010
The Asterisk Test Suite is a way of developing external tests to Asterisk in order to test for functionality differences between different versions of Asterisk. By creating automated tests you are able to verify functionality you depend on remains undisturbed by changes in the code base. Tests you write can even be submitted back to the Asterisk project in order for them to be included directly in the test suite where the automated testing framework can execute the tests so developers will be alerted if a change they make causes a test to fail.
In order to write these tests we need to be able to run the test suite on our development machine (typically a virtual machine or some other box which you won’t be using for production). We’ll be installing the test suite on an Ubuntu Server 9.10 along with the dependencies, then running the automated tests. Writing automated tests though is beyond the scope of this document. See the README.txt file in the testsuite/ directory for more information (http://svn.asterisk.org/svn/testsuite/asterisk/trunk/README.txt).
We’ll be starting with a fresh, minimal install of Ubuntu Server 9.10, so once you’ve gotten that installed, feel free to move on.
Installing Dependencies
Before we get started building the test suite, we need to install the dependencies it requires. The following applications are necessary to run all the currently developed tests, but additional dependencies surely will be required in the future. The current list of dependencies is available in the README.txt file within the testsuite/ repository (referenced earlier). Don’t worry about installing all these dependencies now, because we’re going to step through all the applications you need to install throughout the post.
- SIPp
- python >= 2.4
- python-yaml
- bash
- asttest
- StarPy
- python-twisted
Asterisk community services now IPv6-enabled!
Posted by admin in Uncategorized, asterisk on April 19, 2010
As most people who have been following industry news are probably aware, the move to IPv6 addressing is getting underway in a big way right now, as worldwide the IP address registries are scrambling to recover ‘lost’ IPv4 address space from companies/institutions that were granted large chunks in the past. In an effort to help with that transition for the Asterisk community, we’ve IPv6-enabled many of the community services you know and love (through the use of an IPv6 tunnel from tunnelbroker.net). Users should be able to access these sites using IPv6:
https://reviewboard.asterisk.org
Enjoy!
Road Trip: Digium|Asterisk World – UCEXPO London
Posted by admin in Uncategorized, digium on March 9, 2010
We are happy to report that Tristan Barnum, Steve Sokol, Malcolm Davenport, Jim Butler and Schuyler Deerman have arrived safely in London and are excited to be attending the UCEXPO event! If you are in the neighborhood, please stop by the Olympia Exhibition Centre to learn more about Switchvox SMB 4.5, Skype for Asterisk, AsteriskExchange and all the latest news from Digium.
Digium presentations:
Tristan Barnum – Wednesday, March 10th – 13:50PM – 14:20PM – Switchvox as an SMB Solution
Asterisk is being used all over the world as the open source core of an incredible (and growing!) number of communication applications. Learn how an open standards compliant solution with a foundation of open source software becomes a more powerful and flexible Unified Communications solution than traditional, proprietary systems could ever hope to be. The cost savings associated with open source and VoIP, in combination with easy to use applications allows for successful deployments affordable for small and medium businesses.
Steve Sokol – Thursday, March 11th – 12:30PM – 13:00PM – Cost Effective UC Solutions with Asterisk and Open Source
The Asterisk open source communications engine serves as the “glue” of the UC universe. Even before the term “unified communications” was in vogue, integrators used Asterisk to build low cost, high value solutions. Asterisk’s open interfaces make it easy voice-enable business processes. Asterisk’s radical price point makes it affordable. In this presentation Steve Sokol, Director of Asterisk Advocacy for Digium offers a primer on building custom UC solutions with Asterisk and other open source technologies.
For more information please visit www.ucexpo.co.uk/Seminars/Digium-Asterisk-World-London

About Asterisk 1.6.2 Release, Version Numbering, and the future Asterisk 1.8
Posted by admin in Uncategorized, asterisk on January 29, 2010
About Asterisk 1.6.2
Now that Asterisk 1.6.2.0 (and 1.6.2.1) has recently been released, we thought it wise to create an announcement about some of the new items and changes available in the new feature release, along with where Asterisk is going in the next few months.
As with all new releases, if you plan on upgrading from any previous release be sure you test thoroughly in a test environment, and carefully read both the
CHANGES and the UPGRADE.txt files, which contain useful information about functionality changes between versions.
Some of the new features included in the Asterisk 1.6.2.0 release are:
SIP Changes
- if the channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is set, the sound will be played to the target of an attended transfer
- Added support for subscribing to MWI on a remote server and making the status available as a mailbox. Please see the sip.conf.sample file for more information.
- Added support for ITU G.722.1 and G.722.1C (Siren7 and Siren14) media streams.
DAHDI Changes
- chan_dahdi now supports MFC/R2 signalling when Asterisk is compiled with support for LibOpenR2. http://www.libopenr2.org/
- As of version 1.6.1, Asterisk no longer depends on DAHDI as the sole timing source. In 1.6.2, an additional timing provider was introduced, res_timing_timerfd, which takes advantage of the timerfd API provided by newer versions of the Linux kernel. This timing provider provides much higher performance than the other non-DAHDI timing module, res_timing_pthread.
Dialplan Functions
- Added a new dialplan function, CURLOPT, which permits setting various options that may be useful with the CURL dialplan function, such as cookies, proxies, connection timeouts, passwords, etc.
- Added debugging CLI functions to func_odbc, ‘odbc read’ and ‘odbc write’.
- func_odbc now may specify an insert query to execute, when the write query affects 0 rows (usually indicating that no such row exists).
- func_odbc now supports database transactions across multiple queries.
- Added REALTIME_FIELD and REALTIME_HASH, which should aid users in better obtaining realtime data from the dialplan.
Dialplan Applications
- Scheduled meetme conferences may now have their end times extended by using MeetMeAdmin.
- A new application, Originate, has been introduced, that allows asynchronous call origination from the dialplan.
- Added ConfBridge dialplan application which does conference bridges without DAHDI.
Additional Features
- extensions.conf now allows you to use keyword “same” to define an extension without actually specifying an extension. It uses exactly the same pattern as previously used on the last “exten” line. For example:
exten => 123,1,NoOp(something) same => n,SomethingElse() - All deprecated CLI commands are removed from the source code. They are now handled by the new clialiases module. See cli_aliases.conf.sample file.
- The contrib/scripts/ directory now has a script called sip_nat_settings that will give you the correct output for an Asterisk box behind nat. It will give you the externhost and localnet settings.
- The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and can connect calls in passthrough mode, as well as record and play back files.
Version Numbering Changes
Asterisk 1.6.2 will be the last release in the 1.6 series of feature releases.
The original purpose of the Asterisk 1.6 releases was to change how often a
release was created, in order to allow shorter time periods between versions so
the community wouldn’t have to wait 2-3 years for a new feature. The intention
was to release a new 1.6 version, which included feature additions and
performance increases, every 3-4 months.
Unfortunately, the time frame ended up being closer to every 6 months, so the
original intention wasn’t fully developed. In addition, the numbering scheme
was confusing to some users. (Additional information about the how and the why of
the 1.6 numbering scheme can be read at:
http://blogs.asterisk.org/2009/06/24/about-the-new-asterisk-versioning-method/
)
So after about a year and a half of releases (1.6.0.x, 1.6.1.x, and 1.6.2.x),
community feedback was considered, and all that was learned during the 1.6
release cycle was put together to create a better release scheme, which takes
the advantages of both the long stable release cycles, and shorter feature
release cycles of Asterisk, while adding a layer of predictability allowing the
community to plan deployments accordingly.
Whenever a release is created, it will now be tagged either as Standard or LTS
(Long Term Support). Asterisk 1.4 would be considered an LTS release, meaning it
receives bug fixes for a longer period of time, of at least 4 years. A standard
release would have a shorter bug fix release period of at least 1 year.
After the support period expires, that release would then receive security
updates for at least 1 year (Asterisk 1.2 is an example of this), and eventually
would become end-of-life (Asterisk 1.0), thereby no longer receiving updates.
All Asterisk 1.6.x releases are considered Standard releases.
The next LTS (Long Term Support) release will be Asterisk 1.8, slated to be
branched from trunk around Q2 of 2010, at which point time will be spent testing
and getting it ready for full release as Asterisk 1.8.0.
For more information about the current state of releases for versions of
Asterisk currently available see: http://www.asterisk.org/asterisk-versions.
Upcoming Features in Asterisk 1.8
Asterisk 1.8 is shaping up to be an exciting LTS release which will contain
several performance improvements and many new features. Some of the new features
to look forward to in Asterisk 1.8 include:
- The much awaited SRTP support in chan_sip will be added.
- The chan_mgcp module has added PacketCable NCS 1.0 support for Docsis/Eurodocsis Networks. See configs/res_pktccops.conf for more information.
- The chan_spy module has several new options added, including:
- Added c() option allowing custom DTMF to be set to cycle through the next available channel. By default this is still ‘*’.
- Added x() option allowing DTMF to be set to exit the application.
- Added the ‘S’ option, which makes the application automatically exit once it hits a point where no more channels are available to spy on.
- Added the ‘E’ option, which spies on a single channel and exits when that channel hangs up.
- The MeetMe application now turns on the DENOISE() function by default, for each participant. In our tests, this has significantly decreased background noise (especially noisy data centers).
- A new interface, Channel Event Logging (CEL), is introduced here. CEL logs single events, much like the AMI, but it differs from the AMI in that it logs to database backends much like CDR does.
- A new set of modules were added supporting calendar integration with Asterisk. Dialplan functions for reading from and writing to calendars are included, as well as the ability to execute dialplan logic upon calendar event notifications.
- A new RTP engine and channel driver have been added which supports Multicast RTP. The channel driver can be used with the Page application to perform multicast RTP paging.
- In app_queue, you can now specify a position at which the caller will enter the queue.
- Information regarding the party that a person is currently connected to may be updated dynamically throughout the call. This has the advantage of allowing for the display of a phone to be updated during situations such as a call forward or a transfer.
- A new feature, call completion, will be added. This feature allows for a caller who reaches an unresponsive or busy party to be automatically contacted when the called party becomes available again.
State of FAX (primarily T.38) in Asterisk trunk (planning for 1.8 release)
Over the past year, some of us at Digium have spent many (MANY) hours working on FAX support in Asterisk (even though we’d all prefer to see FAX go away as the obsolete technology that it should be <G>). Some of this work was part of our release of our commercial FAX for Asterisk product, some of it was driven by our desires to have solid FAX support in our commercial PBX products, but most of it was driven by the need to get open source Asterisk (and its community of users) able to use FAX reliably with as many non-Asterisk endpoints as possible.
In Asterisk 1.4 and prior releases, there was limited support for FAX of any kind; Asterisk 1.4 can pass through T.38 sessions on SIP channels, but that’s all. With an open source addon (based on Steve Underwood’s excellent spandsp library), it can have dialplan applications to send and receive FAX over audio (G.711 TDM) links.
During the development of Asterisk 1.6.0, Steve’s FAX dialplan applications were merged into asterisk-addons, and then directly into the Asterisk source tree, where they became the ‘app_fax’ module. In addition, the T.38 negotiation process was redesigned to allow Asterisk applications to actually be T.38 endpoints; this resulted in the ability to send and receive FAX over audio *and* T.38 links.
Once this got into the community’s hands, we started seeing large numbers of bug reports because users could not successfully FAX over T.38 with various ATAs and service providers. I won’t go into the gory details of why this was the case, except to repeat a recent quote from Steve himself on IRC: “The T.38 spec was written after a night of heavy drinking as a joke.”. While that’s not technically true, it is true that compliance with the T.38 recommendation, primarily in the SIP/SDP negotiations area, is very poor across the industry. Producing a T.38 endpoint that interoperates widely is a complex and difficult process, that can only be achieved through hours and hours (and hours) of testing.
As these problem reports got more severe, we took a significant step: we rewrote the T.38 negotiation mechanisms in Asterisk *again*. These changes first appeared in the 1.6.0.14 and 1.6.1.5 releases. The in-tree app_fax application was updated to support these changes along with them, so open source FAX users got the benefits of these changes immediately… and the result has been wonderful. We get very few T.38 negotiation-related bug reports now, and in nearly every case we can point to a misconfiguration or severely broken far endpoint that is the cause of the problem. For many, many people, FAX over T.38 in Asterisk 1.6.0 and 1.6.1 ‘just works’ now.
While all of this was going on, Digium was also working on our commercial Fax for Asterisk product, which provides comparable functionality to app_fax, but uses a commercial FAX stack. When we began the development of this product, we knew that we wanted as many portions of it as possible to end up open source, so rather than build it as a monolithic module, we built two modules: res_fax and res_fax_digium. res_fax is similar to app_fax, in that it provides dialplan applications, dialplan functions, and other associated components to send and receive FAX. However, it does not actually include any FAX stack; for that, it provides a plugin interface that allows one (or more) additional modules to be loaded to actually provide the FAX technology implementation. It *does* handle all T.38 negotiations, however, using the 3rd generation T.38 implementation in Asterisk.
Of course, res_fax_digium is Digium’s commercial plugin module for res_fax, and we have been delivering the combination of those two modules to our Fax For Asterisk customers for quite a few months now. (Unfortunately it has taken longer to get these modules updated to match Asterisk’s T.38 API than we would have liked, but that’s not important for open source users). Recently, with a final set of changes to the UDPTL stack in Asterisk, we’ve reached the point where we think we’ve implemented all the parts of the T.38 recommendation that we can implement, in as compatible and interoperable a way as we can, with a few configuration options that provide the ability to override broken behavior by far endpoints when necessary. In fact, the combination of the very most recent Asterisk open source releases and either app_fax or res_fax+res_fax_digium now successfully interoperates with quite a few T.38 ATAs we have in our lab and a couple of service providers, and we’re testing more of both as I write this. In nearly every case, this works *without* requiring any configuration changes in Asterisk or the FAX applications, which is good news for end users indeed. We’ve even extended (and fixed) the ‘faxdetect’ functionality in chan_sip so that it works as users expect it to, in a similar way to the faxdetect feature in chan_dahdi.
Now that this point has been reached, it’s time for us to act on our plan to open source res_fax; to that end, I’ve created a new branch in Subversion (/svn/asterisk/team/group/res_fax) based on Asterisk trunk, and merged the most recent version of res_fax into it, updating it to compile against trunk’s recent API changes. By the time Asterisk 1.8 is released, res_fax will *replace* app_fax, as it provides the identical dialplan applications (same names, options and operations), but has additional features and compatibility functionality. To achieve this, though, we’re going to need a res_fax_spandsp plugin module, so that the combination of res_fax + res_fax_spandsp provides the same functionality as app_fax did, and it will be a seamless transition for Asterisk 1.6.x FAX users to move to Asterisk 1.8 when they are ready. We’ve tasked one of our developers to start working on this over the next few weeks, and I’m sure you’ll see some initial steps toward that end shortly. For those of you who have contributed improvements to app_fax and use it heavily (or even those who just use it and can provide testing), I’d encourage you to post a comment in the thread on the asterisk-dev mailing list if you are interested and willing to assist in this effort.
Now, on to even more interesting stuff: as I’ve worked on this over the past 6-8 months, I’ve also spent time finally trying to understand how best to fit TDM-T.38 FAX relay into Asterisk. I know that there are number of community developers who have been working on this, and there are multiple patches in the issue tracker that provide this functionality in various forms. There was also an attempt by Daniel Ferenci to start a discussion on the asterisk-dev list about the best long-term approach for relay support, but he didn’t really get any responses.
Once res_fax and res_fax_spandsp are ready for users to use, it’ll be time for them to be extended to support FAX relay as well. I would like to propose that this be implemented by res_fax providing a new API, a ‘FAX relay session’, that a channel driver (one which services TDM channels) can use to offer T.38 support to the rest of Asterisk, as if it supported T.38 natively. We can start a separate discussion on the list to talk about particulars, but I believe this is the cleanest approach with the least impact on existing code in Asterisk, and I’d like to get opinions from other interested parties and discussion going.
In summary, it appears that Asterisk 1.6.x has achieved pretty solid FAX support (especially over T.38), and that with Asterisk 1.8 we’ll be able to improve it further and begin moving towards FAX relay support as well. For all of you who still insist on using this obsolete technology <G>, I hope this has provided what you need to be able to keep using Asterisk
in every place that it makes sense in your networks!
AsteriskForge Now Open
Posted by admin in Uncategorized on October 30, 2009
A couple of weeks ago at AstriCon we announced the opening of the AsteriskForge, a collaborative development site for all kinds of Asterisk-related open source projects. The idea behind AsteriskForge is to create a public center for the development and distribution of open source code (both binary and source) that connect with Asterisk.
As a challenge to the community, I’m offering a $25 gift certificate from ThinkGeek to the first 10 working software projects (i.e. projects with useful, downloadable, runnable, Asterisk-related software) to move in and set up shop in the Forge. (Sorry – no hardware projects, artwork or poetry qualify for this promotion.)
The winners will be picked by the official Digium Prize Selection Committee (me and whomever I can round up in the Digium cafeteria) and all decisions are final. If we have to debate the usefulness of an app, it’s probably not useful, so no stuffing the ballot box with Perl AGI scripts that read back the current time. May the forge be with you…
Forge Q&A
I’ve received a few questions about the Forge since the announcement and would like to share the answers with everyone. Please let me know if you have any additional questions.
Q) What is the AsteriskForge?
A) AsteriskForge is a web site that provides free development and hosting tools for Asterisk-related open source projects.
Q) Where is AsteriskForge?
A) http://forge.asterisk.org
Q) What tools does AsteriskForge include?
A) AsteriskForge is built on a platform called GForge Advanced Server. It includes source code control (SVN), file download hosting and tracking (just counts, nothing invasive), mailing lists, forums, documentation, development team management, project management and road-mapping.
Q) Who can use AsteriskForge?
A) Any open source project with a focus on extending or integrating with Asterisk. The project must be released under an OSI-approved license.
Q) What are examples of the kinds of things that will be hosted on AsteriskForge?
A) Dialplan and AEL snippets (we have a special section for snippets). AGI scripts and programs in various languages. Desktop tools including screen pop utilities, operator consoles, CRM integration components, and monitoring utilities. Server-side integration tools including unified messaging and collaboration components, scalability and redundancy solutions, web services mash-ups, etc. Administration GUI tools and projects. Prompt packages. Industry-specific (vertical) applications. Power and predictive dialer systems. Pretty much anything that connects with Asterisk.
Q) Can I mirror my existing Asterisk-related open source project on AsteriskForge?
A) Yes. We are happy to host mirrors of existing Asterisk-related projects. We do require that source downloads be included for each mirrored project, not just binary installers.
Q) Is AsteriskForge open to non-software projects?
A) Yes, though the tools tend to be fairly software oriented. We are open to hosting documentation, voice prompts, hardware CAD/CAM files, even Asterisk-related poetry if it tickles your fancy.
Q) Does Digium get to use AsteriskForge code in commercial products outside of the terms of the selected open source license?
A) No. The copyright and commercial rights to the code remain with the author(s). Use of AsteriskForge is not predicated on accepting the Digium Open Source Software Project Submission Agreement.
Q) What other rules and regulations should I know about?
A) You can’t post stuff you don’t own. We’ll honor take-down notices if they are deemed to be legitimate by our legal staff. No development of proprietary commercial products – you must release your code as open source. We won’t host .ISO install images or other huge binaries. The full list of terms and conditions are available here: http://www.asterisk.org/forge/terms
Q) Is the core of Asterisk moving into AsteriskForge?
A) No. There’s already a full set of development tools and processes in place for Asterisk, and moving to the AsteriskForge site would be disruptive to the process. We will continue to use the existing issue tracker, mailing lists, review board, forums and subversion repositories for Asterisk.
About the new Asterisk versioning method
Posted by admin in Uncategorized on June 24, 2009
(Originally posted at Leif Madsen’s blog.)
Recently I have been seeing more and more questions about how Asterisk is being released now, and what the 1.6.x versions really mean. I’ll try and clear up some of your questions and make it more clear as to how Asterisk versions work. First, lets talk about the Asterisk 1.2 and 1.4 branches.
Previous release methodology
When we just had Asterisk 1.2 and 1.4, all new development was carried out in trunk (it still is) and only bug fixes went into the 1.2 and 1.4 branches. Currently, the 1.2 branch has been marked as EOL (End of Life), and is currently only receiving security updates. Bug fixes are reserved for the 1.4 branch. This means that until 1.6 came along, all new development was done in trunk, without the ability for people to get access to new features and functionality until the 1.6 branch was created. It’s not to say the new functionality wasn’t available, but with all the changes that can happen in trunk, running a production server based on it would require a very Asterisk savvy (and C code savvy) administrator.
Before we talk about 1.6, lets make sure we understand what trunk, branches, and tags mean.
Branches, and Tags, and Trunk; oh my!
Asterisk development is basically a linear process. All changes happen one after the other, and new features are always put on the end. This is referred to as trunk. All the latest changes to core Asterisk code, new features, and major changes take place here. This is why running trunk in production is not recommended, because the developers essentially have free reign as to what goes in here.
Note: with the advent of review board, the larger commits that go into trunk are of much higher quality, as large changes are not put into trunk without any sort of peer review. The review board application allows these larger changes (such as new features, major core restructuring changes, etc.) to be reviewed by other developers to find common coding issues that would otherwise have had to be found in the wild.
Like a tree, the branches grow from the trunk. These branches are referred to as 1.2, 1.4, etc. A branch is a snapshot of the trunk at the time of creation, and from there, has its own timeline. When a bug is found, fixed, and resolved, the resulting commit is then placed into trunk, and any branches that it effects. When a new feature is created, it is only put into trunk, thereby leaving the branches in a relatively known state that is safe for production use.
From a branch, we create snapshots in time called tags. These tags are the version numbers and tar ball files you can download from the Asterisk.org website. These tags are numbered releases that never change, such as 1.4.18, 1.4.22, etc. In image 1.1, you can see a visual representation of the Asterisk branching and tagging process where the x-axis represents time.

Image 1.1 – Visual representation of Asterisk release branching and tagging.
Understanding the Asterisk 1.6 release process
With the advent of Asterisk 1.6, the release process has differed slightly, in that there are multiple 1.6 branches supported at any given time. The reason for this is because the time frame between the creation of the 1.0 & 1.2 branches, and the 1.2 & 1.4 branches was so great (approximately 1 year in the former, and 2 years in the latter!) that new features would sit in trunk, and many changes would take place over that period of time. Due to the rapid development of Asterisk, these changes were grandiose and thus the user experience between these releases were such that major changes had taken place. Backwards compatibility was difficult to maintain, and simply, who wants to wait 3 years to get the next great feature?
So with Asterisk 1.6, a new release process that allows branches to be created in a more regular fashion (approximately 6-8 months) was developed. Whenever a branch is created, we now update the 3rd most significant digit, which represents a new branch with new features, and the 4th most significant digit is now the tag number in that release. So for example, we have the branch Asterisk 1.6.0, which is a branch created from trunk at a period in time, and within that branch, bug fixes are performed, but no new features are added. The tags from this branch will be version numbers such as 1.6.0.0, 1.6.0.1, 1.6.0.2, etc. Then some period in time, a new branch will be created from trunk such as 1.6.1 (note that the 3rd significant number has increased by one). Within this branch will be new features and changes — that different of the 1.6.0 branch. Within the 1.6.1 branch, we’ll have tags just like all our other branches, such as: 1.6.1.0, 1.6.1.1, 1.6.1.2, etc.
This process continues throughout the lifetime of the 1.6 series of Asterisk. The trunk continues to have development, new features merged and potential core changes to make Asterisk more efficient (which would otherwise be deemed too invasive for a release branch) are committed. The regular release nature of this process allows less drastic changes between major versions (and note that the difference between a 1.6.0 and a 1.6.1 *is* considered a major version upgrade, similar in nature to an upgrade between 1.2 and 1.4, but not quite so drastic), and access to new features on a more regular basis. Because these are considered a major change between versions, it is in your interest to read the UPGRADE-1.6.txt files in your Asterisk source, and to test thoroughly before deploying in a production environment.
It should be noted that at any given time, there will be at least 3 branches of the 1.6 nature maintained. That means bug fixes and maintenance will be performed on your preferred branch for an extended period of time. For example, because there can be code refactoring, and core changes between 1.6.x versions (where x is the major version number), you may wish to maintain your production system on the 1.6.0 branch while your development system is running the 1.6.1 series. This way you don’t have to worry about moving your 1.6.0 system immediately to a 1.6.1 based branch as soon as it is created. Image 1.2 shows a visual representation of the 1.6 release process, which should look similar to the release process between 1.2 and 1.4. The x-axis still represents time, but in this case, time is not over quite so long a period.

Image 1.2 – Visual representation of the Asterisk 1.6 release process
So which version do I use?
It always comes down to the question of, “so which version do I use?” and this can be a tricky one to answer. It probably boils down to what features you need to utilize. By checking the CHANGES file in your Asterisk source tree, you can see what changes have happened between each of the various branches (i.e. the differences between 1.6.0 and 1.6.1). While writing this article, I was asked by someone on IRC the question, “What version do you recommend?”, and the answer I gave was, “I recommend the version that has the features you require, and that passes the testing you have done prior to rolling it out”. He followed up with, “But they all have the feature I require!”, to which I responded, “Do some forward planning, and try to determine that the version you pick has the features you may possibly require in the future so that you don’t have to re-architect your system sooner than you want”. This can save you a lot of time and effort. Do some testing, and play with all the various branches on a development server. See what dialplan applications and functions exist, and how they work. Try to determine what kinds of things you need your phone system to do, and make sure the version you pick can do it. You can also make use of the various mailing lists and IRC chat rooms (asterisk-users mailing list, and #asterisk IRC channel) to ask specific questions if you’re not able to find an answer.
Hopefully this has made the release process a bit more clear!
Google Summer of Code 2009 Projects
Posted by admin in Uncategorized on April 23, 2009
The accepted projects for Google Summer of Code 2009 have been announced. I have posted information about the students participating with the Asterisk project to the asterisk-dev list and russellbryant.net.
Congratulations to all accepted students!