Building up a Distributed ARI Stasis High Available app

Published: 19 November 2018
on channel: Official Asterisk YouTube Channel
5,288
50

2003 we stared developing an asterisk infrastructure for an carrier grade setup. 2008 it became much more complex by adding business PBX feature to this environment. Since than we basically stuck with this setup and there were no big movements technology wise since there was not reason to. In Asterisk 12 Digium introduced ARI with a bunch of new possibilities and changed the handling of channels so we had the need to change our Code in order to keep the asterisk up to date. With ARI as a good balance between Call Setup manipulation and in call control we chose ARI as basis of our new way for communication between Asterisk and our business logic. With message driven technologies we had the opportunity to decouple the asterisk from it's script by using a message bus, in our case we've choose kafka to do this job. With stream based programming and state machines using java akka we first made the most complex playback of the tt-monkeys. On this basis we are developing our new call controlling back end for the asterisk (ongoing). I will show the basic concept of an distributed akka, kafka message driven call routing engine. As well I will share our leanings with an HA and fail over concept and how this works all together using kamailio dispatcher routing and Stasis fallback.