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…

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…


It’s been several months since we last addressed the "
Twitter
