Free and Open: An Interview with Mark Spencer, the Creator of Asterisk PBX

Asterisk PBX changed the way teleco viewed Linux and Open Source. Things may never be the same.

Created in 1999, Asterisk PBX is widely considered the first Open Source PBX to run on commodity hardware. Mark Spencer initially wrote Asterisk because his start-up needed a PBX and he didn't want to put capital into an expensive phone system. While initially created to solve an in-house problem, it has since evolved into a company, Digium'with Spencer as its president'earning $10 million in yearly revenue and a respected PBX capable of scaling from small-to-large enterprise deployments as well as handling carrier-grade applications.

Asterisk PBX is Open Source Software (OSS), meaning it is free to download and use. There are also no restrictions on what a user can do with the code. If a developer wants to add or change the behavior of features, they are free to do so. Because of this, Digium makes their money on licensing and service.

Linux Magazine contributing editor Bryan Richard spoke with Spencer about the complexities of Open Source business models, SIP's role in telecommunications, and what an enterprise customer needs to know before jumping into an Asterisk deployment.

[Linux Magazine] In March of this year you released the Business Edition of Asterisk. What is the message coming out of Digium today?

[Mark Spencer] Our focus is on trying to push the development of the Asterisk codebase ahead and we have business models to support that effort. These include our line of interface cards and the hardware we continue to develop. In addition to this, there is the Business Edition, licensing outside of the GPL (where that is necessary), and then our support and development services.

Our goal is to be the one-stop-shop for Asterisk. We want to be able to help steer people who are interested in Asterisk in the right direction. We can put customers in contact with the right people, whether it's us or someone else.

[LM] One of the attractive features of Asterisk is that you can turn just about any PC into a PBX. Does the PCI card business — or Digium getting into the hardware side of things — water down the commodity hardware aspect of Asterisk?

[MS] You don't have to have any specific hardware unless you're choosing to interface to the PSTN, and there you still certainly have choices. We're really trying to build products that are tuned specifically to Asterisk. To a great degree, there are going to be a lot of people that really don't need that hardware. There are going to be people that don't need Business Edition.

We're trying to build business models to help provide the pieces that fill in what people do need to have; a little bit more than just the free software.

[LM] If I am an enterprise trying to evaluate whether or not I should install an Asterisk PBX, what should I look at internally to determine if it's right for me?

[MS] While I would say that Asterisk is a pretty good fit for a broad range of sizes of PBXs, you must have Linux familiarity. If you're not at all familiar with Linux, then you definitely need to deal with a reseller that's going to give you a packaged finalized product. The real question that a company has to ask is how much of it you want to do in-house versus bringing someone in to assist you?

If you're a small business, there are companies like Fonality and Switchvox that have prepackaged solutions based on Asterisk that might be a fit for you. If you're a bigger business, you might go to a reseller for a customized solution that's really tailored to fit your needs.

If you have a lot of Linux experience, regardless of whether you're small or large, then you might roll your own. You can even do an entirely hosted model if you go through some of the hosting providers that are coming up around Asterisk.

[LM] Switchvox and Fonality make a business out of customizing and supporting Asterisk. Do you consider these companies competitors of Digium?

[MS] One of the reasons that companies are electing to go with Asterisk is because it's Open Source and they have the choice to use the vendor of their choosing. That means they can go to us and buy a config package to run it on their system or, if they want to, they can go to Fonality and buy a solution already put together with a Web server.

I think we can present companies like Switchvox and Fonality with partnership opportunities that would increase their chances of getting their products out to companies who might be interested in Asterisk. There's some overlap in what we do, but an Open Source business model has to account for that.

[LM] You have been quoted in Switchvox press releases. Do you think customers who aren't familiar with an Open Source business model might be confused by this, where potential competitors are complimenting one another for their work?

[MS] Well, I've got two roles. Since I'm both the president of Digium and I'm also the author of Asterisk, I have to look out for the interests of both. To the degree that Digium spends a lot of time developing on Asterisk and working with other developers to get their changes improved and handle the submissions and merging process which is, in many cases, more time-consuming than actually doing our own development in a lot of areas. That whole process aligns to a great degree the interests of Digium and the interests of the Asterisk project at large.

I would say that Switchvox and Fonality, at least to this point, have both been good about being able to work with us to make sure we have things that we can sell to them'like our interface cards that help keep us in the picture.

