I am Jay Phillips here at Ruby Fringe and I am the creator of the Adhearsion framework which is an open source Ruby framework for creating voice applications.
2. So voice applications, tell me about that, what are voice applications?
Voice application is some encapsulation of telephony enabled functionality. And the way I define voice applications is a little bit different from the rest of the industry. I would say that the Asterisk scene and I would explain what Asterisk is in a moment, the Asterisk scene tends to define them as some implementation of a telephony system, whereas I define an application as an implementation that is then distributable and to explain what Asterisk is, Asterisk is an open source PBX, open source phone system that you can download, configure, and start making phone calls with. And I created Adhearsion as a solution to the enormous complexity of configuring those Asterisk applications and if you view my Ruby Fringe talk, I give an example of an Asterisk dial plan as it is called, it's this main configuration file of Asterisk which expresses the state machine of the telephony system, and just look at it and you will understand the problems. And I created Adhearsion as an alternative to that, that brings some of the modern software development principles to the voice space, and I feel that the culture in the voice space is sort of overlooked, all this amazing enhancements like web development and Adhearsion through inspiration through Ruby on Rails and other technologies brought these and sort of combined them into a framework that I think will help them improve the entire open source voice space.
3. Adhearsion is that depending Rails or is it just Rails or is it a Ruby framework?
I am glad you asked that question. Adhearsion is very much not Rails, Adhearsion is it's own separate framework, it shares active support with Rails, and it can tuck in a Rails application and pull in like say the models, the database environment, if you have any plug-ins the Rails app can modify the models it can also pull those in. So it integrates well with Rails, that is pretty much a must for a Ruby framework I think that isn't in web development, but it's not Rails, it's a separate code base.
I would say that the community is doing quite well, I think people started to realize that there is such a thing as a voice application, and especially in the last couple of years there has been increasing focus on the voice applications, key notes from the prestigious members of the open source community are actually talking about voice applications, so that's certainly a plus. I think the emergence of this web 2.0 craze that is the social web has increased the interest in voice because voice is a very social technology. And open source is an inevitable player in that space and we just need to ensure that it's keeping up with the rest of the world, that it gets the job done, that it is actually usable. So I created Adhearsion as my interpretation of those needs and ways to fix them.
I create Adhearsion in high school actually I am twenty years old now and I was working at a company for which I was hired to develop their CRM stuff in PHP and MySQL. And I quickly moved over to the managed voice over as part of the company, and dealt with Asterisk and VoIP for the first time, and it was about that time that I was getting into Ruby and Rails so I started abstracting Asterisk with the Ruby language introducing an object model on top of the phone system, and removing a lot of the repetition and immediately saw the value in that and left the company, started working on it privately released it on the Christmas of 2006 and this was just after my first semester at college, by just weeks after the second semester in college, I got published in one external magazine, there was a section about Asterisk telephony book published by O'Reilly, I was invited to the Digium headquarters, Digium is the company that makes Asterisk, and I was invited to speak at the O'Reilly emerging telephony conference and this was all within the course of a month or two. And things started taking off amazingly so I left and pursued consulting around Adhearsion, and continued building it and here I am now, I guess a year and a half after, having open sourced Adhearsion, still promoting it, still working on it, and working on some interesting projects, that will hopefully build up the community. So you may want to talk about these projects.
Things I am working on now that I can talk about are basically open source Adhearsion. Things I can't talk about, but can talk loosely about is a company I am starting around Adhearsion it's a very open source Adhearsion centered company that will hopefully help unify, help "Adhere" in a way we can hear the open source telephony industry, because Microsoft is a threat, and there was a prophecy several years ago that said: ten years from now there will be two players in the voice space, Microsoft and open source. And this is before Microsoft even got into this space. And now they bought like TelMe like over billion dollars and they are ramping up their unified communications part of the company, and that's the part where Microsoft really wins is on the Desktop and that's a huge threat to the voice space and the open source space, because they own the Desktop and they can therefore dominate it by using that reach. So open source needs to step up help dominate the Desktop, help empower the grass root hackers because that's the strength of open source. And I find that in the open source space, there's not a lot of people doing that and there is certainly a business opportunity there, and there is certainly a business opportunity to help solve some of the vast problems in voice development in general. Voice development is very very different from web development, it's much much more complex and there is certainly opportunity in ways of abstracting that to empower virtually anyone who may find it interesting to use voice and remove the burden. So that's what I am working on now, I can't talk about it very much at the moment but stay tuned.
That's a great question. I would say the single motivation should be to try something new. For me that was my motivation for getting into voice. Like I said I was hired as a PHP MySQL developer and when my buddies also at high school were developing voice applications it was like "Wow, what are you doing with voice?" So I tried it out and found it really interesting. What I really like is sort of these weird computer science problems, and the telephony space had to solve them all way before IP was developed. And their solutions are certainly interesting; learning voice over IP is a great way to deal with very complex network details, or how to design proper protocols, so it was certainly interesting to me. I pursued also as an academic exercise of improving it, so an exercise to write something that is intuitive to a developer, with Adhearsion. So, to answer your question more, the motivation should be to try out something new. You can very well try it out and find out you don't like it. You can very well try out Micro controller programming and find out that you don't like it, but you should always try new technologies. I am not saying that one should try VOIP immediately, but they should certainly experiment it like completely different areas of their expertise and I think that they may very well stumble on something that they can passionate about and for me I stumbled on voice development and I was passionate about it and I encourage other people to pursue it for that reason. I think there is lot of latent passion that no one has tapped because the open source development world has been so difficult to actually use.
I would say that the complexities are on many levels. The one that I deal with most often is really defining what a voice application is what are the things that people really want to use, what are the things that people don't want to use but maybe should be considered, what are the ways that we can integrate with other technologies in a general way provide ways, provide ways of abstraction for integration, and I would say on the non developer level, maintain relationships with people to terminate voice calls to publicly switched telephone network calls is a challenge that we have to overcome, and that is something that we address in this company I am loosely referring to. But also voice quality is an issue, for example many companies decided to move over to VOIP for their internal phone systems and I think it is totally the right choice but there are quality issues that can detract from the usefulness of it such as there are never going to be ready for it, if they place lots of outbound calls from their network, not within their network but out to the publicly switched telephony network, then that places a lot of demands on their pipe on the Internet, and many people don't have T3s to accommodate that load. So it can be challenging. So I would say that those are the biggest problems in the voice space now.
I would say that the future is more pressure on the Asterisk community to meet the challenges and the competition of the open source industry. Adhearsion is kind of changing the way that even I think the Asterisk community thinks about things. And they now at least have to acknowledge that third party integration integrating with their software really really do matter and another open source project which pretty much gets that right is FreeSwitch which is this up and coming competitor. It started as a fork of the Asterisk community there are a couple maverick developers who basically became pariahs and started their own project, worked on it for three years and just had an 1.0 release a couple of weeks ago even. So there is competition now on the Asterisk space, which is a very different story from the past eight years, because Asterisk basically dominated the space. So I think more companies besides my own will pop up with open source telephony solutions. There has been TrixBox from the company Fonality which is basically just Asterisk with sort of a mash up of other technologies. There have been things like open source call center solutions, more appliances that help make Asterisk easier to use by bundling them in something that you can buy and just plug it into the wall. It's certainly exciting I think there is definitely a lot of opportunity in the integration specially because with the advent of the web people are using the web to communicate, so it sort of takes away from the utility of voice, but there will always be a need to communicate, either audio to audio or video to video and open source telephony solutions can also do the video as well. So getting the integration and enabling collaboration I think is going to be very much the future of open source telephony.
I think the industry is going towards what we call unified communication which is the unification of voice, instant messaging and the web, where the web could be their CRM solution or it could be Wiki integration, LDAP integration, or web service integration. That's definitely were things are headed, that's where Microsoft is placing all their money now, and getting that integration down is key and once the integration is down, I think it will become more transparent.
I don't see many other open source abstractions of Asterisk other telephony platforms that are abstracting the telephony platform to the extent that Adhearsion does. And that's creating a real framework where you can create things like voice applications, many people write simple APIs and there is certainly a need for those APIs but Adhearsion is the API in addition to a set of standards, a definition of an application, a definition of a plug in and the facilities for exchanging those and using those.