It’s been several months since we last addressed the "Asterisk® Problem" and much has been written and spoken on the subject since then. In a nutshell, the problem is the code changes made in each new version of Asterisk which break existing business applications. We’ve come to a better appreciation of the point of view of some of the Asterisk developers. But I’m sorry to say they haven’t budged. The good news is that much has changed for the better in spite of the Asterisk developers. And today we wanted to share some of those developments with you.

The Developer Mentality. Suffice it to say that the Asterisk development community is quite small and mostly driven (like most programmers) by a fierce sense of independence. The puzzling part is that most of these guys (and it is an all-male club) work for companies that make their living in the Asterisk marketplace, either manufacturing or selling hardware for Asterisk-based telephony systems. For the most part, however, these companies are hardware peddlers rather than system integrators. One fact of life has become crystal clear. New versions and new beta releases NEVER break existing hardware. Why? Because these are the companies that feed these guys. "Whose bread I eat, his song I sing" goes the old adage. So hardware that was purchased in the Asterisk 1.2 days still works equally well with the latest 1.6 beta releases. Thank you very much.

Business application software for Asterisk is an altogether different equation. Here the developer mantra goes something like this. You’re using our code for free, and we’ll improve it in any way we think is best. If it breaks your application code, too damn bad! You can either fix it, stop using it, or go elsewhere. And we really don’t care which option you choose. The sad part of that mentality is a total lack of appreciation for the fact that, once demand for Asterisk systems in the business community dries up, the demand for Asterisk hardware will also take a nosedive.

The types of business applications that have been broken are major, not organization-specific. For example, Asterisk 1.4 broke the open source fax application. And Asterisk 1.6-beta broke both the open source and commercial text-to-speech (TTS) engines. The sad part is that the applications were broken by trivial code changes in Asterisk that just as easily could have been accomplished without breaking any application code.

This development approach, of course, keeps Asterisk out of most major corporations and government organizations even though it is an almost perfect fit for many of them. Why? It’s pretty simple. Business application software in most major organizations isn’t written in house. It’s developed by outside contractors who typically bid on a project, win the bid, develop the software application, and move on. Three to five years later, they usually are not around to rebuild something that the Asterisk developers have broken with their "improvements." Since phone systems usually are measured in decades and Asterisk releases are measured in years, it’s a pretty terrible fit for most major corporations and government organizations. Can you imagine a WalMart or a Hilton Hotel replacing their telephony applications every couple of years because all of their fax capability suddenly vanished? The same is equally true in the medical and legal communities as well as in major real estate and construction companies. Earth-to-Digium®: Companies have more to do than babysit their phone systems.

What we said four months ago is equally true today. When we began the PBX in a Flash project last November, our emphasis was radically different than some of the other Asterisk aggregations. First and foremost, we wanted a product that was stable. Of equal importance was our own Big Easy: easy to use, easy to enhance, and easy to upgrade. We didn’t want users or VARs having to reinvent the wheel each time a security patch or new enhancement was released. To look at it from the customer side, no business (that wants to stay in business) will tolerate a phone system that is routinely out of service for upgrades much less one that takes away features that the business depends upon. Whether it’s Caller ID, or Text-to-Speech, or Screen Pops, or Conferencing, or Phone Blasting, or even a Call Center really doesn’t matter. It does no good to tell a customer that they lost critical functionality but now they have the latest version of Asterisk. You can add your own customer expletive here if you’ve ever tried this approach in the real world.

In the good old days when there wasn’t much of a feature set and when no business would stake their livelihood on Asterisk, it really didn’t much matter when a new version of Asterisk was released. To put it charitably, things could only get better. But, businesses now rely upon Asterisk. So the dynamics are quite different. It’s no longer acceptable to trash big chunks of code without making certain that you didn’t break something that was already working. It’s no longer acceptable to invent new verbs in the programming language while deleting commands that used to work.

The Good News. There really is a silver lining to this story. There’s a new game in town: FreeSwitch. It may take a year, but this is an all new technology with a team of developers with an all new attitude about software development. This is a product that is being developed from the ground up to meet business needs. It employs modern, business interfaces with which most major organizations are already familiar. Can it do what Asterisk can do? For the 60% of Asterisk functions that already work, FreeSwitch not only gets a check mark but the performance improvement is staggering. And for the 60% of FreeSwitch functions that Asterisk can’t do at all… well, you’ll just have to try it. Give them six to twelve more months, and we predict the trickle of Asterisk defections is going to turn into a stampede. Both a Windows implementation for your desktop and a turnkey Linux install via ISO are now available. What’s still missing is a tool as simple as FreePBX to actually configure everything, but rumor has it that there are several GUI interfaces in the pipeline. And for the short term, nothing could be much simpler than the XML code that makes FreeSwitch tick. Indeed, dozens and dozens of sample XML scripts are already available which mirror most major Asterisk functions and dialplan applications.

And More Good News. The problem with breaking generic business applications is that the developers who initially wrote the open source apps are no longer around or interested in Asterisk. Wonder why? In any case, thanks to Antonio Gallo, open source faxing for Asterisk 1.4 is back. And, thanks to Darren Sessions, open source text-to-speech with Flite for Asterisk 1.4 and 1.6 is a reality once again. Installation on CentOS systems still is a bit hairy. So we will include Flite for both Asterisk 1.4 and 1.6 in our new PBX in a Flash 1.3 release next week. And faxing will return for Asterisk 1.4 in our first SUSHI update shortly thereafter. Enjoy!

Another Good Read: Open Source VoIP: Asterisk or FreeSwitch by David Greenfield

And Another: Asterisk vs. FreeSwitch by Anders Brownworth


 

Special Thanks to Our Generous Sponsors