I have this quote I always say, ?We're about the smallest telecom company in the world that matters.? We're happy to see people be successful with Asterisk and we definitely encourage people to try to work with us to help support the future of the project.

[LM] When you talk to potential customers, what are their primary interests in Asterisk? Is it the idea of Open Source? The fact that the price point is so much lower? The amount of control they might have?

[MS] It really depends upon the customer. Some customers, especially in Europe, are very Open Source savvy and it means a lot to them that it's Open Source. For other customers, it's about the price and they feel like they can save a lot of money. Others need something that solves their needs and Asterisk is fairly rare in terms of its completeness. The number of different things it can talk to and the number of different applications it supports really sets it apart, not only in the Open Source world but in the voice over IP world in general.

There's nothing that really quite equates to what Asterisk is today.

[LM] What about something like SIPX?

[MS] Well, SIPX, we'll start with the name. SIPX is, obviously, as its name implies, only about SIP, right? So if you need to get additional interfaces you're going to have to bring in external gateways and/or equipment of that nature. It forces you into a distributed model.

By comparison, if you're using something like Asterisk you've got a lot more control in terms of what you're going to use, whether you use something internally or not. Asterisk can do everything in one program rather than having five or six different programs running that are all using SIP to interface with each other.

So, SIPX's product does something but it's not the same thing as what Asterisk is. It doesn't have the same breadth of applications that Asterisk does. SIPX has decided that SIP is what they want to support and I think they see SIP as being the be-all, end-all of communications and that you're not going to need anything else. Our take with Asterisk has been to certainly support SIP'it?s the most actively developed channel driver'but we also support other technologies and we are not necessarily of the opinion that there is such a thing as the be-all, end-all protocol for telephony.

If you think about email, you've got POP, SMTP, and IMAP, which are all moving messages around but they all have different purposes. They all are tweaked to do a different job. You don't have a lot of people saying, ?Hey, IMAP, POP, and SMTP all need to be merged into one protocol. We can't support all three.? By the same token, I'm not really convinced'even if you took out one of the biggest reasons to support everything, which is just that there's so much legacy stuff out there. I think there's going to be a lot of other protocols that are going to be important in specific areas of telecom. SIP has its place but so does H.323. The fact is you've got a lot of it out there in the field.

There are some areas where MGCP makes sense but none of the other protocols necessarily can fit, you know, because MGCP is so stateless that you can create new features without having to have them supported in the protocol per se.

[LM] It's pretty much you against the telecom industry right now in terms of not thinking that SIP is the way to go.

[MS] It's not so much that I don't think SIP is the way to go as I don't think it's the only way to go; and I don't think it's going to solve all the problems of telephony for everybody.

I don't know how common that view is but if you look at what's happened to the complexity of SIP, there's over 2,000 pages of specifications for just the protocol and there are areas where that just isn't necessarily a good way to go if you're trying to make a little low-cost embedded device. We were able to get IAX [IAX is the Inter Asterisk Exchange protocol develop by Spencer] implemented on a gateway that has 4K of RAM on an 8-bit microcontroller with 64K of flash. Voice over IP doesn't have to be big. It can be very, very small and it can be very, very inexpensive.

[LM] Are there areas of SIP that you find especially frustrating?

[MS] When you start talking about NATs and firewalls that, even to this day, still trip up SIP, I think you find real problems. And sure, SIP advocates will say, ?Well, there's standards for doing all these things,? but where's the interoperability? Where's all the devices talking together?

It's so complex and it places such a burden on the programmer. Part of it may be that I'm a lazy programmer. I don't want to have to go implement something with some absurdly complex protocol that has all kinds of places where you can get mixed up, that has five different ways of telling you where you need to send the next packet and so on.

That's not an exaggeration, I could rattle off five different headers that all have to do with where you send the next response packet.

And there are even more complicated rules within each of those. Again, I'm not saying that any other protocol is going to displace SIP and become that one single protocol but I just don't necessarily believe that SIP is the only way to go.

[LM] Do you feel that IAX has a long-term prospect as a telecom protocol?

[MS] I think that IAX or something like it would certainly have some long-term prospects. I mean if you look at what Global Crossings has said about IAX versus SIP, they definitely see IAX as a last-mile protocol for them.

[LM] How important is IAX in the overall scheme of Asterisk?

