We’ve patiently waited until after April Fool’s Day to publish this column, but we’re having second thoughts. It may have been more fitting yesterday. One of the problems with laying track in front of a steaming locomotive is that someone still needs to watch where the train is headed. So it is with Asterisk®. And 1.6 has all the ingredients of a train wreck waiting to happen. To fully appreciate the reality of the situation, one need look no further than the business model of the Ciscos, Avayas, and the Nortels. Simply put, no customer cares what version of a phone system they are buying. Or, to dumb it down to a Clintonism: "It’s the Feature Set, Stupid!" When the features stop working, the customers start walking. It’s as simple as that.

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. 40,000 downloads in just over four months tells me we got it just about right. 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 X. You can add your own customer expletive here if you’ve ever tried this approach in the real world.

Which brings us back to Asterisk 1.6. 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. Well, things have changed. 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. We defy you to find a link to any document that explains the transition from Asterisk 1.2 verbs to Asterisk 1.4 produced by the developers of the product. Asterisk 1.6 continues the programming carnage while adding some bells and whistles of its own: for example, an entirely new and different Asterisk Manager. And the scorecard: Screen Pops, Dead. Phone Blasting, Dead. Flite Text-to-Speech, Dead. Cepstral, Dead. Speech-to-Text, Dead. To show you the mentality of the programmers that think all of this is a good idea, here’s the response to our complaint that Asterisk 1.6 broke virtually all existing text-to-speech applications… again!

    Summary: 0012348: Neither Flite nor Cepstral TTS works with Asterisk 1.6

    Description: Lack of native support for either Flite or Cepstral TTS breaks thousands of existing text-to-speech Asterisk applications.

    Response: This is clearly code that is not in Asterisk. Many of us cannot even look at the code, unless it has been disclaimed. If the original developers are not willing/able to update their code, then you are going to either have to find somebody who will do it for free, or offer a bounty for somebody to do it. This is most certainly not the place to be requesting this. In the future, before posting any bug reports, please read the bug guidelines as linked on the main page of bugs.digium.com.

Wrong, wrong, wrong. That’s the type of attitude that will sound the death knell for Asterisk. Here’s the tattoo that should be stamped on every programmer’s foreskin forehead: You Break It, You Fix It. I Break It, I Fix It. Hopefully Mark & Co. will come to their senses before it’s too late.

Click here for Chapter 2.


Footnote: Since releasing this article earlier today, we’ve gotten a response from Cepstral Support. They also had contacted Digium® for help with this. If you loved the original Digium response to the bug report, you’ll really enjoy this one:

    "Thank you for your interest in Cepstral Voices. In my discussions with Digium they made three comments:

    1) That releasing an "ISO" of Asterisk may break the GPL2 (they were more certain than "may"). I would check with Digium on this. (WM: We already have sent the correspondence and can’t wait to hear more!)

    2) Asterisk V. 1.6 is in Beta and that they take the typical corporate stand on Beta. They know of incompatibilities, but since it is in Beta – they are working through these.

    3) Cepstral and Digium both recommend that you contact the people that wrote the app_swift layer. In the future there may be some app_swift / app_cepstral / res_cepstral that is "official" – but right now it is a bit pot-luck in support."


 

Special Thanks to Our Generous Sponsors

FULL DISCLOSURE: RentPBX, Amazon, Skyetel, Vitelity, DigitalOcean, Vultr, Digium, 3CX, Sangoma, TelecomsXchange and VitalPBX 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.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls plus quadruple data center redundancy assures that you’ll never have a failed call. Tutorial and sign up details are here.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously offered to provide a customized White Label version of Incredible PBX that is specifically tailored for use with Incredible PBX and VitalPBX custom applications. Soon!
 

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!