FULL DISCLOSURE: RentPBX, Amazon, Skyetel, Vitelity, DigitalOcean, Vultr, Digium, Sangoma, 3CX, TelecomsXchange and others have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

Skyetel $50 Free Trial: Enjoy state-of-the-art VoIP service with a $50 free trial and free number porting when you sign up for a Skyetel account. No restrictions on number of simultaneous calls, and triple data center redundancy assures that you never experience a failed call. Tutorial and sign up details available here.

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest…

Print Friendly, PDF & Email

Be Sociable, Share!

Tags:

This article has 13 comments

  1. I look forward to Free Switch; I cringe every time I have to upgrade asterisk! I had to completely re-implement a system last year because of the 1.2->1.4 changes. I’m not sure I’ll ever go to 1.6 if I have an option not to. Thank you for giving us something stable to work from… it saves me a good chunk of time over building the system from scratch.

  2. Finally! I will be testing this, I am still using 1.4 and 1.2, I have clients I haven’t been able to upgrade to 1.4 because of some custom integratiosn that no longer work, and would cost too much to update. And I see the same thing is going to happen to my new clients once 1.4 becomes obsolete… It’s going to be another PITA.

    I really hope FreeSwitch gets to the point Asterisk is right now, and we’ll see if Asterisk development will listen then!

    Thanks for the info Uncle Ward!

  3. Speaking of Open Source fax, I found all of the files for setting up SpanDSP and installing app_rxfax and app_txfax – except for the asterisk patch file. Every download link I came across was a dead end. Let me know if anyone finds it.

    I really liked your contrasting of hardware backward compatibility to software backward compatibility. Great point.

  4. WARD – I LOVE YOU!!!!! Faxing is back!!!!!! I cannot wait!!!! Thanks!

  5. I like the concept of freeswitch. Much like Asterisk it will need a GUI to gain mainstream apeal I and technical people such as myself could probably do well with a book called freeswitch the new face of telephony’s future ( I want a penny a book if you use that)… anyhow the only thing missing is good Hardware support. It works now but think the setup is over complicated or under documented. Over all solid hardware support + Gui for the mainstream it will deffinately compete.

  6. Ward,
    A fine article you’ve written! FreeSWITCH is definitely on the rise. The shortcomings are, as usual, the things that programmers and developers like doing the least: GUIs and documentation. We are working diligently on both fronts. Hopefully things will continue to improve steadily as they have been doing for the past few years. We have quite a number of "Asterisk refugees" coming over and we are trying our best to get them up to speed. BTW, if you are familiar with both Asterisk and FreeSWITCH then we invite you to add your knowledge to the "Rosetta Stone" document:
    http://wiki.freeswitch.org/wiki/Rosetta_stone

    Thanks again for a great article. We look forward to seeing "Uncle Ward" cook up some more goodies based on FreeSWITCH!

    -MC

  7. For a terrific FreeSwitch tutorial with sample code that will get you up and running with trunks, extensions, voicemail, and an IVR in less than 5 minutes, go here.

  8. So, does this mean that PBXiaF 1.4 (or 2.0) will be based on FreeSwitch? Can you post a link to any of the GUI projects in development for FreeSwitch? Also, how well does the Windows implementation of FreeSwitch work?

    I have been in love with Asterisk since the day I picked up the first edition O’Reilly book about it. I really wish the developers would wake up and smell the coffee. They need to take a look at another up-and-coming open source project which have multiple versions out: Linux. When a new major kernel version is released, does the Linux community change programming structure on the whim? No. They know it would break things and that would discourage people from using it. Do the good folks at Digium think that the Asterisk community is any different?

    [WM: No news yet on PBXiaF 1.4. As for a GUI, I’ve updated the article and added a link, but here it is again.]

  9. Good article, I had been hoping for some time that you might do a similar piece on Callweaver, a open source project that addresses many of the shortcomings of asterisk. The big advantage for all those using asterisk is that Callweaver is similar enough that the front end FreePbx would work with it with limited modification. However not having the technical depth in linux or programming have never tried to get it going.

  10. Last week at Cluecon ’08 there was a presentation on another Gui for FreeSWITCH. It should be out soon. http://www.d-man.org/news/2008/07/26/66/

  11. Another nail in the coffin…

    On Wednesday 13 August 2008 08:27:00 Kevin P. Fleming responded to Ralfe Poisson:

    >> Ralfe Poisson wrote:
    > > I’m busy developing an AGI application which was working well under 1.4.
    > > I’ve just upgraded to Asterisk 1.6 and am having two issues which I can’t seem to sort out.
    >
    >
    > Kevin Fleming’s response:
    > Your problems are caused by using vertical bar (pipe) characters as
    > argument separators; Asterisk 1.6 supports *only* commas as argument
    > separators to applications, unlike 1.2 and 1.4 which supported both.
    >
    > This is documented in the UPGRADE.txt file, and that file even tells you
    > about a configuration option to provide backward compatibility if you
    > need it. Please read the upgrade documentation when upgrading to new
    > major releases of Asterisk 🙂

  12. Based on some of the comments I’ve read here it should be pointed out that FreeSwitch is NOT an Asterisk clone. Just as TDM types like to think inside the box about SIP, please don’t use Asterisk to measure FreeSwitch or OpenSER – they are fundamentally different. FreeSwitch et al does SIP and only SIP – RTP is on it’s own. All other applications bolt on (typically with "XML"). This puts FreeSwitch MILES ahead of the pack when doing collaboration and presence (FMC and all the rest).

    VoIP is about to take off (for real this time).

  13. Thanks for this great article, which is accurate. My efforts on new products or deployments are all with FreeSWITCH and I must say it’s ready for serious usage.

    Of course there’s a lack of a GUI and documentation, which I’m sure will soon be solved. As it is now, it’s better than any other solution I’ve seen.