We have just completed an interview with John Todd - the Asterisk Open Source Community Director:
Question 1: So, you're the "Open Source Community Director" for Digium. What does a typical week in this role include?
I've found that there is no such thing as a "typical" week, which is just as well since I really enjoy the variety of tasks that I handle on a regular basis. There are some routines - reading the lists, scanning new media outlets for different articles and references, answering questions from the general mailboxes that are pointed to me. But after that, it really fractures into a million different things. I am often writing blog posts or press materials in some form or another. I participate in many of the engineering and product management discussions within Digium, and try to be the ombudsman for the open-source community when it's required in those areas. Every week I participate in the VOIP Users Conference on Fridays, which is always an interesting and wide-ranging discussion.
I've been doing a lot with licensing recently, as much as I hate dealing with that kind of sticky contractual stuff. My favorite part of the day is talking with the people that use Asterisk, since everyone has some interesting and new story to tell about how it's helped them solve their telephony problems.
The number of people using Asterisk is huge - staggering, in fact. And all of those users have some really interesting thing they've done with Asterisk or some technique they've applied that somehow would be useful to the larger community - it's my job to try to help them put those changes or techniques back in the public domain so that everyone can benefit from their efforts and great work.
Question 2: How long have you been using Asterisk and what drew you to it initially?
I first tried Asterisk out in early 2001 (roughly) but there was no support for SIP (a still-emerging new protocol) so I didn't spend a lot of time on it as I evaluated other solutions. However, in early 2003 there was reasonably functional SIP calling capability, and so I moved away from the Vocal platform and onto Asterisk. It was a great learning experience - the script-like dialplan was fairly intuitive to pick up, and the program seemed to be designed to solve real problems, so I was easily hooked.
As I learned about the dialplan and Asterisk, I took large volumes of notes in my config files, and later (almost as an afterthought) put those files up on my website. They're really getting out of date, but they've been downloaded an astonishing number of times which I think gave me some early visibility in the community.
Question 3: How did you form the relationship with Digium which saw you being employed?
In late 2003 (if memory serves?) I was at a VON show and ran across Mark Spencer at what I think was the first Asterisk/Digium table. He was there at the table by himself, and so I started talking with him since we'd been corresponding via email. He hadn't seen any of the show since he'd been trapped at the table, so he said "Here, John - you're now the Asterisk table. Answer questions when people come by. I'll be back in an hour or so."
I don't mind doing that kind of stuff, so for that afternoon and at a few other VONs I was pressed into service as an Asterisk Booth Bunny. In the years since then, I've done a lot of consulting for companies implementing Asterisk solutions, and I've even built a venture-backed mobile services company that had as it's core an Asterisk implementation, so I've certainly seen the spectrum of implementations and know first-hand what the issues are with commercial Asterisk usage.
I was coming out of a cycle with a start-up about eighteen months ago, and asked Mark if he knew of any companies that might need someone like myself and he said "Sure, Digium does!" and so I came on board as the Community Director as Jared Smith moved out of that role and into training as his full-time vocation. I tell people that I'm just getting paid to do what I used to do for free, which is promote Asterisk as a solution to telecommunications problems!
Question 4: The Asterisk community tends to be a moving target, with people arriving and leaving as their needs change, but with a core group tending to remain. During your time with Asterisk what events do you think have created the most interest?
I think the events that have created the most interest are the times when Asterisk has moved into some new area either in a core technology or in some novel implementation. The addition of queueing, for instance, drew a number of developers to the project. Then, as more sites started using queueing, more developers were put on the task in their company, which in turn led to more developers on Asterisk. SIP, Queueing, ITSP functionality, UC features, faxing, Skype, SS7, call recording - each of these has spawned a sub-culture of development and developers. It's a big list, so I can't really give you the ones that have created the most interest as there is also quite a bit of cross-pollination between areas within the project.
Question 5: Which new feature (whether developed or in development) do you think is the best new addition?
This is a tough one - there are a lot of really interesting new features and integrations that make Asterisk much more powerful, and there have been some great patches done recently. However, one that was recently added catches my eye and that is the calendaring function system. This allows Asterisk to easily access (read/write) calendar entries from Exchange, CalDav and iCal style calendar servers. This is tremendously powerful stuff - it could re-route calls when you're on vacation, it could send you a page when you get a call and it knows you're in a meeting. The ability to schedule things is very interesting as well - combined with voice recognition, this could be a very interesting scheduling tool for workgroups.
Perhaps one of the easiest and most useful things would be to insert record into a calendar to record all of your calls, in and out, and show their duration at a glance without having to figure out how CDRs map out to your day. "Hmm... he called last week on Friday right before I went home, I think, but I don't remember his number..." - just look at the calendar and you'll have an instant reference to the call.
The feature that is most interesting that is in development I'm kind of split on, though both of them come from Philippe Sultan at INRIA. He's working on getting bi-directional XMPP in Asterisk (he already built outbound XMPP messaging, which has been in the code for some time.) This would allow you to control your Asterisk server via instant messages - "send to voicemail", "hang up", "play message 1 to mobile" would be very interesting and possible commands once this is complete. More information on this one here: http://bit.ly/19fkz9
The other feature Philippe is working on is a Flash RTMP interface for Asterisk, meaning that Asterisk can connect as a consumer or producer of RTMP media to a Flash server. This opens up an interesting range of options by using Asterisk as an intermediate in all sorts of Flash-based audio streams, connecting SIP and other protocols into Flash RTMP. More details here - http://bit.ly/lBpKv
Question 6: During the time you've been working for Digium, have you noticed any changes in the balance of development between the community and in house at Digium?
The volume of changes that are occurring in Asterisk has shifted in the past few years, and I think this is coincidental with the maturity of the package. This may manifest itself as appearing to be disproportionate amount falling on Digium's shoulders in the open-source Asterisk workload.
What I think we're seeing is that Digium is taking on a lot of the load of the internals - the incremental work that improves Asterisk to the point where it is today. This involves a lot of bug fixing, code re-work, and re-development of things that almost nobody sees but yet have a big influence on how scale-able and stable Asterisk is. So Digium is certainly putting an enormous amount of effort into the project, but still I think our community still brings to us the best ideas, and the best code.
Digium spends a lot of time reviewing that code and making sure that it doesn't create problems when deployed, since now there are hundreds of thousands of businesses who rely on Asterisk to work, all the time, without fail. Some of the perceived shift in balance may just be that Digium looks at the code and spends many, many hours trying to ensure validity and stability - often, more hours are spent reviewing than actually were spent writing the code, but that is an acceptable penalty that comes with success and widespread adoption.
Digium staff also spend their time creating new features, both as spontaneous ideas that would be "good" for the project, as well as committing an extensive amount of work to the open source project that is paid work by customers. Almost all of the work that Digium does for paid development finds its way back into the open-source code base, which many people don't appreciate. Digium spends a lot of time convincing large companies that contributing the work back to the open-source project is really in their best interests, and we almost always succeed in achieving that goal of open contribution.
Question 7: Have there been any takers or people looking like they might be able to approach the "steak prize" (http://blogs.digium.com/2009/02/18/s-prize/)?
There have been three groups who have said that they could do it, or think they could do it, but there's a double-edged sword here: anyone who has the lab setup and ability to set up a very large Asterisk implementation is almost always well beyond their acceptable workload already, and a steak dinner just doesn't present adequate incentive to spend the time to get the prove-able architecture in place. So, the short answers is "No" but I don't think anyone has even tried seriously yet. Maybe I need to make that offer more interesting...
Question 8: Which feature or usage of Asterisk do you think is the most disruptive?
The use of VoIP is still the most disruptive element, despite it's "ho-hum" nature now to all of us who have been doing this for years. The concept of being able to avoid TDM networks entirely for voice communication is tremendously powerful, and still the majority of the world doesn't use VoIP. I still think there are many years left in the shake-up that is happening in telecommunications, and Asterisk provides a near-universal translation layer between TDM and the various flavors of VoIP as well as providing services to any of those channel types.
I think the Skype channel addition is about to become a very disruptive force, as well. :-)
Question 9: If you could change anything about the Asterisk community, what would it be?
I've mentioned this a few times in various talks, but I'm sorry to say that we don't see as much contribution from the development communities in China and India. I know that Asterisk is very, very big in both nations and that there are huge development groups in each area working on really slick features, mostly for small software vendors deploying in a huge number of niche markets. But for a variety of reasons, those communities don't connect well with the existing open-source group surrounding Asterisk. I think that we could instantly double the size of the development community if there was some magic wand I could wave that would convince Indian and Chinese developers to both participate in the existing discussions as well as contribute back to the project, so that would be a big goal of mine.
Question 10: Where do you see yourself in 5 years? :-)
Well, that's a tough question. I'd probably like to be right where I am, but perhaps with some assistance as the community grows. I have some side projects (freenum.org) which I'd like to see growing and that are complimentary to Asterisk and the open-source VoIP community, and I'd like to see that take on a larger life. I'm becoming more interested in open-source energy engineering, which I think will be back in focus in 5 years. I suppose the net summary is that I see myself working with Asterisk in 5 years, but I hope I have a lot more free time to work on other things as well - perhaps that's a bit unreasoanble. ;-)