At the 2011 AdhearsionConf, way back in October 2011, the Adhearsion Team made grand promises about this shiny new piece of software called Adhearsion 2.0. We also made, what turned out to be, slightly optimistic statements about the timeline by which we would give you this shiny thing. Well, the bad news is that we missed our target of December 31st. The good news is, we're giving you something to whet your appetite right now.
The Adhearsion Team is pleased to announce the release of Adhearsion 2.0 Alpha 1. This is the first major update to the Adhearsion framework since 0.8.0 was released back in 2007! Over time we have all learned many lessons from deploying Adhearsion apps. We have tried to apply those lessons while developing Adhearsion 2.0. The result is something that is mostly API compatible with Adhearsion 1.0, while being very different on the inside. The primary motivation for this change was the desire to make Adhearsion not just a framework for building Asterisk applications, but a framework for building voice applications. We discussed this during our AdhearsionConf Roadmap presentation (video).
Adhearsion is the first voice application framework in the world to support the new open standard Rayo protocol. Rayo is an amazing development for the telephony world, and one that deserves separate discussion. In the meantime, check out a few presentations (slides here, video here, here and here) and draft specification docs. Adding support for Rayo meant making the internals of Adhearsion much less Asterisk-specific. We also took the opportunity to standardize the eventing system to provide a consistent, cross-platform set of events you can use to enrich your calls. With the release of Adhearsion 2.0, we now support three exciting platforms: Asterisk, Tropo and PRISM.
A note on compatibility: Adhearsion 2.0 will support the ability to do everything that you could do with Asterisk in Adhearsion 1.0. However, you will also have the ability to do a few more things on PRISM (and, eventually, Tropo) that were never previously possible. We will do everything we can to keep feature parity with Asterisk, but in a few edge cases it may not be possible. These edge cases will be documented so you will know when you are doing something that is not portable. In the coming weeks we will be using our own notes from development and applications we have built for Mojo Lingo's customers to test the documentation that will help you upgrade your existing Adhearsion apps. We anticipate that this will be pretty straightforward for most people. However, certain areas may require more work. Look for a blog post and transition documentation in the near future.
With all of the above said, I would like to introduce you to some of the new features coming out:
- Support for Rayo, the open standard for third-party call control protocol
- A new eventing system with standarized event types
- Improved syntax, including CallControllers using an inheritance model familiar to Rubyists
- Improved Text-to-Speech support and the beginnings of Speech Recognition support (especially with RubySpeech)
- Plugins are the new Components. Plugins allow much more flexibility and much easier testability
- A self-documenting configuration system based on Loquacious (try this and be amazed:
Each of these items warrants a blog post of its own, and we intend to do just that. Each week members of the Adhearsion team will select a new feature from Adhearsion 2.0 and describe how it works. All of this should culminate in the release of Adhearsion 2.0, planned to arrive before the last frost of winter (at least in the Northern Hemisphere).
WARNING: Adhearsion 2.0 is ALPHA! It is far from production ready. But we encourage you to play with it and give us your feedback. We expect you to break things and we'll fix them as fast as we can. Issues can be reported via Github Issues. As usual, the community stands ready to answer questions via IRC or the Mailing List.
Ready to give it a shot? Simply
gem install adhearsion --pre and use
ahn help or
ahn create as normal to create your first Adhearsion 2.0 application. For more help getting started and in-depth coverage of the changes see the Adhearsion Wiki, README, and the CHANGELOG.