[MS] Asterisk's future doesn't lay in any given particular protocol. It is precisely that idea that it can adapt and take on new protocols as they come along that is part of its strength.

So Asterisk, for example, would be in a better position to be able to accommodate something new like an Open Source version of Skype than would a system that's entirely based on the notion that SIP is the only protocol. Obviously, Skype has nothing to do with SIP in any way, shape, or form because they found it a lot easier to just develop their own protocol rather than work with what SIP had to offer.

[LM] Do you think we'll ever see Skype and SIP come together?

[MS] I would say that's probably very unlikely. Skype has very different features from what SIP was initially intended to do.

Trying to convert a system from a protocol, which was designed from the ground up to solve exactly the problem that Skype is trying to solve, to a protocol that was designed to solve an entirely different problem, would be an enormous undertaking. You'd likely have to extend it to be able to do what Skype is doing. I can't see that Skype would have any incentive at all to move towards something SIP-like.

[LM] Don't you think that Skype could reap some benefits from a more open platform even if it risked introducing more complexity?

[MS] Maybe, but that's not in Skype's business plan.

If you look at the phone system today, the landline analog phone system, one of the biggest reasons that it has its reputation for reliability is because it is so simple. Your phone line going to the central office, the only bits of signaling are on and off hook and your audio path. And the only thing coming from the central office is ring or not ring, in some cases battery or no battery. But it's designed so that there's really not much that can go wrong. When was the last time you bought a phone at Wal-Mart and you plugged it in your home phone line and it didn't work?

But turn that around and say when was the last time you bought a SIP phone and you hooked it up to your phone system and it just worked the first time without any additional work. It's a very different experience.

[LM] Your example might be a bit simple. We're moving away from a very simple experience to more of a converged experience with application integration and advanced applications distributed over intelligent networks.

[MS] Right, but adding complexity in a lot of these cases has nothing to do with the actual features that are being offered.

It's not that SIP does both voice and video that makes it not go through NATs. It doesn't go through NATs natively because it's running on separate ports and there are all kinds of asymmetries that are permitted in it. IAX goes through NATs because it uses one port and it has supervision and all kinds of other things that make it work. SIP's handicap is that it's got to stay backwards compatible with previous versions, so that adds all kinds of additional protocol complexity.

They're just different ways of doing things. Why, in SIP, are there five different ways to handle where your next packet goes back to? It just keeps going and going. It's a very complex protocol.

Look at the border gateway controller. That industry was spawned to handle the architectural problems in SIP. It makes for a less-than-ideal architecture. You've got devices that talk SIP on both sides and handle all the intricacies of the protocol. And in-between you have this security hardware from different vendors literally carrying the RTP media so that you can deal with NAT transversal.

[LM] If you see all of these potential problems, why do you think the industry is pushing so hard for SIP?

[MS] Because people just want there to be something. People want there to be a standard and the only thing that's remotely in sight at this point is SIP. If you come to a debate about IAX versus SIP, nobody tries to defend the architecture of SIP. Nobody. Because it's just losing right out of the get-go. What they argue is open standards and the standards process and all that kind of stuff.

[LM] You mentioned you need to be fairly Linux-friendly to perform an Asterisk install.

[MS] I usually say that if you're going to do your own Asterisk installation, you need to have the level of technical competency necessary to do an installation of Apache and configure Apache.

[LM] CT Labs ran a test of Asterisk back in March and said that it's even more complex than Apache to install and configure. I believe they said there was something like 42 configuration files. I've done an Apache install. I don't think there are 42 config files.

[MS] No, and there are not necessarily that many in Asterisk unless you're literally trying to configure every single thing. But people are going to use some sort of a subset of it. There are separate configuration files for the channel drivers and there are separate configuration files for extensions. But it's also a little bit different too. I mean, Apache basically serves up Web pages and Asterisk is almost like an operating system for telephones.

So each component of Asterisk that you're going to use is going to have a configuration file, whereas in Apache you kind of have all that bundled up into one big file.

[LM] Is Digium interested in making Asterisk more user-friendly?

[MS] Yes and no. We are but at the same time, that's something that a lot of our customers are doing. Like Fonality and Switchvox are customers of ours.

They buy products from us and they build a solution. Likewise, our distributors and our reseller also create their own products that are fairly focused. As far as custom distributions go, we kind of want to let the other people work on that.

