Posts tagged: digium

Dear Digium: It’s Time to Start Eating Your Own Dog Food

Many years ago when Eric Schmidt headed up Novell, the company prided itself on being an organization that ate its own dog food before releasing code to the public. Microsoft has done much the same thing with new releases of Windows. And it’s not a surprise that the dogfood principle carried over to Google as well. The end result is that not only are products less buggy, but many of the day-to-day implementation issues already have been resolved long before the public ever touches a shipping product. Microsoft expanded on this by offering beta releases of code to thousands of “pioneers” that understood the risks of using untested software that still was under development. That brings us to Digium® and Asterisk® 1.8 which is quickly devolving into a perpetual beta release.

While we’ve never been invited to Digium’s headquarters for reasons that should be obvious when you read articles like this, the scuttlebutt always has been that Digium uses a commercial PBX internally to support its telecommunications needs. Indeed, most of the commercial resellers of Asterisk products market a far different flavor of Asterisk with dozens if not hundreds of patches that are not available to the general public. And one of the distinguishing features of PBX in a Flash always has been its update-fixes utility which incorporates dozens and dozens of patches into every version of Asterisk that is installed by end-users and developers alike. Some of this needs refinement if Asterisk 1.8 is going to have a chance of adoption in the commercial marketplace.

The root of the problem in the Asterisk world is that we now find ourselves with one and only one supported version of Asterisk: Asterisk 1.8. And it happens to be a version that few people actually use to run their businesses. The reason for this dilemma is that, other than security fixes, Digium now has dropped support for both Asterisk 1.4 and 1.6, the two products that most folks regard as the “stable releases” and deploy in production systems. So we’re left with a supported version of Asterisk that no one actually is using or selling for a production environment. Indeed, Digium, The Asterisk Company markets a commercial product based upon a completely different version of Asterisk!

The bottom line is, if Digium isn’t willing to stake its business on Asterisk 1.8, why should anyone else take the plunge? After all, who knows Asterisk better than The Asterisk Company? Suffice it to say Asterisk 1.8 is not getting the necessary testing that a product with an installed base in the millions deserves and, indeed, requires in order to flourish.

This ultimately leads to embarrassing situations such as the release of Asterisk 1.8.4 last week followed by the almost immediate discovery (worldwide) that Cisco phones no longer could connect to Asterisk servers. The response to complaints was that the necessary code wasn’t in the source tree. No kidding! As it has turned out, there wasn’t an available patch that worked either.

For a whole host of reasons, this should never have happened. If Digium and some of the lead developers used Asterisk 1.8 to run their businesses, we’re pretty sure we wouldn’t be writing this column. There are some other considerations that should be equally obvious. First, any regression testing methodology worth its salt should have caught this since Cisco phones registered properly with Asterisk 1.8.3.3 and prior versions. Second, major mistakes like this give a black eye to a promising product that for the most part has been incredibly stable since its initial release. Third, shipping a version like 1.8.4 instantly reduces the pool of users willing to try new releases because of the very real perception that with each new release comes a risk that Digium and the Asterisk developers have chosen to reinvent the wheel without telling anybody.

PBX in a Flash has become the de facto aggregation platform for those wanting to deploy a turnkey version of Asterisk 1.8 because it includes the very latest versions of CentOS 5.6, Asterisk 1.8, and FreePBX 2.8 plus all of the other necessary components to get up and running quickly. But, as we discovered the hard way last week, this also means that the latest, greatest release can also bring a whole host of problems just as quickly. So here’s what we’ve done to mitigate the damage. Later today we will introduce new PBX in a Flash 1.7.5.6.2 ISOs in 32-bit and 64-bit flavors that include a utility to select prior versions of Asterisk 1.8 to deploy rather than just the current release. Check back here or join us on Twitter for the actual release announcement. Of course, you still can choose from two versions of Asterisk 1.4 as well as the latest version of Asterisk 1.6.2 as well.

The 32-bit and 64-bit releases of PBX in a Flash 1.7.5.6.2 are now available on SourceForge and our other download mirrors.

By way of example, let’s assume you want to install Asterisk 1.8, but you also have an office full of Cisco phones so you’d prefer that your employees still have the ability to make and receive phone calls. Thus, you’d like to install Asterisk 1.8.3.3 instead of Asterisk 1.8.4. So here’s how to do it using PBX in a Flash 1.7.5.6.2. First, burn the ISO to a CD and begin the install on a dedicated server by booting from the ISO and pressing the Enter key. After choosing your keyboard, time zone, and root password, the installer will build you a base CentOS 5.6 system. When the system reboots, remove the CD. This will bring up the menu which ordinarily lets you choose the flavor of Asterisk you would like to install. Instead of choosing Gold, Silver, Bronze, or Purple, choose the last option which lets you drop down to the Linux command prompt. Log into your server as root using your new root password. Now issue the following command: piafdl -p 1833. When you press the Enter key, you’ll get a new PIAF-Purple install with Asterisk 1.8.3.3 instead of 1.8.4.

