Roadmap
0.8.3
Gem-based components
This feature will extend the existing Adhearsion plugin system by allowing components to be installed as system-wide gems. The big advantage of this approach is components, especially those that come with Adhearsion by default, can be upgraded without a tedious manual installation process.
0.8.4
Call Routing DSL
The Call Routing DSL is a way of de-coupling call routing logic from the dialplan and other parts of the framework. The dial() method will simply take a number and the logic for passing that into a trunk will be handled by these user-defined call routes.
0.8.5
Expanded configuration file generators
This is actually a feature already mostly implemented, but before it's thoroughly integrated into the rest of Adhearsion, things such as the call-routing DSL, new components system, new AMI library and new events system must be implemented properly. As a note, the configuration file generators of Adhearsion will work especially well when dealing with Asterisk clusters, helping keep config file in sync across nodes. The generators will also probably replace Rubigen, the current library used by Adhearsion to aid generating new projects with the "ahn" command.
0.8.6
Migrate Adhearsion tests back to RSpec
Presently Adhearsion mostly uses a Ruby testing framework called Test-Spec, though it has a much smaller community and not nearly the number of features as a competing framework called RSpec. Adhearsion was once on RSpec quite a while ago and certain portions of the Adhearsion codebase are tested with RSpec but, in this release, it'll be back on it entirely. It's a good rule of thumb for serious programming efforts to periodically refactor their unit tests and this will be good timing for the due maintenance.
Application testing framework
Testing individual telephony applications is extremely difficult. The innovations being rolled into Adhearsion before this release will dramatically help the testability of telephony applications. After this release, all applications will be relatively testable to ensure QA programatically. Some of this functionality will be built upon SIPr.
0.9.0
FreeSWITCH compatibility
FreeSWITCH is another open-source telephony engine which has been catching on over the past couple years and offers some interesting benefits to application frameworks like Adhearsion that Asterisk presently cannot offer. Adhearsion's dialplan and other framework features will be available to FreeSWITCH-powered Adhearsion applications.
YATE compatibility
Yate is a open-source telephony engine which promotes the philosophy that, with a good API exposed, it should be possbile for virtually any kind of application to be built atop it. YATE doesn't have things such as voicemail, queues/agents, a featureful conferencing abstraction or other common FS or Asterisk things, leaving that to Adhearsion to implement. This is actually ideal, though it's not certain how possible or easy it will be to implement these atop YATE.
Features not assigned to a milestone yet
These are ideas that aren't fully thought out yet.
Alarm system
This will allow Adhearsion to notify the project maintainer of certain failures within an Adhearsion process and allow the maintainer to recover from them.
EventMachine
EventMachine is a third-party library that essentially allows applications that make heavy use of sockets and events perform much better by utilizing the kernel timer and evented networking. Unfortunately if we migrated to EventMachine today we would break JRuby compatibility. There is a separate project within the EventMachine world to rewrite EventMachine's native extensions in Java for JRuby compatibility but, unfortunately, the project is still far behind.
Ruby 1.9.1 Compatibility
Unfortunately many third party gems don't work with Ruby 1.9.1 (or even 1.9) yet.
Older milestones
0.8.0
events.rb / Theatre
New Adhearsion applications now have an events.rb file in which various event callbacks can be handled. This is primarily useful for specifying custom application-level logic for components or framework features.
New Components system
The existing object-oriented component system will be replaced with one which is method+module based.
New AMI library
The existing AMI library will be replaced with a refactored, cleaner version which is more tightly integrated with the new events.rb system.
0.8.1
Sandbox Component
New Adhearsion applications now have a Sandbox component to be used with the Getting Started guide. The component allows incoming Asterisk AGI calls to be received by Adhearsion running behind a firewall, by connecting out to a reverse AGI proxy on the Adhearsion Asterisk server.
0.8.2
Only minor bug fixes in this release.