Slashdot Mirror


Interview with Mark Spencer of Asterisk

comforteagle writes "OSDir has published an interview with Mark Spencer of Asterisk and Gaim about why and how he got started coding up the software platform PBX system and how it has become much more than -just- another phone system. He also shares his insights for the opportunities within the telecom industry for open source."

37 of 124 comments (clear)

  1. * is the killer linux app by grasshoppa · · Score: 5, Informative

    I have used and deployed * in a number of setups ( from large businesses to home ), and you folks should really understand something: This is the killer linux app.

    Samba is great. qmail/sendmail/ect...is wonderful as well. But, as far as getting linux in the door, this is the application that will do it. For example, my first * implementation cost about 8grand ( parts and service ).

    For a similar, but far less featured pbx from avaya, I was quoted 40grand. And that was a quote. Anybody here that has worked with phone venders should be chuckling right now at that number, as it amounts to a pie in the sky dream.

    So, for my small business, I saved them 30 grand right up front ( likely more ). On top of that, as their needs change, so can the phone system. Just the other day they found out I was taking my desk phone home ( to play with, but also get my phone calls ). When I told them why, they were floored that the system could do that, no matter how many times I told them it could.

    Larger businesses will see far more dramatic cost savings, and get more features to boot.

    --
    Mod me down with all of your hatred and your journey towards the dark side will be complete!
    1. Re:* is the killer linux app by grasshoppa · · Score: 2, Informative

      Most of that was server and related costs. I spent about 6k on twin servers with a beefy UPS. If one goes down, I'll lose all current calls, but the phones and everything will be right back up as the second server takes over.

      About 2k was for phones. This was a small installation with some very specific needs.

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    2. Re:* is the killer linux app by J0nne · · Score: 5, Funny

      I have used and deployed * in a number of setups...

      The copy/paste trolls are getting lazier by the day. In earlier times they bothered to alter the post to fit the subject, but now they just use a wildcard...

      <insert monty python foot here>

    3. Re:* is the killer linux app by porkThreeWays · · Score: 3, Insightful

      Comparing Apache and Asterisk is difficult. The most often changed item of apache is the html. You can't make apache unstartable by having garbage html in your htdocs directory. Really, once the initial configuration of Apache is done, you probably won't make that many changes (for most sites). For asterisk, the thing you change the most is extensions. Extensions live in the Asterisk configuration. You _can_ break your Asterisk config this way and make it unstartable. The software itself is pretty rock solid, but because you will be activly making changes to the asterisk config (whether with vi or a front-end), it does lend itself to more human error. I tend to make any asterisk changes in batches at night because there's less "bitching factor" if the phone system is down for 30 seconds at 11pm than at 11am. If you are in a small business and will rarely add extensions, you could run your asterisk system for years without a problem.

      The biggest thing you want is your hardware on multiple battery backups and make sure your extensions config to make e-911 calls. There'd be nothing worse than a power outage and resulting emergency, and not being able to call 911.

      --
      If an officer ever threatens to taze you, say you have a pacemaker.
  2. Re:And PBX is...? by Qwell · · Score: 2, Informative

    Private Branch eXchange.
    A telephone system.

    --
    As of 10/06/03, I hate COBOL developers.
  3. Re:And PBX is...? by dud83 · · Score: 4, Informative

    Officially it means: "Private Branch Exchange (private telephone switchboard)" In reality it is a switchboard placed inside your house or office commonly. You know, "press 1 for an outbound line" sort of thing!
    It's like a router with a NAT... Only for telephones not the internet...

  4. Re:And PBX is...? by Chyeld · · Score: 4, Insightful

    PBX - Private Branch eXchange. Sometimes also called Postbox exchange, or Private Business Exchange. I'm not sure what the 'official' meaning is.

    Basically it's a voicemail/call routing system. Almost every company that handles more than one incoming line has a PBX. It's the internal phone system. Extensions, voicemail boxes, hold music, voice menus, etc. are all run by your companies PBX.

    Asterix is an open source PBX designed to be run off any system that can run Linux. It's fairly extensible and because it runs on commodity hardware, very popular. Normal PBX systems can cost in the $10k amounts to do half of what a $5k Asterix system can. Plus, if you are truly a geek, you can setup your own home PBX off normal phone lines.

    Another reason Asterix is becoming popular is that it can handle Voice Over IP (VOIP) calls. This means you can setup a small home machine (many times people hook it into their router, PC or embedded) to work with a VOIP account such as Vontage and let you have more control with it.

  5. Re:And PBX is...? by amliebsch · · Score: 3, Informative

    Generally, though, for services like Vonage or Phone Over Cable, you must use the supplied analog telephone adapter. So despite the fact that the VOIP is coming in over the internet, you actually can't just handle them with an Asterisk server. You would need to instead get a second analog-to-digital converter, and use your VOIP line as though it were an ordinary analog telephone line.

    --
    If you don't know where you are going, you will wind up somewhere else.
  6. Systm video cast on iTunes by pesc · · Score: 4, Informative

    If you have iTunes, you can check out the latest systm video cast which features a demonstration by John Todd. Shows how to set up Asterisk. 47 minutes in length. Go to iTunes and search for "systm".

    --

    )9TSS
    1. Re:Systm video cast on iTunes by Brian+Stretch · · Score: 4, Informative

      Better yet, go here and get the H.264 torrent (or whichever encoding you prefer). That page also gives you a slew of very useful Asterisk links.

  7. Re:What an timing :) by dotslasher_sri · · Score: 2, Informative

    you might find this helpful

    http://revision3.com/systm/asterisk

  8. Asterisk is something special by porkThreeWays · · Score: 4, Insightful

    I can not even begin to describe how great asterisk has been to the telecom industry. Asterisk will be (and is currently) just as important to the telecom industry as VoIP itself. I've delt with propietary telecom stuff before. It sucks ass. Take Nortel and Cisco for example. If you are going to buy Nortel IP phones, be prepared to use a Nortel soft switch. Up until recently you couldn't use Cisco power over ethernet with Nortel phones because of Nortel's non-standard implementation. Basically, every switch maker has made it as difficult as they can to use other comapanies equipment with theirs. Everything is expensive, non-extensible, and non-interoperable.

    Then there's asterisk. Asterisk uses open standards. Asterisk has an API for writing phone based applications. Asterisk has a clean code base to contribute to. Telecom has almost always wanted to stay as closed as possible. People thought VoIP would change this. It just brought new people to the secret game (Cisco and Nortel being the worst offenders). Asterisk has blown this door wide open. Now, I can use whatever SIP phone I want. I don't have to find a Unistim phone anymore. I can write my own programs to interact with callers. Waaaaaaaaay more than simple tree based IVR's. We're talking full fledged applications through the phone. Without paying a dime. Asterisk has blown the doors wide open on the secret game of telecom. Sure, there will be a lot of people who stick with their traditional telecom equipment. But for those of us willing to roll up our sleeves, Asterisk offers up a way more extensible and programmable soft switch than I've ever seen from the traditional guys.

    --
    If an officer ever threatens to taze you, say you have a pacemaker.
    1. Re:Asterisk is something special by Qwell · · Score: 3, Insightful

      I'd like to add to this...

      Not only can you use whatever SIP phone you like, you can also use whatever IAX2 phone, SCCP phone, MGCP device, etc...and you can use them together.

      You can call from an SCCP phone (Cisco) through Asterisk, over the internet to an IAX2 provider, who in turn connects to their provider via SIP, and then terminates to the PSTN.

      The * really DOES mean everything. Asterisk does this all seemlessly to the end users.

      --
      As of 10/06/03, I hate COBOL developers.
    2. Re:Asterisk is something special by SoulDad570 · · Score: 2, Interesting
      the secret game (Cisco and Nortel being the worst offenders)

      Care to elaborate on this? Cisco also sells a lot of SIP gear and are very serious about standards.

      Cisco's proprietary thing is SCCP, but SCCP not secret. Cisco tried to take SCCP to the standards committees, but that got shot down by competitors on the committees.

      Cisco sells SCCP products out of necessity, it's the only way to support the "300 classic PBX features". Standard SIP cannot do it (yet), and SIP with proprietary extensions is no better than SCCP. When the SIP evolves to support the rich PBX feature set, Cisco will be right there (in fact CIsco is involved in the SIP standards).

  9. Another Cool Thing Done with Asterisk by DaedalusLogic · · Score: 3, Interesting

    These guys built a digital voice recorder out of it:

    http://www.basesys.com/

    It's used to provide a dictation service for large medical facilities down to small private practices. Medical dictation systems can cost $40,000+ from the biggest provider. (Dictaphone) We use this service though, and are very happy with their reliability. They can even support some proprietary Dictaphone hardware which uses DTMF tones not found on normal phones. (ABCD or Flash, Flash Override etc. for you military types.)

  10. You don't even need Asterisk... by qualico · · Score: 4, Informative

    ...when you have a termination provider capable of connecting with SIP phones.

    Otherwise, when I go to a computer recycling depot, all I see is Asterisk boxes.

    I have run 4 lines on my 450MHz box with no degradation at all.

    You can buy cheap FXO cards for $10 and unlock Vonage Linksys PAP2s for $10 per FXS port.
    Slap that together with a $25 PowerMAC 9600 and bam!
    5 FXO + 10 FXS and witness the power of a fully operational PBX system for 175 bucks!

  11. Like others have said, it IS the killer Linux app by x.Draino.x · · Score: 4, Interesting

    Take it from me.. I work for one of those large close-sourced PBX companies. I love Asterisk. I think the initial jump in may be confusing to those who have never touched the command line before, but once you get the hang of it, it is much faster to configure than other PBX systems, and much more customizeable. Instead of having to use some special client to make a connection to the PBX server to make changes, all I have to do with Asterisk is SSH to the box and use vi ( of course ) on a couple of easy to understand text files. Asterisk can also interact with everything else on the box using perl or some of the built-in commands in Asterisk. So you could have it write to MySQL db, or email you everytime someone hits option "8" on the phone. All that is required for a simple VoIP system is an older machine ( preferrably 300mhz+ ), a NIC, and a sound card. This simple setup can get you up and running making phone calls from one softphone ( software based, no physical phone needed ) to another. Sign up with someone like nufone.net and start making outgoing calls. Or purchase a DID and have incoming as well.

  12. Asterisk@Home by TeeJS · · Score: 5, Informative

    For those wishing to play with Asterisk, you can't beat Asterisk@Home. Nearly instant setup & web-based GUI config makes easy to administer too. I had it up and running in uner 10 min!

  13. Old News - Newer interview here by Bentley · · Score: 4, Informative

    Here's a link to a newer interview done with Mark Spencer last week, Jan. 19, 2006.

    http://gabcast.com/index.php?a=episodes&query=&b=p lay&id=91&cast=585&castPage=

  14. application by ch-chuck · · Score: 2, Interesting

    My * application is to send streaming audio to my cell phone. That is, before going out I plug the * console sound card into my streaming audio client. Then I can call in and dial the '1234' extension and listen to Internet audio from the car, while hiking, etc.
    Plus it was fun to play with setting up ;)

    --
    try { do() || do_not(); } catch (JediException err) { yoda(err); }
  15. Re:And PBX is...? by Corydon76 · · Score: 4, Informative

    While there certainly are the Vonages of the world, there are far more VoIP services that permit you to connect any phone you like.

  16. This is True! by Greyfox · · Score: 2, Informative
    I started playing with Asterisk a while back while experimenting with VOIP. I've recently purchased a digium FXO/FXS card and set up my landline with a voice menu system. The sky's the limit for what you can do with the system. Pretty much any small business could put a "professional" face on their company for the price of a moderately powerful machine, some network connections and a few SIP phones for their employees.

    It's not all that esoteric to set up, either. I didn't even bother with the various GUI configuration tools you can download. I did have better luck compiling it myself rather than using the one that Debian has packed for it, but that may have changed since I tried it.

    If I were in the business of making commercial PBX systems, I'd be shaking in my boots right now. I think Asterisk will end up putting the lot of them out of business.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  17. the only source of information you will ever need by nubbie · · Score: 4, Informative
    --
    'Go for the eyes, Boo, go for the eyes, aaarrrrrrrr!' -- Minsc
  18. Re:Like others have said, it IS the killer Linux a by amliebsch · · Score: 2, Informative
    I believe if you want any sort of other functionality, like voicemail, or any sort of menu system, it would be required.

    No, I don't think you do need one at all. All of the digital signal processing is handled in software. Digital/analog conversion is either done in the FXS/FXO cards, for traditional phones, or in the phone itself if you are using VOIP phones (that's why it matters what codecs the phone supports).

    --
    If you don't know where you are going, you will wind up somewhere else.
  19. A killer app on its way... by starmeup · · Score: 2, Informative

    I'm in charge of replacing our to-old NEC PBX for a brand new Asterisk in our ISP.

    As a Unix sysop for long time, with some knowledge in general VoIP/H.323/SIP, I would say that the jump into Asterisk is not too dificult. We use SSH/vi/etc. in our day-to-day task, so one more system is not hard to swallow.

    However I would like to point out that unless you are a really small user, with standard needs, for example in a situation where Asterisk@Home resolves all your needs, or you can live using only SIP or IAX, you will have some problems.

    Asterisk will be a killer-app, but it is not there yet. Each new version tends to break something, configuration switches are added or removed, new features, are added changing the way things should be done, behavior of old functionality changes, etc. Its great, but its still evolving. Just check the mailing list and you will see the kind of problems that arise, and are resolved by the community.

    Evolving is a Good Thing, but you have to take that into account before jumping in.

    Pablo.

  20. What a bloody useless article! by Txiasaeia · · Score: 2, Funny

    It didn't tell me why Obelix is so quick despite his girth, what's in that magic potion, or why my favourite Asterix film, Asterix and the Twelve Tasks, hasn't received an NTSC-DVD release yet. Instead, the interview was all about technology or some such nonsense. Don't the submitters check their links before they turn them in?

    --
    Condemnant quod non intellegunt.
  21. Mark Spencer & Digium at SoCal Linux Expo by MrMorph · · Score: 2, Informative

    Mark Spencer will be speaking on Sunday at the Southern California Linux Expo. In addition Digium will be exhibiting Saturday and Sunday.

  22. MythPhone by qualico · · Score: 2, Interesting

    Got to add this link:
    http://www.zen13655.zen.co.uk/mythphone.html

    Anyone tried this?

    The future of video phones is cerainly destined for the TV.

  23. Re:And PBX is...? by Flagg0204 · · Score: 2, Funny

    God I feel old

  24. Asterisk has helped by showing us what not to do. by anthm · · Score: 5, Interesting

    My name is Anthony Minessale, After considerable contribution to Asterisk I have learned a great deal about telephony here is a list of my personal contributions to Asterisk: http://www.cluecon.com/anthm.html

    The biggest lesson I have learned is that the fundamentals of Asterisk are built on assumptions and hard coded limitations. The flow chart for its code will make you dizzy:

    http://www.freeswitch.org/astdoc/structast__channe l__coll__graph.jpg
    http://www.freeswitch.org/astdoc/pbx_8c__incl.jpg

    People who use asterisk from the outside wouldn't know there is absolutely no structure or discipline in the code and may not care. But once they invest a ton of time trying to make their dream Telco or whatever their dreams may be, the truth is all too obvious. Spoken from experience, only a seasoned technical wizard with years of computer skills to boast will ever be able to successfully implement Asterisk beyond a modest implementation. To truly understand how Asterisk works holds only a slightly smaller prerequisite. To those who find this unimportant, I understand your point, but be aware that Asterisk, being an open source project, needs to have a somewhat easy learning curve to attract new developers especially considering the developer turnover they suffer due to the maddening politics their community has to offer. The development is focused on owning all the code even if it means re-inventing things that already exist just to maintain the right to sell the code. This practice is fine with me though I am less than pleased by the end result when the home-rolled version is a poor contender with several existing solutions. The modular intentions of Asterisk are great though there is no structure there either. Any module can dig its way into nearly all of the code of the core and often, inexperienced module programmers will re-implement existing functionality to the extent that even inside the same C source file, you may find multiple versions of the same functions with different names. The other problem with Asterisk modules are that many of the in-tree modules carry cross dependencies that make it impossible for the core to function without them. Some modules even depend on each other. This practice limits the portability since many operating systems will not tolerate one dynamic object from using symbols from another without hard linking them together. This is not the worst offense as far as portability; there are dozens more with many being accredited to Linux-specific assumptions. Apart from the technology problems the biggest remaining problem to consider is the community. The first experience for most Asterisk newcomers is an IRC channel where people fight for supremacy like information hungry pirates hording what they know and then sticking it to people for being so "stupid". (In other words, in the same boat they were in a few months back.) For those of us who are experienced developers, we are used to the l33t thing. The deal breaker is the issue management process. Submissions will generally be ignored for months then a one sentence overview will command the developer to fix minor issues and resubmit. This is almost tolerable if the submitted code was a new feature but more times than not it also happens with meaningful clean-up and repair of broken core functionality. I have heard this same complaint from countless ex-asterisk contributors over the past year and I am sure it is the number one cause of their ex status.

    In conclusion, I actively develop Asterisk code but now I only do it as a consultant. I am quite good at it and I know what I am talking about and I feel that the issues with Asterisk will never be addressed because there may be more Asterisk users every day but there are also less developers every day too and soon all the developers will be

  25. Re:And PBX is...? by grasshoppa · · Score: 2, Informative

    Let us not forget some of my personal favorites.

    --
    Mod me down with all of your hatred and your journey towards the dark side will be complete!
  26. Re:Asterisk has helped by showing us what not to d by iamnotaclown · · Score: 2, Interesting
    Question:

    Why C and not C++? I've worked on a lot of large software projects (both C and C++), and although C++ is far from perfect, it is orders of magnitude better for something as dependent on extensions as as what freeswitch is proposing to be.

    You're losing out on many useful features (data hiding, polymorphism, inheritance, references, the STL, etc.) and risking the same problems of loosely defined structure by tying freespace to C.

  27. Local talk by digitalhermit · · Score: 2, Informative

    FYI - Mark Spencer will be talking at our local Linux group tomorrow. Check www.flux.org for details.

  28. Re:Asterisk has helped by showing us what not to d by r5t8i6y3 · · Score: 2, Informative

    from: http://www.freeswitch.org/docs/

    "Licensing
    Freeswitch is licensed under the terms of the MPL 1.1"

    this license is *not* compatible with the gpl. even mozilla.org has stopped using this license:

    Mozilla Relicensing FAQ
    http://www.mozilla.org/MPL/relicensing-faq.html

    mozilla is relicensing all of their code under a triple mpl/lgpl/gpl license in order to make their products compatible with the gpl. please consider doing the same with freeswitch.

    read this if you need some more convincing as to why to relicense:

    Make Your Open Source Software GPL-Compatible. Or Else.
    http://www.dwheeler.com/essays/gpl-compatible.html

    bottom line, if freeswitch isn't gpl-compatible it's much less likely to be successful.

  29. Re:stuff to fix by Corydon76 · · Score: 2, Informative
    Here I am, doing nothing but IAX2. There is no reason that I should have to load a zaptel driver!

    And if you're using IAX2, you don't need to use Zaptel normally. The only reason you'd need to use Zaptel with IAX2 is if you were doing IAX trunking, something which most people do not do.

    A little bit of background for those readers unfamiliar with the issues. Telephone systems use a very strict timer of 8000 Hz. Given that this is far too heavy of an interrupt load for the PCI bus, Asterisk compromises and uses a 1000Hz interrupt, moving 8 samples for each interrupt. The RTC is close to 1000, but really isn't: it generates a 1024Hz interrupt. We compensate for the RTC clock in systems which don't have Zaptel hardware by ignoring 24 interrupts per second, thus letting us move the same 8,000 samples per second. Unfortunately, because we have to ignore some interrupts, the samples spacing is not quite equidistant, so there's some audio jitter caused by using RTC. It's not terrible, but it's not optimal.

    Zaptel, in additional to the telephony interface needed, whether it be T1, E1, or analog, also generates that nice consistent 1000Hz interrupt. Note that in systems that especially interface to the PSTN digitally (i.e. T1 or E1), we absolutely MUST match the timing of the PSTN exactly. 1024 minus 24 is not "good enough". This is the primary reason why we must have an accurate timer and why Asterisk relies intrinsically upon having such a timer available. Given that you have an accurate timer available, why would you code to anything else?

    The zaptel driver is a crude piece of crap that was rejected by the kernel developers. It is unfit for serious use.

    I'm unaware that Zaptel has ever been submitted to the kernel developers, let alone rejected. Frankly, the code moves too quickly for us to consider letting it be maintained by the kernel developers. Even if it was in the kernel, the stock kernel driver would be unlikely to be ever used, given that it would almost always be out of date. That's quite simply just wasted effort on maintenance by kernel developers. I'm sure we can all agree that the kernel developers have more important issues to deal with. As to the zaptel driver being "unfit", well, it's used in thousands of Asterisk systems around the world with no problem at all. This declaration that it's unfit sounds suspiciously like FUD.

  30. Re:Asterisk has helped by showing us what not to d by Corydon76 · · Score: 4, Insightful
    I am also an Asterisk developer and the list of my contributions to Asterisk are about as long as anthm's. While I certainly agree that he's entitled to his opinion, I disagree with him on many of his points.

    The modular intentions of Asterisk are great though there is no structure there either.

    There is plenty of structure, here, and while in the past some of the lines between different concepts have been blurry, we are continually improving the definitions and coming up with yet better core structures. We're improving. Anthony even made some of these contributions, but we have rejected some of his more radical patches (mostly implementing the idea that everything, even the module loader itself, should be able to be unloaded). While we agree with modular design, there should be a limit; something has to be core, or all your product is is a module loader.

    The other problem with Asterisk modules are that many of the in-tree modules carry cross dependencies that make it impossible for the core to function without them.

    This isn't true. I'm not sure where he got this idea, but certainly some modules depend upon others. That should be a given, but the idea that the core depends upon a module isn't true. Perhaps we modularized something that he thought should be core?

    The first experience for most Asterisk newcomers is an IRC channel where people fight for supremacy like information hungry pirates hording what they know and then sticking it to people for being so "stupid".

    We cannot control how other people act in public. Certainly we have a very vibrant community, but the first experience for Asterisk newcomers is generally the mailing list, not the IRC channel. While we certainly try not to feed the trolls, anybody who has been reading Slashdot for more than a week knows that the trolls stick around. And while we might rebuke others for being cruel on IRC, we cannot control how our users interact. For one thing, we cannot monitor the IRC channel 24/7; for another thing, our work is on Asterisk, not on controlling other users.

    I would defy anyone to find a vibrant open source software community that does not have people who will respond in sometimes nasty ways to people who have not yet learned to ask Smart Questions.

    Submissions will generally be ignored for months then a one sentence overview will command the developer to fix minor issues and resubmit.

    I'll admit that this has been a problem in the past, but we are working hard to correct it. Bugs filed are generally addressed the next day or at least within 7 days of them being posted. While there are certainly bugs that we reject, quite frequently patches go into SVN within hours of them being submitted. There are also complex patches that require more thought and careful consultation with other developers, to ensure they take the code in directions that we wish to go. These are generally the types of bugs which remain open the longest -- not because we're ignoring them, but because we are carefully considering them.

    soon all the developers will be nothing but users who have no other choice but to try and be developers

    It's unfortunate to hear such an elitist attitude. We all were only users once. Those of us who were interested enough learned and progressed and became developers. It's terrible that some people have forgotten this.

    I could go on for ages documenting more issues but they tend to fall on deaf ears.

    They actually didn't fall on deaf ears. Many of anthm's criticisms were taken quite seriously and have been addressed. It's sad to see another developer take his ball and go home, but we continue to move forward, with or without him. We aren't his keeper, and it's certainly his right to develop whatever he likes.