This article has 13 comments

  1. An interesting read.
    I appreciate that progress involves change, and change involves, well… things not being the same any more. It’s not reasonable to assume that what worked 5 years ago will still work today, and trying to make it do so can make things much worse.

    However, the response to the support case is shocking. TTS may not be the most important thing in the world to some people, but Ward’s point is spot on; it used to work, so they should fix it.

    Asterisk should have built-in tts functionality out of the box anyway. I wonder if we’ll get a direct response from Mark here?

    [WM: Phone systems are designed to last much longer than 5 years. 10 to 15 is the average in most of the federal government, for example. In the case of Asterisk versions, there was less than a year between version 1.2 and version 1.4. They broke TTS in 1.4. And they seem to think that same timetable and same approach is a good idea (again) with 1.6.]

  2. I fully agree with this article. Even within minor versions they have changed things that broke working PBX’s. For example, SetCallerID changing to Set(CALLERID). Sure, add a new, more progressive syntax, but for God’s sake keep the old, backwards compatible syntax, too! Unless it were completely polluting and breaking the command namespace (which it isn’t), leave the old keywords around! If you must, wrap them in a #define so you can exclude them *IF YOU WANT*, but leave them there by default.

    Asterisk is getting a foothold in major installations. It either is, or has the ability to, totally shake up the foundations of telephony within that world. But deprecating commands rather than keeping them for backwards compatibility is amateurish and Mickey Mouse behaviour, and will alienate them from the corporate world pretty quickly.

    I’m glad 1.4 is solid, and supported, since I doubt I’ll ever have the nerve to move to 1.6 for any real world customer.

    Sadly, other folks doing asterisk-ish stuff, such as FreePBX, are *much* better at moving forward without breaking things. I’m not afraid to do a FreePBX module update on a client site. I’m terrified to do an asterisk code update on a client site, and that’s rather sad…

    On another note, have other people thought about Digium and its future in general? I find that with the power of asterisk, and the prevalence of great SIP phones or ATA’s, and great VOIP providers, these days I’m needing digium hardware less and less. (Only when I want to interface to an FXO or FXS, and there are some good Network based alternatives for that these days.)

    They seem to be progressing by reselling third parties bundled PBX’s, which isn’t as progressive as I’d expect from the likes of Digium. Maybe they’ve lost Mark’s original vision and drive. His ideas like DUNDI and such could be extended and commercialized quite nicely by Digium. Instead, all their "exciting new announcements" seem to just center around slogging third party bundled PBXs, which is a bit lame…

    [WM: Couldn’t have said it better.]

  3. Actually, it’s a bit off topic, here’s a more on what I’d like to see Digium do:

    – Run with the IAXy concept (my next few points focus on that). VOIP providers are making the FXO/PRI/ISDN stuff all a bit irrelevant. However, IAXY’s are a great solution for using low cost phones as portable extensions.

    – Add DNS to the IAXy. Hell, open the source, and I’ll do it myself and submit the code back to you. IAXy’s are great for taking on the road, but not if you have a dynamic DNS.

    – Add distinctive ring, and some other missing features to the IAXy. (Again, give me the code, and *I’ll* do it for you for free.)

    – Make a two-line IAXy. Right now, I can buy a Linksys SPA that has two lines from Staples or FutureShop for half the price of the IAXy.

    – Add an power-over-ethernet option for the IAXy. The power cube makes it a far less elegant solution for the corporate desktop.

    – Develop DUNDI further; I don’t mind this being a commercial registry, if it works. I don’t know of anyone actually using it. Maybe add a PSTN gateway to it, become a provider (or partner with one). If Digium were a good VOIP provider (or closely partnered with one), a lot of Asterisk users would use them by default.

    – Create (or license) a good SIP/IAX2 phone, with a good XML display. A IP phone that was designed around Asterisk’s features from the ground up (and was supported explicitly by asterisk), would truly rock. Make your AsteriskGUI or FreePBX or FOP-like switchboard work right on the display of phone.

    – I say turf AsteriskGUI and throw your weight behind FreePBX. AsteriskGUI seems like a pale imitation of FreePBX. It’d make your bundled appliances less lame, too.

    – Bundled appliances are fine, but most people who seek out an asterisk-like solution are not the type of people who want to pay a per-seat license. They’ll go to the phone company if that’s their style. Any asterisk system I set up for people costs $0 per additional extension (well, the cost of an IAXy or SIP phone). Per-user licensing is inconsistent with asterisk users’ needs. You’re not a traditional PBX supplier, stop trying to act like one.

    – Make some network-based FXO’s (and multi FXS/FXO combinations) Linksys (by buying Sipura, I guess) has a nice selection of FXO/FXS devices in various combinations. They’re eating your lunch in this market. You should be able to dominate. I think the trend is away from PC cards, and into these network based FXS/FXO devices; don’t miss the boat. If Asterisk had some external IAX based network FXS/FXO devices (maybe even ones that accepted the existing FXO/FXS modules), I’d certainly buy them as the preferred device for Asterisk installations. Now, I’m seriously considering going primarily to Linksys gear.

    – I love IAX as a protocol. So much less of a headache than SIP. Leverage that more. The only bit of hardware you’ve created that does anything IAX is the IAXy, and as I mentioned, you need to do more with that. I’ve read about one or two IP phones that support IAX, but the only information from these are on Chinese sites; I’m not about to order direct from China.

    Well, that’s enough of a rant from now. Here’s hoping Digium can start innovating again…

  4. TTS is VERY important to me 🙂

    I am building a very large TTS applicaton that will be used by 1/3 of the state of Louisiana where residents will receive automatic call backs for their inspection reports in real time. (It reads them the inspector’s notes and all.) Currently, I am building this with 1.4 so I am quite discouraged to think about what I might face in asterisk upgrades 🙁

  5. I spoke with a Cepstral engineer today and he said he is constantly in contact with Mark at Digium. He was very careful to clarify that he did not want to put words in their mouth, but that the tone from Digium was that 1.6 is just a beta and they will have the TTS issues resolved by the time it is a stable release.

    I was more encouraged after hearing this.

    [WM: Hope you’re right. Funny that no one ever bothered to fix TTS before 1.4 was released. Only through the work of a couple of our folks and another fellow did any of it ever get working. I would hasten to add that Cepstral has been the big winner in all of this, and their contribution in furtherance of the Asterisk open source project has been exactly zero to date. Digium also has promised "a big huge response" to our article. Can’t wait. Stay tuned!]

    [Update: I’ve now received the ‘big, huge response’ but we don’t publish private emails without permission. I’ve asked so we’ll see what we see. Suffice it to say, there is no mention of any support by Digium for TTS in Asterisk 1.6.]

  6. Ward, I could not agree more with your assessment and conclusions. Any GPL project that genuinely wants community involvement and support would be well advised to perform basic housekeeping of their code and document changes. Meaningful responses to questions is another important aspect. Absent those key ingredients, your ultimate conclusion is spot on.

    I’m really curious as to the validity of the claim that distributing an ISO of Asterisk’s GPL2 version would violate either the letter and/or spirit of the GPL2. The quote was qualified, which only lends me to suspect the validity even more. I’m no lawyer, but the PBXiaF project seems much more compliant than some others if you ask me.

    [WM: PBX in a Flash complies with GPL2. The asserted claim was that we were including proprietary, non-GPL2 Cepstral object code in our distribution. That claim is false. What’s particularly disturbing is that someone who apparently thought otherwise would raise the matter by reportedly making such allegations to a third party rather than ever contacting us. So the open source folks scratch each other’s eyes out while the competition focuses on developing platforms upon which commercial organizations can build viable phone systems. Great business model, huh? Really makes you want to write another Asterisk application… for free!]

  7. Ward you are so right!! I can not believe Digium has no more vision than what they are demonstrating in the last couple of years. I guess Mark has found more money in speaking engagements! In my simplified world: What if the Linux Kernel developers took the same approach Digium has taken? One thing is for sure. We would not have this problem. There would likely be no Linux and no Asterisk.

  8. The main problem is that Digium won’t do the right thing with the license. Kill the dual license. They won’t because they want to sell Asterisk Business Edition. Redhat is doing well SUPPORTING not SELLING Linux. The only way Asterisk will continue is by opening the code up. If it was pure GPL, we would already have working T.38 fax support. The developers of that will not give their code to Digium, so things are at a standstill.

    That’s my opinion, for what it’s worth!

  9. With Trixbox, MP3 support, Dead. I asked about it and they said to convert the MP3 files to WAV. They said there is too much of a performance hit playing MP3’s. I have streaming radio stations on extensions so I can hear my favorite shows. I installed mpg123 but cannot get a station to stream.

    I was also using Flite. It would hang up the line just after calling in. Everything had to be commented out for it to work.

    I would like to see a feature like listening to the latest podcasts on an extension. Downloading the newest file and playing it.

    [WM: Pay a quick visit to the PBX in a Flash Forums.]

  10. I’m a recent PIAF convert. I was using a fourloops product that digium bought them. It was downhill after that. They release patches that kill working features. They claim the reason to purchase their product is for the support. There is NO support. Yes, I can call a phone number and talk to someone but I’m still waiting for a fix.

    It seems that there is a common thread with Digium and the direction they are headed. I hope things turn around.

    [WM: So do we.]

  11. The only thing like this that I can think of is Mambo -> Joomla where the project forked.
    What else can we do if they don’t pay attention to well known players…

  12. Which is why Asterisk already was forked: http://www.callweaver.org/wiki/CallWeaver

  13. Just use FreeSWITCH, it’s a lot better. Asterisk is worthless and broken software.