If you have an earlier PBX in a Flash ISO and would like to mimic this behavior to load Asterisk 1.8.3.3, here’s how. Install the CentOS portion of PBX in a Flash in the usual way. When your server reboots after removing the CD, choose the Linux CLI option from the PIAF flavors menu. Log in as root and issue the following commands:

cd /root
wget http://pbxinaflash.com/1833.sh
chmod +x 1833.sh
./1833.sh

There’s some added flexibility in the new PIAF 1.7.5.6.2 ISO as well. In the event we experience a problem with one of our mirrors, PIAF always has had the flexibility to retry downloads from another mirror. But now you also can force an install from a specific mirror site. For example, piafdl -c -p 1883 would force an install of Asterisk 1.8.3.3 from our .com site, piafdl -d -p 1883 would force an install of Asterisk 1.8.3.3 from our .org site, and piafdl -e -p 1883 would force an install of Asterisk 1.8.3.3 from our .net site. In addition, this added flexibility will let us offer newer releases for pioneers and older releases for those that need a specific function. Keep reading for more details…

Awesome t-shirt design courtesy of @jaysimons

For “the rest of the story,” be sure to read the Comments including Digium’s response to this article.

Continue reading Part II, Part III, and Part IV

May 21 Update: Because of the instability issues with Asterisk 1.8.4, we have backrevved PIAF-Purple, our Asterisk 1.8 flavor, to Asterisk 1.8.3.3. Cisco phones work; however, this does not fix a problem with Polycom phones. To address that, you will need Asterisk 1.8.3.2; however, that version was not as stable with Google Voice. So you now have the Hobson’s Choice of picking your poison. The default PIAF-Purple selection will get you Asterisk 1.8.3.3. Or you can drop down to the Linux CLI, login as root and issue: piafdl -p 184 (for Asterisk 1.8.4) or piafdl -p 1832 (for Asterisk 1.8.3.2). For the time being, a “stable version” of Asterisk 1.8 unfortunately isn’t in the cards.

June 1 Update: As of today, the new default PIAF-Purple is Asterisk 1.8.4.1.

Originally published: Monday, May 16, 2011



Need help with Asterisk? Visit the PBX in a Flash Forum.
Or Try the New, Free PBX in a Flash Conference Bridge.


whos.amung.us If you’re wondering what your fellow man is reading on Nerd Vittles these days, wonder no more. Visit our new whos.amung.us statistical web site and check out what’s happening. It’s a terrific resource both for us and for you.


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. You now can get an almost half-price DID and 60 free minutes from our special Vitelity sign-up link. If you’re seeking the best flexibility in choosing an area code and phone number plus the lowest entry level pricing plus high quality calls, then Vitelity is the hands-down winner. Vitelity provides Tier A DID inbound service in over 3,000 rate centers throughout the US and Canada. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road while you get an incredible signup deal as well. The going rate for Vitelity’s DID service is $7.95 a month which includes up to 4,000 incoming minutes on two simultaneous channels with terminations priced at 1.45¢ per minute. Not any more! For PBX in a Flash users, here’s a deal you can’t (and shouldn’t) refuse! Sign up now, and you can purchase a Tier A DID with unlimited incoming calls for just $3.99 a month and you get a free hour of outbound calling to test out their call quality. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this link to order your DIDs, or you won’t get the special pricing! After the free hour of outbound calling, Vitelity’s rate is just 1.44¢ per minute for outbound calls in the U.S. There is a $35 prepay when you sign up. This covers future usage and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

The Digium Conundrum: Will Asterisk Be Just Another Asterisk on the VoIP Radar

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


New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. Until October 15, you can get an almost half-price DID and 60 free minutes from our special Vitelity sign-up link. If you’re seeking the best flexibility in choosing an area code and phone number plus the lowest entry level pricing plus high quality calls, then Vitelity is the hands-down winner. Vitelity provides Tier A DID inbound service in over 3,000 rate centers throughout the US and Canada. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road while you get an incredible signup deal as well. The going rate for Vitelity’s DID service is $7.95 a month which includes up to 4,000 incoming minutes on two simultaneous channels with terminations priced at 1.45¢ per minute. Not any more! For PBX in a Flash users, here’s a deal you can’t (and shouldn’t) refuse! Sign up now, and you can purchase a Tier A DID with unlimited incoming calls for just $3.99 a month and you get a free hour of outbound calling to test out their call quality. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this link to order your DIDs, or you won’t get the special pricing! After the free hour of outbound calling, Vitelity’s rate is just 1.44¢ per minute for outbound calls in the U.S. There is a $35 prepay when you sign up. This covers future usage and any balance is fully refundable if you decide to discontinue service with Vitelity.


Some Recent Nerd Vittles Articles of Interest…

Ringbinder theme by Themocracy