Wow, that’s a really long time. Along the way, we’ve built a bunch of cool applications with Adhearsion which now underpin several big businesses and interesting projects, and a lot of the work on those has fed back into the open-source Adhearsion project. Shortly after the Adhearsion 2.0 release, I got fed up of promising FreeSWITCH support for so long and so just went ahead and added it. In collaboration with Grasshopper Inc, and thanks to Chris Rienzo, we managed to replace this implementation a year later with native support for Rayo in FreeSWITCH.
Until recently, we have lacked support for AMIv2, meaning users of Adhearsion were held back from upgrading past Asterisk 11. Thanks to another collaboration with Power Home Remodeling Group we were able to add AMIv2 compatibility to Adhearsion, the first parts of which were released in Punchblock 2.7.0.
But let’s talk about what’s coming down the road.
What’s Coming in Adhearsion 3
Now, on to the other items we are aiming to include in an Adhearsion 3.0 release, which we are hopeful to have ready by the end of the summer (northern hemisphere):
- Core support for internationalisation
- Merging adhearsion-asr into core to replace the old
#menumethods which were found to be lacking
- Integration of a web server for serving grammars, prompts, recordings, etc, as well as a batteries-included APIs for Adhearsion applications
- Better performance through simplification and support for Ruby language advancements
- Complete replacement of the EventSocket with Rayo for FreeSWITCH support This implementation has long been deprecated in favour of using Rayo, and everyone we have heard from has already migrated. Rayo’s many technical advantages means our FreeSWITCH support will continue to be great
- Better documentation regarding application packaging & deployment — We’ll share what we’ve learned from 3 years of deploying Adhearsion 2 apps
Adhearsion + Asterisk Support Plans
Our new support for Asterisk 13, which is supported by Digium until October 2019, leads neatly to a discussion of how Adhearsion will move forward with compatibility for Asterisk in the future. As we detailed, there are improvements we can make to our support for Asterisk based on improvements in AMIv2 which are not backwards compatible with Asterisk 11. For now, we are supporting both AMIv1 and AMIv2, but in order to fully take advantage, we would have to drop support for Asterisk 11. When and how can we do this? Adhearsion follows Semantic Versioning, meaning that removing features requires a bump to the major version number. So if that’s all we care about, we could remove support for Asterisk 11 in Adhearsion/Punchblock v3.0.0. It’s not, though, and we’re equally concerned about having a smooth upgrade path for users of Adhearsion and Asterisk. For this reason, we are proposing the following policy:
A major version of Adhearsion will always support at least two LTS releases of Asterisk. Support for “standard support” Asterisk releases will not be guaranteed, but best effort will be made to use standard releases as an opportunity to introduce support for the following LTS release.
For Adhearsion 2, this has long been Asterisk 1.8 and 11, and now includes Asterisk 13, but Asterisk 1.8 sees its end of life in October of this year, so:
Adhearsion 3 will drop support for Asterisk 1.8 to anticipate its retirement.
Lastly, Asterisk 14/15 will be released in October 2015/2016, and will hopefully bring further improvements relevant to users of Adhearsion. Therefore:
Adhearsion 3 will add experimental support for Asterisk 14 around the time of its release. Adhearsion 4 will include full support for Asterisk 15, dropping support for Asterisk 11.
I’d love to hear feedback on this policy; any suggestions from our community who may be impacted by this are much appreciated.
What about ARI?
P.S. Yes, we want to support ARI. There’s one major blocker though, and that is that ARI does not yet support text-to-speech or speech recognition. Without those key ingredients, the Adhearsion framework would be significantly less useful on Asterisk. As soon as those become available via ARI, Adhearsion will be moving to ARI. Of course, this change will be transparent for Adhearsion users; suddenly Adhearsion on Asterisk will just start to perform better.
Where to go for more
Work on Adhearsion 3.0 is starting right now on the Adhearsion and Punchblock develop branches, so stay tuned there for details of what goes in, as well as the 3.0.0 milestone. We’ll announce again when we get to an alpha release, but in the mean time, get in touch in the comments below or via one of our other channels.