If you're dealing with distributors that carry Cisco or Nortel or any number of other products, they're basically taking a box off the shelf and shipping it out the door. But when they deal with an Asterisk solution, then they're really creating something that they've got some ownership in. They're applying all that experience they have into what they're creating for the customer and creating something that has their own brand on it.

If we go out there and we say, ?Okay, this is the official Asterisk PBX,? it could really poison the work that others are doing. It's not something I'm going to rule out and say we would never do but it's something that's a little bit more complicated than just writing the code. And even writing the code would be a pretty substantial commitment to be able to do.

[LM] What are your largest channels?

[MS] We sell primarily through distribution. We have, I think, eight stocking distributors worldwide and they have their own reselling networks. They're selling Asterisk as well as other VoIP equipment and stuff that all gets carried through.

[LM] With so many service providers pushing a hosted solution these days, is the larger opportunity for Asterisk on the carrier side?

[MS] Well, Asterisk fits in a lot of places. There has been some pickup in the States. We are seeing national carriers in some countries outside the US picking up Asterisk for targeted applications. I think they're going to find Asterisk very valuable, no doubt about that. However, I think it's too early to know from a business perspective whether carriers are going to be the ones that make the most sense, or not, in terms of who actually drives revenue.

To make a comparison, Yahoo and Google are some of the biggest users of MySQL, right? But they're also not very big customers of MySQL, okay? That's because they have so much capability to do it themselves that they don't really buy a great deal. So, I think it's too early to say which way the carriers are going to fall. We might find they're just going to do it for themselves and they're not going to need anybody else.

[LM] Are the carriers sold on the idea of Linux in telecom?

[MS] Obviously the ones we're dealing with are happy with Linux. Many carriers seem to look to their partners, like IBM and HP, for guidance. Some companies are just predisposed to it.

[LM] We're starting to see a number of new application development models entering the telecom space with things like IMS and Microsoft's CSF. How does Asterisk fit into these new paradigms?

[MS] Well, Asterisk already supports application development and has for quite some time, both through the built-in API as well as through our manager and AGI interface. AGI is directly analogous to CGI.

A lot of people make little AGI scripts in whatever language they want, to connect different devices. To the degree that there's going to be some standards coming out for what those applications would look like, we'll certainly want Asterisk to be able to do that but in terms of our capability that's certainly something we do already.

[LM] It seems like Linux and Open Source tend to follow rather than lead. Asterisk recreates PBX functionality, the Mono project recreates .NET. Is there an opportunity in telecommunications to lead rather than follow?

[MS] There is and to a great degree, we're already doing that. If you look at technologies like Bluetooth, for example, Asterisk is, as far as I know, the only PBX out there that can use the Bluetooth adapters in your PC, at your home, and office. It can also detect your presence, so when you walk into the office your office line is now your main number. When someone calls, only your office phone rings. When you go home, it detects that you're at home and only your home phone rings and when you're at neither location, your cell phone rings.

That is a new technology that, as far as I know, no one else has ever implemented. But because Asterisk runs on a host PC and there are drivers for Bluetooth Linux, we were able to create that new application.

We also have peer-to-peer systems that allow you to have a federation of PBXs.

Instead of having one large centralized PBX architecture where you've got one point of failure, you can just have little PBXs that service five or ten percent of your company. They all participate in a peer network so that when you add an extension on one of those, it becomes available to all the others and you avoid centralized points of failure or scalability. Those are all examples of new technologies. Heck, IAX is a new protocol, right? I think all of those are examples of technology that came out of Open Source and doesn't necessarily exist anywhere else yet.

[LM] What is your long-term goal for Asterisk?

[MS] Pretty much what it has always been, to be, of course, the name. The name comes from the log card in UNIX because, even right from the start, I wanted Asterisk to be the single application that did everything in telephony. [For those non-technical readers, when writing to the /log/card file in UNIX, * (asterisk) is the special character that matches any value that a field can take.] Certain companies think that SIP is the be-all, end-all protocol; we want Asterisk to be the be-all, end-all program.

Bryan Richard is the editor-in-chief of VoIP Magazine. He can be reached at brichard@voip-magazine.com.
Fatal error: Call to undefined function aa_author_bios() in /opt/apache/dms/b2b/linux-mag.com/site/www/htdocs/wp-content/themes/linuxmag/single.php on line 62