Home » Technology » The Next Frontier: Introducing Asterisk@Home 2.8 and freePBX

The Most Versatile VoIP Provider: FREE PORTING

The Next Frontier: Introducing Asterisk@Home 2.8 and freePBX

We've dragged our feet a bit on releasing a Newbie's Guide to Asterisk@Home 2.8 waiting for some of the dust to settle. This release includes not only an upgrade to CentOS Linux and Asterisk® but also introduces a revolutionary new user interface to Asterisk, freePBX 2.01. Of course, there is the usual collection of add-on products (SendMail, Asterisk Mail, PHP, PHPmyAdmin, MySQL, SugarCRM, the Festival Speech Engine, Flash Operator Panel, Open A2Billing, Digium card auto-configuration, loads of AGI scripts including weather forecasts and wakeup calls, xPL support, Microsoft File Sharing and Networking support through Samba and much more) which makes Asterisk@Home one of the most revolutionary products in the commercial or open source marketplace. And, yep, it's still free!

Let us begin by suggesting who shouldn't install this software: NEWBIE'S! If you're one of them or if this is your first Asterisk installation, do yourself a huge favor and cut your teeth on Asterisk@Home 2.7. Our complete Newbie's Guide to Asterisk@Home 2.7 will get you up and running in under an hour. It is a production-quality PBX that just plain works. And it will all but eliminate any new user frustrations that often accompany installation of bleeding edge open source software. Asterisk@Home 2.8 certainly qualifies, and we mean that as a compliment! If you already have an Asterisk@Home system in production, this is an excellent opportunity to leave it alone and either buy a new PC (here's a small-footprint Compaq unit that will set you back less than $150). We just bought several! Or you can run a VMware version of Asterisk@Home 2.8 in a window on your Windows XP desktop. Our instructions for installing the VMware versions are available here. Untested BitTorrent links are available here which will conserve bandwidth at vmwarez.com.

Having said all of that, let us hasten to add that WE LOVE ASTERISK@HOME 2.8! The main reason is that it finally provides an incredibly simple upgrade system in freePBX which will eliminate your having to reinstall every single component from scratch each time a bugfix to the freePBX shell is released. And freePBX, which replaces the Asterisk Management Portal (AMP), finally provides a web interface to virtually anything you'd want to do with Asterisk without having to dig into their code. Finally, freePBX introduces modules which make it easy to add OR upgrade one component without the rip-and-replace drill which has accompanied Asterisk@Home upgrades since Day One. In conclusion, there now are simple upgrade paths for CentOS and its applications, Asterisk, freePBX, and SugarCRM. That all but eliminates the need to continually reinstall Asterisk@Home from scratch and will allow most of us to concentrate on adding new functionality. That's a WIN, WIN deal in our book!

In this introductory article to Asterisk@Home 2.8, we're going to skip some of the hoops we normally walk you through in our Newbie's Guide and point you to some of the new resources which have been put in place to support freePBX. You may want to print out the Newbie's Guide to Asterisk@Home 2.7 if you need a refresher course on some of the basics. We'll refer you to sections of that tutorial as we move quickly through the basics and then get to the good stuff in Asterisk@Home 2.8. The most important tip today is getting your system set up correctly so that you can quickly upgrade when new freePBX releases come out. This has been an almost daily occurrence for the past several weeks and probably will continue that way for at least another month or so. Not to worry! It's brain-dead simple to upgrade once you have your system properly configured. So let's get started.

Basic Asterisk@Home Installation Steps. Download the ISO image of Asterisk@Home 2.8 from your favorite mirror site and make yourself an installation CD. Load it into a machine whose hard disk can be dedicated to Asterisk@Home (i.e. erased). Before booting the system with the new CD, be sure the machine has Internet connectivity or the installation will fail without much of a clue that that's what went wrong. You'll be prompted to choose your root user password for CentOS as part of the install. When the installation completes, log in as root and change your other passwords according to our previous tutorials. Then run yum -y update to get the latest CentOS patches. If you want https web support, do yum -y install mod_ssl. If you want Bluetooth support, perform the same steps outlined in our earlier Newbie's Guides. Then reboot. As we write this, there is no kernel update to the new version of CentOS so there's no need to rebuild the zaptel drivers. When that changes, you'll need to go through the zaptel source rebuild drill which is outlined in our last Newbie's Guide.

Configuring freePBX for Easy Updates. There have been any number of problems identified with Asterisk@Home 2.8 on the SourceForge forums. Most of these involve minor tweaks to freePBX source code. "Minor" is, of course, in the eye of the beholder. It's sorta like minor surgery. That's surgery other folks are having. As tempting as it may be to make changes to the internal code of freePBX, DON'T! If you do, you will jeopardize your ability to automatically update the freePBX modules as new source code is released because each module now has a checksum which is tested before an update is permitted. Bug fixes are released almost daily so you won't have to wait long for a fix. Just to repeat again for slow learners and tinkerers: By messing with the freePBX source code, you will have just destroyed the very best feature of Asterisk@Home 2.8: instantaneous upgrades in place! We're by no means the freePBX experts, but some of the experts do read our columns and will post corrections if we haven't gotten what follows quite right. The critical component to Asterisk@Home 2.8 is getting it set up so you can quickly install freePBX updates as they are released. The web interface will even tell you when something new is available once it is configured properly. But, for this to work, we need to get freePBX upgraded from version 2.01 to the version 2.1beta. Here's how. Log into your Asterisk@Home server as root and issue the following commands before you do any configuring using the freePBX web interface:

cd /usr/src
rm -rf /usr/src/freepbx
svn co https://svn.sourceforge.net/svnroot/amportal/freepbx/trunk freepbx
cd freepbx
./install_amp --force-version=2.0.1
amportal restart

You're now set up to download future updates whenever you need them using commands like this:

cd /usr/src/freepbx
svn update
./install_amp --force-version=2.0.1
amportal restart

Keep in mind that you only need to do this when the freePBX "engine" is replaced. All of the individual components which make up freePBX (think of them as spark plugs if you remember what those were) now can be updated from within the web interface itself. If you want more details about the process, click here but we think we've got it about right.

Getting Started with freePBX. You still access freePBX just as you accessed AMP, by pointing a web browser to the internal IP address of your new Asterisk system. The username is still maint. Just enter the password you assigned to freePBX/AMP when you configured your system. In the old days, AMP came preconfigured with everything they thought you'd need to use it. With the new freePBX architecture, you first have to install and enable the modules you want to use. And now others can write modules to expand the capabilities of freePBX without futzing around in the basic source code. You get to these modules by choosing Tools->Module Admin from the main freePBX menu. Unlike some applications, there's really no reason not to activate all of the available modules since they won't slow down Asterisk. The only performance hit is when you click the Red Bar to reload freePBX. The more modules you've activated, the longer it will take to reload freePBX since it queries each module to see if changes need to be applied.

The other thing you need to know about Modules is that there are two types: Local Modules and Online Modules. Local Modules are the pieces that make freePBX work on your local machine. Online Modules provides access to modules which are available for download over the Internet. And Online Modules even tells you which ones are newer than the ones currently on your system. To install new modules after an engine update, you first may need to Uninstall and Remove the old modules from within the Local Modules window if the modules appear to be corrupted. Otherwise, don't or you'll lose your existing configuration data. See the comments for more details. You can do it safely this time IF you haven't input any data yet. Next go back to the Online Modules window and click Download beside each module you want to obtain. When the downloads complete, return to the Local Modules window and click Install then Enable for each module. It sounds harder than it really is, but it's exactly the upgrade path that most of us have been clamoring for these past dozen or so months. Just check the Online Modules window from time to time to see what's new and install it. There were four new updates just today! Before too long, we wouldn't be surprised to see an option to email you notices when new modules are released or older ones are updated. This is nothing short of fantastic for the Asterisk community if we do say so.

Last but not least, for each Module, there now is online documentation. You can read about all the Module pieces by clicking here. Knock yourself out! Once you complete the above steps, you're ready to set up your new system.

Setting Up freePBX. When you click the new Setup tab in freePBX, the first thing you'll notice is there are a lot more options. Start by adding your Trunks. This works pretty much like it always has. Choose ZAP, IAX2, SIP, or ENUM for each trunk and proceed accordingly. Down the road, the grand plan is to have sample settings for each provider on line here. Very cool!

When you have your Trunks set up, you'll need a way to call in (Inbound Routes), call out (Outbound Routes), and a way to process incoming calls: a Digital Receptionist, a Call Queue, a Custom Application, DISA, or a phone to ring (Extensions). And you can add Follow Me routing now with the click of a button. And did we mention the incredible flexibility which has been added to manage calls at different times of the day, week, or month? Check out Time Conditions. The only piece that's still missing is a way to Monitor Inbound Routes by Channel rather than by DID since some providers don't pass DID information but hopefully that will come in due course. You can follow along in our previous tutorials for the basics. When you're ready to explore the new Configuration options, here's the link with all the latest and greatest information. Using freePBX at the moment is akin to laying track in front of a steaming locomotive, but the benefits are so enormous and the bug fixes are being released so quickly that you really won't find it very painful. We haven't! Having said that, I don't think you'd want to stake your business on it at the moment, but it's quickly getting there. And you'll find the adventure downright exhilarating. To our guiding light, Rob Thomas, and the entire freePBX development crew, our hats are off! You get an A+ in our book on this one. And, of course, our usual thanks and gratitude to Andrew Gillis for single-handedly producing nearly flawless versions of Asterisk@Home month after month after month.

Restoring the Asterisk@Home Maintenance Functions. If you're like us, you've become dependent upon the Maintenance functions previously included in the AAH web interface to AMP. You have two choices: either clone it from a system you already have or wait on Rob Thomas to finish his new one. It's easy to restore them if you have an existing Asterisk@Home system running in parallel. First, log in to your new AAH 2.8 server as root and issue this command: mkdir /var/www/html/maint. Then log in to your old AAH system as root and issue the following command substituting the IP address of your AAH 2.8 server for 192.168.0.128. Provide your root password to your new server when prompted.

scp -r /var/www/html/maint/*.* root@192.168.0.128:/var/www/html/maint

Now you can access the old Maintenance functions by pointing your web browser to http://192.168.0.128/maint/. Just ignore the Asterisk@Home version number unless you want to crank up Nano and edit /var/www/html/maint/index.php.

Where to Go From Here. This article is a bit of a work in progress for a couple of reasons. First, if you haven't heard, we're moving. In and of itself that wouldn't be a big deal except (1) the movers are coming in three weeks and (2) we're attempting to cram 5500 square feet of "stuff" into the new 3500 square foot house. With less than a month to go, the blog articles have temporarily moved down the priority list a bit ... unless you want to join me sleeping in the street. Second, the amount of new technology in Asterisk@Home 2.8 is truly mind numbing, and it's going to take the whiz kids and us some time to absorb and digest all of the changes and enhancements. Do yourself and everyone else a favor. As you find new features or problems, post them here or on SourceForge so that we all can benefit from the discoveries. We'll do our best to incorporate new changes into this article in the coming weeks so check back often and be sure to read the comments or subscribe to the Nerd Vittles Comments RSS feed. Enjoy!

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, is running a special this month on hosting services. For $6.95 a month, you can host up to 6 domains with 15GB of disk storage and 400GB of monthly bandwidth. It doesn't get any better than that, and their hosting services are flawless! We oughta know. We've tried the best of them. If you've never tried a web hosting provider, there's never been a better time. Just use this link, and we'll all be happy.


Nerd Vittles User Map. Thanks for visiting! We hope you'll take a second and add yourself to our Frappr World Map compliments of Google. In making your entry, you can choose an icon: guy, gal, nerd, or geek. For those that don't know the difference in the last two, here's the best definition we've found: "a nerd is very similar to a geek, but with more RAM and a faster modem." We're always looking for the best BBQ joints on the planet. So, if you know of one, add it to the map while you're visiting as well. You'll notice there's a little bug in the map display at the moment. It wipes out everyone in the U.S. and Canada. Is that loud cheering we hear? Not to worry! You can restore us all by moving east or west on the default display, or choose the Big Map Display option after you add yourself, and you can see the whole Nerd Vittles universe. frappr bug fixed: May 3.

Want More Projects? For a complete catalog of all our previous Asterisk projects, click here. For the most recent articles, click here and just scroll down the page.

Headline News for the Busy Executive and the Lazy Loafer. Get your Headline News the easy way: Planet Asterisk, Planet Gadget, Planet Mac, and Planet Daily. Quick read, no fluff.

Got a PDA or Web-Enabled Smartphone? Check out our new PDAweather.org site and get the latest weather updates and forecasts from the National Weather Service perfectly formatted for quick download and display on your favorite web-enabled PDA, cellphone, or Internet Tablet. And, of course, it's all FREE!


23 Comments

  1. Yay! No more slash and burn upgrades! (I couldn’t wait, installed 2.8 last week but still love the article)

  2. There are few webpages I keep coming back to – yours is one of them. I had a number of issues with Asterisk in the early days, this site helped me solve them.

    Good luck with the move, cant wait to read more about what you have found in the system and ways we can make it do more cool things.

  3. Maintenance functions are provided from within the FreePBX structure (at least in the A@H 2.8 ISO). Look in the Module Administration area. You’ll find them listed. Once you install and then enable them, you can access them thru the TOOLS menu. No need to fiddle with trying to port them from a previous version.

    [WM: Once you upgrade to freePBX 2.1, the Maintenance functions disappear. Here’s the new fix.]

  4. Casey, that’s the case after you upgrade freePBX to version 2.1beta1, where this is implemented as a feature, rather than missing maintenance tools. Again, this has been discussed a lot, and Rob is working on getting them back in the 2.1 final release, or probably even in the next release that’s due toward the end of the week if I am not wrong, having read from the Whirlpool forums. Cheers.

  5. There’s still a 7-second delay in reading each line of text with Festival in this new version using our old clunker test machine with 256MB of RAM. This has existed since AAH 2.0. If you get better results, please post them. Otherwise, there’s still a bug somewhere.

  6. Couple of minor corrections – you don’t need to uninstall modules before you upgrade them. They all should upgrade themselves seamlessly.
    There’s also a known bug in 2.1beta1 that stops the ‘Trunk Dial Paramaters’ from working. That’s fixed in SVN which, if the users follow your instructions, they’ll be using… Umm. I think that’s about it.

    [WM: Rob, thanks. After upgrading to 2.1beta1 from the 2.01 version shipped with Asterisk@Home 2.8, all of the installed modules turned to gibberish and appeared to be corrupted. That’s the only reason I suggested removing them first. Once the upgrade to 2.1beta was completed, further upgrades (of which there were about a half dozen this morning) worked as advertised, i.e. no need to uninstall a prior version before upgrading. Since AAH 2.8 users all are building a new system from scratch, it was pretty harmless to delete the problem modules before proceeding just to be on the safe side. But it’s good to know that, in the future, that won’t be necessary. Thanks for reviewing everything. We’ll sleep better now.]

  7. They turned to ‘unknown/invalid’ because we changed from a ‘module.ini’ setup to a ‘module.xml’ – We’re Buzzword Compliant! Removing the modules would _probably_ have deleted the contents of the table for each module, and if it did that, it would have stuffed up any previously set up IVRs, time conditions, etc. Correct upgrade procedure is ./install_amp –force-version=2.0.1 (The ‘–force_version’ shouldn’t be required, but it doesn’t hurt to do it), go into modules, download and install all of them in online modules, go into local modules,click install, and upgrade if you’re prompted to do so. Yes, we know it’s a lot of clicking, and 2.1beta2 should fix that up too. (Ooh, I’m letting secrets out now! Ryan told me this morning that he’s done a whole pile of work on the module page, which I’m looking forward to seeing!)

  8. Regarding the 7-second delay with festival . . . When I dial *51 to have festival read my weather report, the first time it downloads a new report I get the delay, but if I call a second time within a short period of time (the weather info is already cached) then I don’t experience a delay. It seems the "easiest" way to remove the delay would be to have a background task automatically check and cache the weather info regularly, and have the weather feature always use the cached version.

    [WM: You’re correct, but Festival has numerous other uses that are all but worthless with such a lengthy delay. I’d prefer to see the problem fixed so that it works like our AAH 1.5 system still does. Then again maybe we’ll just hang on to the 1.5 system for use as a Festival server.]

  9. My solution to Festival is to use flite. Which can be found here: http://cmuflite.org It has been my experience with using the slower machines that Festival needs way too much CPU and that some or most of the delay is the conversion time. The Festival scripts for Asterisk produce a .wav that is played back after conversion. Flite was designed for speed on embeded systems and PDA type devices and uses very little CPU. It’s default voice is also setup for 8KHZ which is perfect for Asterisk. It’s a very simple tweek (for those who are inclined) to replace text2wav with Flite in the Festival scripts. There is even an app_flight floating around for direct Asterisk interface. See: http://dialogpalette.sourceforge.net/ and check the downloads.

    [WM: Great tip. In fact, it’s so GREAT that we plan to cover it in an upcoming article. Can’t get app_flite to speak with AAH 2.8, but Flite works great in an AGI script. If you’ve had any success with app_flite, drop us a line.]

  10. hey! whatever happened to the asterisk info page that gave you status on EVERYTHING! it was so great! cant find it anywhere on freepbx…

    [WM: Here’s the fix for putting the Maintenance Tab back in AAH 2.8 once you upgrade to freePBX 2.1.]

  11. Ward,

    2.8 is great and thanks to you I had it up and running on a new machine within 30 minutes. ZAP auto configured and works without effort. However my Telasip inbound is broke, any ideas?

    Mike

  12. I’ve been trying to get SugarCRM to get my pop email, but it says I need the IMAP libraries compiled into PHP or something… An article on how to do so would be really cool. I’ve been reading your articles for quite some time now and they’ve been a Godsend.

    Thanks for everything guys!

    Brodie

  13. Well I upgraded to 2.8 and find it to be a pleasurable experience. However, I now cannot recieve inbound Telasip calls. It seems with original settings copied from 2.7 inbound calls hit my box but are answered by Telasip and default to my email at thier end. Any ideas?

  14. You state that Internet connectivity is needed for the install to succeed? Why? Where I am installing the system, I do not have DHCP. I know how to get in on console and mode the necessary files to bring the interfaces up afterwards. But if the install had to go out and fetch something, I missed it.

    I am proceeding with the yum update, but if I have to get a DHCP server on that segment and reinstall, please tell me, and update your ‘internet connectivity’ to be a little more helpful (interfaces need manual config or not all software installed).

    [WM: Robert, it sounds like you know a lot more about this than we do. Our technical explanation is "ours breaks" without Internet connectivity. There is undoubtedly a way to fix it … as with all things Linux. We just don’t know how. So our advice is to set up Internet connectivity first. Then it just works, and you don’t have to wrestle with it. Good luck though!]

  15. Question on zaptel rebuild:

    Your 2.7 instructions includes a patch for spinlock. But with 2.8 we are on CentOS 4.3. Is this patch still required? If so is the source still in the same directory?

    Thank you for your wonderful set of instructions. I and many others know to look here. Is there at least a pointer to here in the Asterisk WiKi?

    [WM: Spinlock patch is not required in 2.8.]

  16. Quote: As tempting as it may be to make changes to the internal code of freePBX, DON’T!
    So my question: is this applicable to CONF files, for example sip_nat.conf?

  17. I too am not able to recieve inbound Telasip calls but out bound work fine.. Has anybody solved this issue???

    Thanks!

  18. To get imap support in php for the asterisk@home/ centos / sugarcrm package, try (command line)
    yum install php-imap
    I rebooted after that. I think that’s all you need

  19. I followed the 2.8 instructions and inbound Telasip go un-answered, the calls do not even hit my AAH box.. Has there been a Context change (I use from-pstn – per Telasip) or some Trunk Settings??

    Thanks!!

  20. THis has been a great site, with tons of help getting my AAH up and running. Question what do I need to watch for if I try to upgrade FreePBX after having already got system up and running. Rushed into the update to 2.8 before article came out. Please help.

    [WM: Just follow the freepBX upgrade steps in the article. Oughta work just fine.]

  21. My name is William and I work for the company PC Pharmacy located in Seattle. We just pulled out 40 Dell Optiplex’s GX110. They all have P3 667; 256 MB RAM; 20 GB Hard drive; builtin 10/100 ethernet detected by A@H; built in video; CD-Rom and 2.5 floppy; and beige tower case. I will sell them for $50 plus shipping. I am using one of them now for my business A@H server. If you are interested either e-mail me at william at pcpharmacyrx dot com or call 206-973-3122.

  22. Having installed the 2.8 ISO and then run:
    cd /usr/src
    rm -rf /usr/src/freepbx
    svn co https://svn.sourceforge.net/svnroot/amportal/freepbx/trunk freepbx
    cd freepbx
    ./install_amp –force-version=2.0.1

    I get many lines of:

    Warning: fread(): supplied argument is not a valid stream resource in /usr/src/freepbx/install_amp on line 336

    Warning: feof(): supplied argument is not a valid stream resource in /usr/src/freepbx/install_amp on line 335

    This is doubly strange since it has worked previously with exactly the same h/w. Any ideas out here please?

    [WM: Install TrixBox 1.1 instead of AAH 2.8.]

  23. A@H on VMWare suffers from timing problems because VMware lacks a reliable timing source – results in a ‘sweaky’ IVR Receptionist!
    Has anyone solved this problem?

    [WM: Read all the comments to our latest TrixBox 1.2.3 VMware article (option at top of the page). All of the solutions are addressed… and they work.

Comments are closed.