Home » Technology » As Easy As 1-2-3: The Newbie’s Guide to TrixBox 1.2.3

The Most Versatile VoIP Provider: FREE PORTING

As Easy As 1-2-3: The Newbie’s Guide to TrixBox 1.2.3

NOTE: The system referenced in this article is no longer supported by Nerd Vittles as this version of Asterisk® has been phased out. For the latest and greatest, please consider our new PBX in a Flash offering.

Today we'll show you how to install the latest and greatest TrixBox 1.2.3 in about an hour. It is by far the best Asterisk-based IP PBX on the planet... especially once you add all of the Nerd Vittles goodies. It's been a painful couple of months in the TrixBox community, but the wait is over. Whether you're a casual home user or a gigantic call center processing millions of calls a month, this IP PBX can do it all reliably. And the best news: everything is FREE except the hardware on which to run your new system. For our new, automatic installation procedure, try PBX-in-a-Flash™. It's free, too!

What makes the TrixBox implementation really shine is freePBX 2.1.3 which brings to the table an incredibly simple yet powerful, upgradable web-based GUI to totally manage your PBX. And TrixBox adds all of the Asterisk bells and whistles you could ever ask for in an integrated PBX: full-featured database management, simple hooks to high-level application development tools such as PHP and Perl, an Apache web server, the MySQL DBMS, integrated voicemail and fax-to-email support, contact management, calling card billing, hardware autoconfiguration for Digium hardware as well as phone autoconfiguration for Cisco, Aastra, GrandStream, and Snom phones. In addition, you get built in Microsoft networking support, an integrated text-to-speech system, and loads of free utility software applications for Asterisk compliments of Nerd Vittles. And, yes, TrixBox 1.2.3 still fits on a single CD! For those new to Nerd Vittles, be aware that we make slipstream changes to articles as users discover things we've missed. Yes, we're human! So check for Comments before you begin or subscribe to our Comments RSS Feed. And, last but not least, be sure to add yourself to the Nerd Vittles Fan Club Map. So let's get started.

HOT TIP: For a turnkey version of TrixBox 1.2.3 that runs on your Windows desktop and includes the entire setup we'll be discussing as well as an out-of-the-box setup for 10 extensions and two VoIP providers, click here.

The Game Plan. Because of WordPress article length limitations and our own limited attention span, we're just going to cover the basics in this Guide. We'll leave a lot of the bells and whistles for future articles. We'll get your TrixBox system running so that you can make your first call. And we also will get your TrixBox system properly configured to support all of the dozens of Nerd Vittles' free applications.

Hardware Setup. You have two choices for hardware to run this new system. The first is to dedicate a machine to TrixBox and download the TrixBox ISO image to burn a bootable CD. Once you create the TrixBox CD, you simply boot your dedicated PC with the new CD. It will erase and reformat your hard disk for use with Linux and the included Linux and Asterisk applications. If you just want to experiment with TrixBox and don't plan to put the system into production other than for a few simultaneous calls, then you may prefer our PBX-in-a-Flash™ image. With this approach, you install VMware on your existing Windows XP system. Then you run Linux and the TrixBox application in a window on your Windows PC. It does not require a dedicated machine, and it's still FREE. We've found the performance to be virtually identical to running TrixBox on a dedicated PC provided your Windows machine has at least 512MB to 1GB of RAM. See our previous article for step-by-step instructions on the VMware installation process.

For today, however, we're assuming you've opted for the dedicated machine install: pure Linux on a clean machine. So begin by downloading the TrixBox ISO image from here and burn a CD (click here if you need a refresher course). Using your dedicated PC, insert the CD you made, plug your machine into the Internet, and turn it on. Then watch while TrixBox loads CentOS/4.4 (with an older Linux kernel that doesn't break voice applications!) and all the Asterisk and Linux goodies imaginable: Apache, SendMail, Asterisk Mail, SugarCRM, MySQL, PHP, phpMyAdmin, SSH, Bluetooth, freePBX, the Flash Operator Panel, Call Detail Reporting, and on and on. We've covered how to use most of the Linux products in our Mac HOW-TO's (see sidebar), and they work exactly the same way with TrixBox 1.2.3 so have a look around Nerd Vittles. There's plenty to keep you busy from now until Christmas. Remember! This install will reformat (aka ERASE) your hard disk before it begins, but it will warn you first. When you're prompted to create your root user password, type in something you can remember ... and write it down!

Upgrading TrixBox from a Prior Version of Asterisk@Home. In a nutshell, YOU CAN'T. But there is a way to put most of Humpty back together again once you've installed the new system. Before you begin, understand that you are doing this AT YOUR OWN RISK. NO GUARANTEES. If that bothers you, don't do it! The real trick is to do a little printing and copying of your old data before you insert that TrixBox installation disk. Step 1 is to make a full backup of your old system to a different server before you begin. If you don't know how, read our step-by-step instructions on the subject here. Step 2 is to make another copy of some of the critical files in your system. Duplicates of all of these will also be part of your backup. We typically build directories on a separate server which match the ones we'll be copying over from the old Asterisk system. Here are the directories (including all the subdirectories therein) that we always duplicate. Before you just blindly copy our list, stop and think whether there are special things you do on your existing Asterisk system or special apps that you run. Then find those files and make copies of all of them, too. The important piece in making a successful copy of some of these files is to shut down Asterisk (amportal stop) and MySQL (/etc/init.d/mysqld stop) before you begin. NOTE to CRM users: There's a new version of CRM in TrixBox so it's unlikely that you can restore the databases. Check your current version of AAH (help-aah) and see if there is an option (bundle-crm) to pack up CRM to move it to another machine. If so, do it and follow the instructions. We don't use Sugar so we haven't tested this upgrade option. Here are the directories you'll want to back up:


Then there are a couple of individual files that you'll also want to preserve:


The third step is to take screenshots of every screen you've built using the Asterisk Management Portal (AMP) or a prior version of freePBX. Start in the Setup tab and go right down the list of features. For each option in which you have multiple entries (e.g. Extensions and Trunks), call up each entry and print out the full page. Be especially careful in printing the Trunks entries and make sure you write down every line in the PEER Details and USER Details because those which are out of view will not get printed using a screen print. You'll need to manually fill in the ones that aren't displayed. The same goes for Registration Strings which often scroll out of view on the screen. Finally, using CLI (asterisk -r), make a copy of all your Asterisk database entries: database show. And, using phpMyAdmin, make a backup of any MySQL databases that you'd prefer not to lose, especially Airports, asteridex, sugarcrm, and mya2billing if you use and have added or changed data in any of those applications. Now save all this information in a safe place until we finish the new install.

Loading CentOS/4 and TrixBox 1.2.3. Here's how the install went for us, and we'll walk you through getting everything set up so that it can be used as a production server. Once the install begins, you can expect to eat up about 25 minutes with the CentOS 4.4 install. Just be sure to create your new root user password before you walk away, or it will still be sitting there waiting when you return. Once Linux is installed, the TrixBox CD will eject itself. You need to be present to remove the CD before the system reboots and begins the Asterisk compile and install. That takes about 25 more minutes to complete.

Securing Your Passwords. When the install is finished and reboots again, log in as root with the password you assigned. Type help-trixbox for a listing of the other passwords that need to be changed. Change them all NOW!

passwd admin

Securing and Activating A2Billing. This web-based application allows you to generate and issue calling cards to individuals so that they can place calls remotely through your Asterisk server. If you've always wanted to be just like Ma Bell, here's your Big Chance! There's very little that you can do with an AT&T calling card that can't be done as well or better using A2Billing. And, it won't take an M.B.A. to undercut AT&T's calling card rates and still make buckets of money. All you need now are a few customers. But first, a word of caution. Assuming your Asterisk server has web exposure on the Internet, you need to secure the admin and root passwords in this application whether you use it or not. To access the application, go to using the actual internal IP address of your Asterisk server. Log in as root with a password of myroot. Click on the ADMINISTRATOR tab in the left column and then click Show Administrator. Now click on the Edit button beside each of the two administrator accounts and change the passwords to something secure. If you really would like to learn more about it, documentation for the application is available here. And, if you decide to use the application, you'll need to uncomment six actual dialplan lines in /etc/asterisk/extensions_trixbox.conf and reload Asterisk. Be sure to use a separate DID for this application and point it to custom-callingcard,s,1. We'll have a terrific new VoIP provider with dirt cheap DID rates to tell you about shortly so stay tuned!

;exten => s,1,Answer
;exten => s,2,Wait,2
;exten => s,3,DeadAGI,a2billing.php
;exten => s,4,Wait,2
;exten => s,5,Hangup

Securing SugarCRM Contact Management. TrixBox includes the best open source contact management application on the planet, SugarCRM. You access the application with a web browser: substituting the private IP address of your Asterisk box, of course. We're going to stop repeating the substitution tip from here on. Whenever you see a reference to 192.168.something, just substitute the private IP address of your TrixBox server. Once the SugarCRM login screen appears, specify admin for your username and password for your password. Whether you use the application or not, change the admin password. It's easy. Just click the Administrator link under Welcome admin. Then click the Change Password button. Complete documentation for the application is available here. If contact management is your thing, knock yourself out, and we'll talk to you next spring when you finish getting everything set up to run your business. It's a great product, but be prepared to invest lots of time in the project if you expect to use it productively. If all you need is a phone dialer and a database that can display CallerID info for your friends and business associates, our AsteriDex product will be a better fit, and it takes about 2 seconds to enter each new person into the AsteriDex database.

If It Ain't Broke, Don't Fix It! Your new TrixBox includes a great utility to keep itself up to date. You simply log into your system as root and issue this command: trixbox-update.sh update. If the update script has also been updated, you'll need to run the command twice. That's the good news. The bad news is that these updates have broken TrixBox systems about as many times as they've fixed a problem. Our advice is to leave the update utility alone for the time being and only run it after someone you trust verifies that it won't bring your system down like a house of cards. The same applies to yum update. In earlier 1.2.x versions, this loaded a new Linux kernel which broke speech applications on many systems. What you'll have with TrixBox 1.2.3 is a very stable, secure system so don't break it by randomly adding new stuff. You've been warned.

Upgrading TrixBox to Support MailCall. The new TrixBox MailCall application needs POP3 and IMAP support for PHP in order to log into and read email messages to you over the phone using your email account. TrixBox 1.2.x versions are missing full PHP-IMAP support. Here's how to install what you'll need for versions 1.2 through 1.2.2. Log into your TrixBox system as root and issue the following commands in order.

cd /root
wget http://nerdvittles.com/trixbox122/libc-client-2002e-14.i386.rpm
wget http://nerdvittles.com/trixbox122/php-imap-4.3.11-2.8.i386.rpm
rpm -Uvh libc*
rpm -Uvh php*
apachectl restart

cd /var/www/html
wget http://nerdvittles.com/trixbox11/test.zip
unzip test.zip
rm -f test.zip

TrixBox 1.2.3 fixed part of the problem by including php-imap but left out the libc-client library so it still won't work without doing the following:

cd /root
wget http://nerdvittles.com/trixbox122/libc-client-2002e-14.i386.rpm
rpm -Uvh libc*
apachectl restart

cd /var/www/html
wget http://nerdvittles.com/trixbox11/test.zip
unzip test.zip
rm -f test.zip

To be sure everything went according to plan, use your web browser now to access and be sure imap appears in the list of enabled libraries. Once you finish this tutorial, you should be all set to install the MailCall for Asterisk application.

Updating freePBX to the Latest Release. There's a more stable version of freePBX which isn't included in the TrixBox 1.2.3 build. Here's how to install it. Log into your server as root and issue the following commands:

cd /usr/src/
svn co https://svn.sourceforge.net/svnroot/amportal/freepbx/tags/2.1.3 freepbx-2.1.3
cd freepbx-2.1.3

Securing Asterisk. Because of a security vulnerability in the (Cisco) Skinny module of Asterisk, it needs to be disabled. Log into your server as root and edit modules.conf: nano -w /etc/asterisk/modules.conf. Then insert the following line in the [modules] context. Save the file and restart Asterisk: amportal restart.

noload => chan_skinny.so

Activating Bluetooth Support. Once the updates are completed, activate Bluetooth support if you plan to use it with our Follow-Me Phoning proximity detection application. Run setup, down arrow to System Services, press ENTER, down arrow to bluetooth and press the space bar, tab to OK, press ENTER, tab twice to Quit and press ENTER.

Activating Apache HTTPS Support. If you want secure Internet web access to your server, log into your system as root and issue these commands. Once https support is installed, you can access freePBX securely: https://AsteriskServerIPaddress.

yum -y install mod_ssl
shutdown -r now

Asterisk Info Application Is Back. One of the nice applications that previously was bundled in Asterisk@Home was Asterisk Info. It gave a detailed summary of many critical components in Asterisk including a listing of active SIP and IAX peers and registry entries. This is especially helpful when you're setting up new providers and want to see whether you're getting connected successfully. The application vanished in TrixBox 1.0, but it's back in TrixBox 1.1. You can run the application using a web browser pointed to the correct IP address of your server: Then choose Asterisk Info from the TrixBox Configuration and Administration page. Or access it directly:

Simplifying SSH Access. If you're going to be connecting to other servers from your new TrixBox system using SSH or SCP, then build your new RSA key pair now. This lets you use SSH and SCP (secure copy) without having to enter a password each time. You can also automate backups and proximity detection scripts as we've explained previously here. Log in to your new TrixBox server as root. From the command prompt, issue the following command: ssh-keygen -t rsa. Press the enter key three times. You should see something similar to the following. The file name and location in bold below is the information we need:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
1d:3c:14:23:d8:7b:57:d2:cd:18:70:80:0f:9b:b5:92 root@asterisk1.local

Now copy the file in bold above to your other Asterisk servers, Linux machines, and Macs. There's probably a way on PCs as well, but we've all but given up on that platform where security matters so you're on your own there. From your TrixBox server using SCP, the command should look like the following (except use the private IP address of each of your other Asterisk or Linux servers instead of Provide the root password to your other servers (one at a time) when prompted to do so.

scp /root/.ssh/id_rsa.pub root@

On a Mac running Mac OS X, the command would look like this (using your username and your Mac's IP address, of course):

For user access only: scp /root/.ssh/id_rsa.pub wardmundy@
For full root access: scp /root/.ssh/id_rsa.pub root@

Once the file has been copied to each server, try to log in to your other server from your new TrixBox server with the following command using the correct destination IP address, of course:

ssh root@

You should be admitted without entering a password. If not, repeat the drill or read the complete article and find where you made a mistake. Now log out of the other server by typing exit.

Installing WebMin. We don't build Linux systems without installing WebMin, the Swiss Army knife of the Linux World. You can use it to start and stop services, check logs, adjust startup scripts, manage cron jobs, babysit your SendMail server, and many, many other tasks that are downright painful without it. If you ever need help from others, WebMin is a great tool for letting others help you.

There are lots of ways to install WebMin. WebMin now is part of the TrixBox yum repository so, after logging in as root, just issue the following command: yum -y install webmin.

WebMin runs its own web server on port 10000. To start WebMin, issue this command: /etc/webmin/start. You access it with a web browser pointed to the IP address of your Asterisk box (i.e. replace at the correct port address, e.g. Note, https support won't work on port 10000 without a bit of additional tweaking! The login name is root. Then type in your root password and press enter. The main WebMin screen will display. We really don't want the WebMin server starting up each time the OS reboots so do the following. Once you're logged in to WebMin, choose System->Bootup and Shutdown and then click on webmin. Click the No button beside Start at boot time, and then click the Save button. To stop WebMin when you're finished using it, issue this command: /etc/webmin/stop. You can restart it any time you need it, and then use a web browser to access it. But there's no need to waste processing resources. For complete WebMin documentation, click here.

[Note: This appears to be temporarily broken in the latest version of WebMin so try it again in a few days if it hangs during the Net::SSLeay install.] If you're going to be accessing WebMin from outside your firewall, you really don't want to be logging in as root over an unencrypted connection so let's enable https support for WebMin. While still logged into WebMin, click WebMin->WebMin Config->SSL Encryption. Now click Install Net::SSLeay Perl Module. Once the module is downloaded, click the Continue With Install button. The make and make install process will take a minute or two. Once you get the completed sucessfully message, click Return to WebMin. Choose WebMin->WebMin Config->SSL Encryption again. At the bottom of the form, click the Create Now button to create your SSL key. Click Return to WebMin again. Then choose WebMin->WebMin Config->SSL Encryption once more. Change the Enable SSL if available option to Yes, leave the other defaults, and save your changes. Henceforth, you can log into your server using HTTPS: https://TrixBoxIPaddress:10000/.

IP Configuration for Asterisk. We need a consistent IP address or domain name both on your internal network and externally if you expect to receive incoming calls reliably. There are three pieces to the IP configuration: (1) setting the internal IP address of your Asterisk server, (2) configuring a fully-qualified (external) domain name for your new server which will always point to your router/firewall, and (3) configuring your router to transfer incoming Asterisk packets to your Asterisk server. Here's how.

First, log into your server as root using your new password. Now type ifconfig eth0 (that's "e-t-h-zero") then enter, and write down both your inet addr and your HWaddr on the Ethernet 0 interface, eth0. Inet addr is the internal IP address of your Asterisk box assigned by your DHCP server (i.e. your router/firewall). HWAddr is the MAC address of your Asterisk server's eth0 network card. To assure a consistent internal IP address, you can either configure your router/DHCP server to make certain that it always hands out this same address to your Asterisk machine, or you can manually configure an IP address for this machine which is not in the range of addresses used by your DHCP server. Almost all routers now make it easy to preassign DHCP addresses so we prefer option 1. It's generally under the tab for LAN IP Setup or DHCP Configuration and is generally called something like Reserved IP table. Just add an entry and call it Asterisk PBX and specify the IP address and MAC address that you wrote down above. Now each time you reboot your Asterisk server, your router will assign it this same IP addreess.

To assure a consistent external address is a little trickier. Unless you have a static (fixed) IP address, you'll want to use a Dynamic DNS service such as dyndns.org and configure your router to always advertise its external IP address to dyndns.org. DynDNS.org will take care of revising the IP address associated with your domain name when your ISP changes your dynamic IP address. Then you can configure your VoIP provider account using your fully-qualified dyndns.org domain name, e.g. windswept.dyndns.org provides access to our beach house network even though Time Warner cable hands out dynamic IP addresses which change from time to time.

Now you'll need to log into your router and redirect certain incoming UDP packets to the internal IP address of your Asterisk machine. If you want external access to the Apache web server on your Asterisk machine, then map TCP port 80 to the internal IP address of your Asterisk system. For WebMin external access, map TCP port 10000 to your Asterisk system. If you want remote access to your Asterisk system via SSH, then map TCP port 22 to the internal IP address of your Asterisk system. If you want external IP phones or other Asterisk servers to be able to communicate with your Asterisk system, then map the following UDP port ranges to the internal IP address of your Asterisk system:

SIP 5004-5082
RTP 10001-20000
IAX 4569

For more details, read our full article on the subject.

Finally, you'll need to tell Asterisk about some of this. Edit the sip.conf file (nano -w /etc/asterisk/sip.conf) and add the following entries in the [general] section of the file using your fully-qualified domain name for your server and the private IP address range used behind your router/firewall (typically or with most home routers):

externhost = yourdomainname.dyndns.org

Designing Your PBX System. For those new to the Asterisk world, we'll be using a web-based GUI to configure Asterisk to meet your needs. Step 1 is to get away from your computer and sit down with a piece of paper. Now lay out how you'd like your new system to operate. How many phones will you have? Will they be software-based phones or good old phones you can put on a desktop? Will they be POTS phones (plain old touchtone phones), cordless POTS phones, SIP phones, IAX phones, or cordless SIP phones? How will you make and receive calls? Are you going to use an existing Ma Bell phone line or VoIP trunk lines from one or more VoIP providers? What should happen when incoming calls arrive? Do you want the caller to get an AutoAttendant message ("Hi. You've reached the Mundy's. Press 1 for Mary, 2 for Ward, or 3 to leave a message.") or do you just want all of your phones to start ringing? What should happen when no one answers or the line is busy? Do you want the calls transferred to a cell phone, another POTS phone, or just sent to voicemail? Which voicemail account? Should all busy phones send callers to the same voicemail account, or do you want one for each phone? What should happen once voicemail arrives? Do you want the phone to ring once a minute? Do you want the message waiting indicator to illuminate? Do you want the voicemail message to be emailed to you? Do you also want it preserved so that you can retrieve it from a touchtone phone? Do you want to be paged with the number of the person that called you?

ATTN: "Type A" Males. With apologies to our female readers, here's a tip for all the guys. If you have a wife (and want to keep her) or if you have teenage daughters (and want to avoid being killed in your sleep), you'd better get most of this PBX design right if you plan to use Asterisk to replace your existing home phone system. Otherwise, the day after you install your new system, a typical discussion with your spouse will begin with something like this: "What was wrong with our old phones that just rang when someone called and I could actually hear what they were saying when I answered?" With that caveat in mind, let's jump right in to freePBX.

Today's Objective. Keeping in mind that there are a million ways to configure and customize a PBX, we're going to walk you through a very simple setup today. Our objective is to get Asterisk and freePBX configured so that you can make a call and receive a call. In our next article, we'll start adding all the bells and whistles. But, for today, we'll show you how to set up an incoming and an outgoing VoIP trunk so you can make and receive free calls (at least in the U.S.) using a free softphone. When no one answers, the call will be sent to voicemail. And, when a voicemail message is left, the message will be emailed to you. We'll leave integration of existing POTS phones and phone lines for another day.

Choosing VoIP Providers. As you will quickly learn, choosing VoIP providers is an art, not a science. And it can be a slippery slope. A provider that is great one day can turn into an absolute nightmare the next. Take BroadVoice, for example. They used to be one of our favorites. Then the CEO left, and the company's business practices, uh, changed to put it charitably. You can read all about it on this forum or at the Better Business Bureau's site. All it takes is a change in leadership or direction at the company headquarters to go from first to worst overnight. So the best advice we can offer about choosing providers is this. Stay Flexible! Don't put all your eggs in one basket. And don't be in a hurry to disconnect your Ma Bell line and transfer your number until you are pretty confident about your provider. Six months is an absolute minimum, and a year is probably better. VoIP providers come and go at about the same pace as fast food restaurants in a new community.

Having said all of that, we have some providers we really like and some that we don't. YMMV! The basic idea in switching to Voice Over IP technology was to save money... not just for the provider, but for you, too. So PRICE MATTERS. There are typically three types of VoIP service: all-you-can-eat at a fixed monthly price, pay-as-you-go at a per minute (or part of a minute) rate, and free. Some providers only offer outbound service, and others offer incoming and outgoing calls. To receive calls, you've got to have an account with a provider that will give you a phone number unless you want to only get calls from other users of that provider's service, e.g. Skype. You don't have to use the same provider for inbound and outbound calls, and you are better off with backup providers for BOTH inbound and outbound calls.

If you select an all-you-can-eat plan, you basically get the right to make (or receive) ONE phone call at a time to a certain geographic area. This may be a state, an area code, or a country depending upon where you live and which provider you choose. The best of these in the U.S. is TelaSIP at $14.95 a month for unlimited US48 calling for the first three months, then $19.95. The runner-up is Axvoice which has a broader variety of plans including an unlimited international calling plan at $22.99 a month. Be aware of the fine print with all-you-can-eat providers. Some such as Teliax don't really offer unlimited calling even though they call it that. What they offer is unlimited calling up to some monthly cap of minutes. For example, with Teliax, up to 1500 minutes a month are "free" and then you pay 2¢ per minute thereafter. They're not really free because you've paid a $24.99 monthly fee for the initial 1,500 minutes. Then there's our old favorite BroadVoice which now offers unlimited calling with a little asterisk. After you drill down to the third level in their web pages, you'll see this in the fine print: "* Significant restrictions apply to Unlimited Plans." If you violate their undefined "normal residential usage patterns", you agree in advance to let them retroactively charge you 5¢ per minute for every call you've made since you signed up... plus $300/hour in in-house legal fees for successful collection. I wonder if they pay their staff attorneys that much? Their terms of use give them unfettered discretion in defining what's appropriate and inappropriate use. And, arguably, even having multiple people in your household use your "unlimited plan" violates their terms of service. So, unless you've recently won the lottery or just enjoy litigation, here's our best advice on BroadVoice: JUST SAY NO!

You'll also want to consider an incoming call provider that gives you one or more DIDs (phone numbers) in regions of some country or countries that you care about. Remember, with a local number, other local folks in that region can call you at no cost. This still matters. TelaSIP will give you a DID in the U.S. with free incoming calls for $5.95 a month. With AxVoice, it's $8.99 but you get three DIDs although there's no way to tell which one's ringing. Our new favorite for incoming calls is les.net at $3.99 a month in the U.S., and they've just added a slew of new cities (over 300 in the U.S. and Canada) which aren't yet shown on their web site. They also have terrific support for Asterisk and will have some more surprises in the next couple weeks.

And then there are pay-as-you-go providers for outbound calling. Usually there are no simultaneous call limitations because you're paying by the minute per call. Some of these providers charge in whole minute increments while others round calls to as little as six second billing increments. With some you get to specify your CallerID number while others always show the calls as Anonymous. Some leave their rates the same for six months or more. Others change their rates almost daily. You don't want to have to visit a web site each time your phone rings to determine what it will cost to pick up the phone. So be alert in choosing a pay-as-you-go provider. The best of the bunch in our opinion is Voxee.com at about a penny a minute for U.S. calls and only slightly more for calls to many international destinations.

Finally there are the (almost) free providers. Here's a good rule of thumb. Enjoy it while it lasts. Don't expect free or even almost free to last forever. And, most importantly, READ THE FINE PRINT. It costs the provider something to offer the service and, if they're giving the service away, there IS a catch. You just have to be smart enough to figure out what it is. The best freebies at the moment are VoipDiscount.com for free outbound calls to numerous countries including the U.S. for four months, FreeDigits.com for free incoming DIDs, free incoming calls, and free incoming fax service, and Stanaphone.com for free incoming DIDs and free incoming calls. See our complete list of VoIP Provider reviews for additional information and setup instructions.

If you just want to experiment with your new system and don't want to cough up much money, here's a good way to get your feet wet. Sign up for a free incoming DID number and free incoming calls with Stanaphone's Stana-IN service and sign up with VoIPDiscount.com for almost free outbound calls up to 300 minutes a week for four months. You'll need a Windows machine to initially sign up for both of these services. See our tutorials for details. You won't have a phone number in your local area code, but folks will be able to call you. If you want a number in your local area code and you live in the U.S., sign up for TelaSIP's basic service at $5.95 a month which gets you a local phone number and free unlimited incoming calls ... one at a time. Outbound calls in the U.S. are 2¢ a minute which gives you a good backup to your free VoIPDiscount outbound calling service. There are no obnoxious terms of service or hidden fees with TelaSIP. Just use the service for residential calling.

Downloading a Free Softphone. Unless you already have an IP phone, the easiest way to get started and make sure everything is working is to install an IP softphone. You can download a softphone for Windows, Mac, or Linux from CounterPath. Or download the pulver.Communicator or the snom 360 Softphone which is a replica of perhaps the best IP phone on the planet. Here's a new IAX softphone for all platforms that's great, too, and it requires no installation: Idefisk. All are free! Just install and then configure with the IP address of your TrixBox server. For username and password, use the extension number and password which we'll set up shortly with freePBX. Once you make a few test calls, don't waste any more time. Buy a decent SIP telephone. We think the best value in the marketplace with excellent build quality and feature set is the $85 GrandStream GXP-2000. It has support for four lines, speaks CallerID numbers, has a lighted display, and can be configured for autoanswer with a great speakerphone. Short of paying over double for the snom 360, that's as good as desktop phones get. If you want to use Asterisk throughout your home, buy a good 5.8GHz wireless phone system with plenty of extensions such as the Uniden 8866 which we use (see ad below) and then purchase an SPA-3000 to connect up both your home phone line and all your cordless phones. Our tutorial will show you how.

Initial Setup of freePBX. You still access freePBX just as you accessed the Asterisk Management Portal (AMP), by pointing a web browser to the internal IP address of your new Asterisk system. Once you get to the main TrixBox screen, choose System Administration and then freePBX. When prompted for your username and password, the username is still maint. 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 (which isn't very long) since freePBX queries each module to see if changes need to be applied. So, in the Module Administration screen, click on each Module shown in the list and then Enable the Selected Modules. Now click Connect to Online Module Repository, select all the Modules in the list, and choose Download and Install the available modules. Repeat the drill one more time to get all of the modules from the Online Repository. Click the Red Bar to save your updates. From time to time, you need to revisit this page, connect to the online repository, and upgrade the modules in your freePBX system as new bug fixes are released.

As you can see, there are two types of Modules: 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 tells you which ones are newer than the ones currently on your system. HINT to Rob: 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. freePBX 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. Once you complete the above steps, you're ready to set up your new system.

Configuring freePBX Trunks. When you click the 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!

For our sample setup today, we'll configure SIP trunks for Stanaphone, TelaSIP, and VoipDiscount. For each provider, click on the Setup->Trunks tab in freePBX. Then click Add SIP Trunk. After you complete the entries for each provider, click Submit Changes and then the Red Bar.

StanaPhone Trunk Setup. Here are the entries for the Stanaphone SIP trunk. For Outbound CallerID, enter the phone number assigned to you by StanaPhone. For Maximum Channels, enter 1. Leave the Dial Rules and Dial Prefix blank for the time being.

For Outgoing Settings, enter a Trunk Name of stanaphone. For Peer Details, enter the following using your assigned username and password. Be very careful to match the upper and lower case settings in your assigned password.


For Incoming Settings, enter a USER Context of from-pstn. This tells Asterisk to process incoming calls through this context in your dialplan. For USER Details, enter the following using your assigned username and password:


For the Registration String, enter the following using your assigned username, password, and 347 phone number:


Click the Submit Changes button and then click on the Red Bar to save your trunk settings and reload Asterisk. To be sure you have properly registered with Stanaphone, run the Asterisk_Info application which we installed above using your correct IP address: Under SIP Peers, you should see an entry for sip.stanaphone.com showing a state of Registered. If not, check your username and password entries for typos.

TelaSIP Trunk Setup. Here are the entries for the TelaSIP SIP trunk. For your Outbound Caller ID, fill in the local phone number provided by Telasip. For Maximum Channels, enter 1. For Dial Rules, enter the following:


In the Outgoing Settings section, name your trunk telasip-gw and then enter the following PEER details using your TelaSIP-assigned username and password:

context=from-pstn (if that doesn't work use: from-trunk)

Leave the Incoming Settings User Context and User Details blank. For your Registration string, enter the following: yourusername:yourpassword@gw3.telasip.com using your actual username and password assigned by TelaSIP. Click Submit Changes and then the red bar to restart Asterisk. Use Asterisk_Info as we did with Stanaphone to be sure you are registering successfully with TelaSIP.

VoipDiscount Trunk Setup. Here are the entries for the VoipDiscount SIP trunk. Create a SIP trunk for the service with a Trunk Name of voipdiscount. VoipDiscount doesn't support an outbound CallerID number so leave it blank. The Outgoing Dialing Rules in the U.S. should look like this:


Add the following PEER Details in Outgoing Settings using your own username (in three places!) and password. Leave the Incoming Settings blank.


For the Registration String, enter the following using your own username and password:


Click the Submit Changes button and click the Red Bar to update Asterisk. Use Asterisk_Info as we did with Stanaphone to be sure you are registering successfully with VoipDiscount.

When you have your Trunks set up, you'll need a way to call out (Outbound Routes), to call in (Inbound Routes), and to process incoming calls: a Digital Receptionist, a Call Queue, a Custom Application, DISA, or a phone to ring (Extensions). For today, we'll get the phones to ring. Then we'll tackle the other options in Parts II and III.

Configuring Outbound Routes. Outbound routes are the rules that determine how calls that are dialed from an extension on your system get processed. The idea here is that you set up a list of priorities. Then, based upon the number dialed, the outbound rules figure out how to route the call. We're going to start with a simple Outbound Route called Everything which will process all calls that are not handled by another Outbound Route. Click Setup->Outbound Routes->Add Route and enter the following:

Route Name ... Everything
Route Password ... [leave it blank]
Pin Set ... [leave it blank]
Emergency Dialing ... [leave it blank]
Dial Patterns: (adjust these if you wish to permit international calls!)
Trunk Sequence:
0 sip/voipdiscount
1 sip/telasip-gw

Once you've made all the entries, click the Submit Changes button and then the Red Bar to reload Asterisk. You will be able to place calls by dialing either an area code and phone number or 1 plus an area code and phone number. For international callers, our previous articles will walk you through configuring the dial strings to support various countries. Now you should see two Outbound Routes in your route list. We want to delete the other route so just click on it and then choose Delete Route and click the Red Bar to save your changes. Now there should be only the Everything route in your Outbound Routes list. We'll leave it like that for today, but down the road, we'll add options for emergency calls, toll-free calls, in-state calls, and international calls. After we make those additions, the Everything route will be used as our lowest priority catch-all for calls that don't qualify for processing by another route.

Setting Up Extensions. To add a new extension and voicemail account to your system, click Setup->Extensions->Add SIP Extension and enter the following:

Extension Number ... 500
Display Name ... Office
Extension Options
Direct DID ... [your 10-digit TelaSIP phone number if you have one; otherwise, leave blank]
DID Alert Info ... [leave blank]
Outbound CID ... [your 10-digit TelaSIP phone number if you have one; otherwise, leave blank]
Emergency CID ... [your 10-digit TelaSIP phone number if you have one; otherwise, leave blank]
Record Incoming ... On Demand
Record Outgoing ... On Demand
Device Options
secret ... 1234
dtmfmode ... rfc2833
Voicemail & Directory ... Enabled
voicemail password ... 1234
email address ... yourname@yourdomain.com [if you want voicemail messages emailed to you]
pager email address ... yourname@yourdomain.com [if you want to be paged when voicemail messages arrive]
email attachment ... yes [if you want the voicemail message included in the email message]
play CID ... yes [if you want the CallerID played when you retrieve a message]
play envelope ... yes [if you want the date/time of the message played before the message is read to you]
delete Vmail ... yes [if you want the voicemail message deleted after it's emailed to you]
vm options ... callback=from-internal [to enable automatic callbacks by pressing 3,2 after playing a voicemail message]
vm context ... default

Configuring Inbound Routes. Just as we had to tell Asterisk how to process outbound calls, you also have to define what to do with incoming calls from each of your inbound trunks. Be aware that different service providers have implemented SIP and IAX differently. One of the best providers for proper SIP implementation is TelaSIP because you can route incoming calls based upon the DID numbers associated with each trunk. So you could have one incoming trunk from TelaSIP with multiple DID numbers (for each of your children, for example). Each DID then could be routed to a specific extension, and each extension could have its own CallerID number for outbound calls ... even though you might only have one TelaSIP trunk line. So, to outside callers, it would appear that each individual had his or her own phone line even though everyone might be sharing one or two trunks.

For today, we'll get a default inbound route established, and we'll save the gee whiz stuff for later. To create a Default Inbound Route for your calls, choose Setup->Inbound Routes->Add Route. Then enter the following:

DID Number ... [leave blank]
CallerID Number ... [leave blank]
Zaptel Channel ... [leave blank]
Fax Extension ... disabled
Fax Email ... [leave blank]
Fax Detection Type ... none
Pause After Answer ... [leave blank]
Privacy Manager ... no
Alert Info ... [leave blank]
Destination: ... Core: Office 500

Click Submit and then OK when you're warned that this will create a default incoming route for your calls. Down the road as you add additional incoming routes, the new routes will take precedence unless there's no matching DID in which case this default route will be used.

If you want to create a separate incoming route for your Stanaphone calls just to see how it works, click Add Incoming Route and enter the following:

DID Number ... [your 10-digit Stanaphone number]
CallerID Number ... [leave blank]
Zaptel Channel ... [leave blank]
Fax Extension ... freePBX default
Fax Email ... [leave blank]
Fax Detection Type ... NVfax
Pause After Answer ... 2
Privacy Manager ... no
Alert Info ... [leave blank]
Destination: ... Core: voice mailbox 500

The trick to learn here is that if you want an incoming DID to go straight to voicemail, you need a slight pause to let Asterisk get properly set up for the call or the first couple seconds of your voicemail announcement will be cut off. By adding two seconds of fax detection, everything will work swimmingly.

Allowing Anonymous Inbound SIP Calls. One final step, and your incoming calls should start arriving without a "this number is not in service" message. Choose Setup->General Settings and scroll to the bottom of the page. Under Security Settings, change Allow Anonymous Inbound SIP Calls from No to Yes and click Submit Changes and then the Red Bar. Once this change is made, inbound calls from Stanaphone will work reliably.

Activating Email Delivery of Messages. When you're out and someone leaves you a voicemail message or a fax, TrixBox and freePBX will let you forward that voicemail message or fax to your email address as a .wav file or PDF document. Or you can have the system send an instant message to your cell phone or pager telling you who called, what their phone number was, and how long a voicemail message the person left for you. Or you can do both. In addition, you can tell the system whether to delete the voicemail from your Asterisk server after sending it to your email account. In short, you now can manage all of your incoming email and voicemail from a single place, your email client.

You don't have to be a Linux expert to make this work. But you do have to master one concept. The Linux SendMail server imposes restrictions on who can send messages to eliminate the risk of spam. So ... THE SENDER DOMAIN FOR OUTBOUND EMAIL MESSAGES MUST MATCH THE SENDER DOMAIN OF YOUR ASTERISK SERVER AND YOUR SENDMAIL SERVER. Some Internet Service Providers also block email messages from downstream SendMail servers to reduce SPAM. Try the steps below to determine if the latter is a problem.

First, make this adjustment to the /etc/hosts file on your server. Edit the hosts file: nano /etc/hosts. Move the cursor to the second line which reads asterisk1.local , and then move the cursor over the first letter of the first domain name shown, usually asterisk1.local. Now type in trixbox.dyndns.org and add a space after your entry. Don't erase the existing entry! Save your settings: Ctrl-X, y, enter. Now restart network services on your Asterisk machine: service network restart.

While not required for delivery of email messages, you'll still want to modify the email message which delivers your voicemails so that it includes IP address of your Asterisk system. You'll actually click on this link in the email messages to retrieve your voicemails over the web so make sure the address is Internet accessible. Also, don't do this using the TrixBox editor, or you'll mess up the formatting of the email message. You can download a fresh copy here if you need it. Instead, use nano: nano -w /etc/asterisk/vm_email.inc. Press Ctrl-W, type AMPWEBADDRESS, and press the enter key. Delete the word AMPWEBADDRESS and then type either the fully-qualified domain name for your Asterisk server or the private IP address if you only want to read your emails from behind your firewall. When you start typing, the text display may jump all over the place because of word wrap. Don't freak out. You haven't messed anything up. Once you complete your entry, don't erase or change anything else. Save the file: Ctrl-X,Y, then enter.

This step IS required to get emails delivered. Edit vm_general.inc: nano -w /etc/asterisk/vm_general.inc. Change the serveremail entry of vm@asterisk to vm@trixbox.dyndns.org. Then save your configuration and restart Asterisk: amportal restart. To get faxes delivered, adjust the Email From address of the faxes in freePBX->Setup->General Settings: fax@trixbox.dyndns.org. Note that these "from" addresses don't actually have to be working email addresses. They just need to match the domain that was entered in the hosts file and in the SendMail config file (below).

While still logged into your server as root, switch to the directory where the SendMail configuration file is stored: cd /etc/mail. Make a backup of the config file: cp sendmail.cf sendmail.cf.bak. Then issue the following command: echo CGtrixbox.dyndns.org >> sendmail.cf. Now restart SendMail on your server: /etc/rc.d/init.d/sendmail restart.

If your voicemails and faxes still don't get delivered to your email accounts, your ISP may be blocking downstream mail servers (that's you). Take a look at this link which will show you how to designate your ISP as your SMTP smart host using SendMail.

Activating the Nerd Vittles Weather Forecasts in TrixBox. TrixBox 1.2.3 includes the Flite text-to-speech engine as well as the Nerd Vittles weather forecasting system. To use it, just dial 611 from a phone on your system and enter a 3-character airport code to retrieve the weather forecast. TrixBox comes with support for about 50 airports. You can easily expand it to 1,000 airports by following along in Part II of our Weather Tutorial. It'll take you about 15 minutes. For complete instructions, read the full article here.

Activating Nerd Vittles CallerID on Steroids in TrixBox. We've previously written an application that will let your Asterisk PBX look up CallerID names for incoming calls from Google, and AnyWho, and your own AsteriDex database. The article explaining how to configure and install calleridname.agi is available here. And you can download the application here. Once you have installed and configured the AGI script, you can skip over the autoattendant changes mentioned in the article. Instead, make this simple change to your freePBX extensions.conf file. Point your brower to your TrixBox system and choose System Administration->Config Edit->extensions.conf. Then click on macro-user-callerid in the left column. Delete the existing contents and replace it with the following. NOTE: This only works with freePBX 2.1.3 so be sure you have that version installed before making the following change! Better yet, make a backup copy of extensions.conf first.

exten => s,1,GotoIf($["${CHANNEL:0:5}" = "Local"]?report)
exten => s,n,GotoIf($["${REALCALLERIDNUM:1:2}" != ""]?start)
exten => s,n,Set(REALCALLERIDNUM=${CALLERID(number)})
exten => s,n,Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)})
exten => s,n,Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)})
exten => s,n,GotoIf($["x${AMPUSERCIDNAME:1:2}" = "x"]?chknamelen)
exten => s,n,Set(CALLERID(all)=${AMPUSERCIDNAME} < ${AMPUSER}>)
exten => s,n(chknamelen),GotoIf($[${LEN(${CALLERID(name)})} > 0]?report)
exten => s,n,AGI(calleridname.agi)
exten => s,n(report),NoOp(Using CallerID ${CALLERID(all)})

; overrides callerid out trunks
; arg1 is trunk
; macro-user-callerid should be called _before_ using this macro

Click the Update button to save your changes and then reload Asterisk. Activate the services you wish to use in calleridname.agi making sure you've adjusted permissions on the file by following our previous tutorial, and you're all set.

Useful Functions on Your TrixBox System. Here's the complete list of functions that will work out of the box from any extension on your TrixBox system:

  • 611 The Latest Weather Forecast
  • *62 Schedule a Wakeup Call
  • *65 Decipher Extension Number of Any Phone
  • *70 Activate Call Waiting
  • *71 Deactivate Call Waiting
  • *72 Enable Call Forwarding (include forwarding number to avoid prompt)
  • *73 Disable Call Forwarding
  • *90 Enable Call Forwarding on Busy (include forwarding number to avoid prompt)
  • *91 Disable Call Forwarding on Busy
  • *78 Enable Do Not Disturb
  • *79 Disable Do Not Disturb
  • *97 Access Voicemail for Calling Extension
  • *98 Access Voicemail with Prompt for Mailbox Number
  • The Nerd Vittles Collection. We'll wrap it up for this week by pointing you to some tutorials for the Nerd Vittles applications that are preloaded in our VMware TrixBox build. You may also want to add these to your stand-alone TrixBox system. Each one takes less than 15 minutes to install.

    AsteriDex - The Poor Man's Rolodex (http://TrixBoxIPaddress/asteridex/)

    NewsClips for Asterisk - Get the News By Telephone (Dial 511)

    MailCall for Asterisk - Get Your Email By Telephone (Dial 555)

    Weather Reports by Airport Code - Get the Latest Weather Forecasts for 1,000 U.S. Cities (Dial 611)

    Telephone Reminders for Asterisk - Appointment Reminders By Telephone (Dial 123)

    GabCast Studio for Asterisk - Create and Play PodCasts Using Your Phone (Dial *422 and 422)

    TeleYapper Message Broadcasting System - Deliver Appointment Reminders and Important Info to Any Custom Calling List (Dial 674)

    Where To Go From Here. If you're new to the Asterisk world, you have lots of fun (and learning) ahead of you. After you finish this tutorial, you'll want to get plugged into the TrixBox Forums. That's the place to ask questions after you do some reading. Posting support questions on Nerd Vittles just doesn't work because of the cumbersome blog format. Don't email me questions either! We only accept thank you notes. Finally, take a look at our catalog of articles, projects, and Asterisk resource links. You'll find just about everything you'll ever need there. Enjoy!

    Some Recent Nerd Vittles Articles of Interest...


    1. I love your site and follow it daily… via RSS feed. Lately it has been broken. Here is the error I am recieving..
      XML Parsing Error: undefined entity
      Location: http://nerdvittles.com/wp-rss2.php
      Line Number 28, Column 56:

      [WM: Sorry you’re having a problem. Which RSS Reader? Nothing has changed at our end. Our RSS Feeds are still chugging along fine. You might try a different news reader and see what happens. Or try the Atom feed if your reader supports it.]

    2. SECURITY ALERT: A security vulnerability has been identified in the version of Asterisk ( included in the TrixBox 1.2.3 release. An attacker who can connect to the Asterisk server SCCP "Skinny" port (by default 2000/tcp) can attack the vulnerable function prior to registering as a configured Skinny phone, permitting pre-authentication remote compromise.

      The simplest fix is not to allow port 2000 tcp traffic through your firewall. If your server is in the DMZ or on the Big Bad Internet directly, then you should disable the chan_skinny module. To do this, edit /etc/asterisk/modules.conf and add the following line in the [modules] context. Then restart Asterisk: amportal restart.

      noload => chan_skinny.so

      Note: This module is only used to talk to Cisco phones in their native language, i.e. non-SIP.

    3. Try a differnt RSS reader? Im using live bookmarks in Firefox. It is still working on all of the other sites I visit.
      I have been using this link:
      I even tried this one:
      No luck with either one.
      I then proceeded to try my google reader account and both links work there. So it appears that Firefox Livebookmarks either does not like the Nerdvittles feed any longer, or something has changed with the feed.

      [WM: Looks to me like Firefox doesn’t know how to handle either an apostrophe or a trademark symbol in the title. I’d recommend you report it to Firefox as a bug. It works just fine in NetNewsWire.]

    4. I see the same error in JetBrains Omea Reader. Reference to undeclared entity, ‘trade’. Line 28, position 57.

      [WM: Interesting. Ampersand + trade + semicolon is the correct HTML reference for an unregistered trademark. But I won’t use it again in a headline.]

    5. Ward, just saw your tip-of-the-week and thought you might like to know that with a little tweaking, it may be possible to set up Trixbox so that when a user dials an international call, it is automatically routed to FuturePhone or one of the other, similar services (there are two others that I’m aware of). The details may be found here:


      (Impatient folks may want to skip down to the "Step" headings). Please note that this method was only developed less than 24 hours ago so it may not work for everyone, but comments can be left at the sites above (or here, if you will allow them) to report success or failure.

      The one thing I would caution folks is not to go "hog wild and pig crazy" with these services because no matter what YOU are paying for the call to Iowa, if anything, your VoIP provider or their "downstream" provider (whatever company sends calls to the PSTN) is probably paying a lot more on a per-minute basis. My guess is that the terminating charges on these Iowa numbers are probably 5 to 10 times higher than calls to numbers served by the incumbent local phone companies in most large major cities. So if people start racking up huge numbers of minutes-of-use on calls to these numbers, I can see where that could potentially make good or bad things happen. Good would be if some VoIP providers finally decide to offer "free" calling to low-cost international points, rather than forcing customers to seek alternate ways to make such calls. Very good would be if this is the thing that finally causes the FCC to force reform of the ridiculous inter-company compensation scheme we have in the United States (I keep hoping we’ll move back to "bill and keep", which served the phone companies for decades until the incumbents started getting greedy. But, I’m not holding my breath).

      On the other hand, bad would be if your VoIP provider decides they no longer want you as a customer, or if they start blocking calls to certain Iowa numbers (or just block the passing of post-connect touch tones). I don’t think most companies are going to object if you make a 20 minute call once a month (particularly as long as their "downstream" providers charge them a uniform termination rate for U.S. calls) but I will just bet that if people start collectively racking up millions of minutes per month to these services, and long distance, cell and VoIP companies start taking a bath on these calls, something will change – and my bet is that any such change will not favor customers, at least in the short term. But I do hope that some VoIP companies will decide that if they can complete calls to international points as cheaply as to the U.S., maybe they ought to stop charging per-minute rates for those calls (above and beyond what they charge for domestic calls, if anything), particularly if it drives their customers to use services such as these.

      On another topic – if someone is running a previous version of Trixbox, is it safe right now to use the trixbox-update.sh update script? And also, is it safe to install the Asterisk upgrade that plugs the security hole? I recall that some time back you gave instructions on how to upgrade Asterisk on an Asterisk@Home installation, and I’m just wondering if that’s something that should be done now (using the updated files, of course). Of course, I realize it’s a lot easier to just add the line in /etc/asterisk/modules.conf but wonder if maybe it’s time to do an Asterisk upgrade, and a Trixbox update?

      [WM: Thanks for your post. For those that can’t quite figure out how all this free international calling works, here’s our best guess. The theory is that numbers in this rural Iowa area code have termination charges (the fee your provider pays when you call one of these numbers) that are considerably higher than the going rates elsewhere in the U.S. Whether that’s 3¢ per minute or 10¢ per minute is unclear from what we’ve read. In any case, the differential compared to going rates to call elsewhere including over 50 countries around the world theoretically makes it a profit center for the local Iowa phone company even when they "give" you a free connection to a phone in these distant lands (which costs them less than 2¢ per minute). Thus, they theoretically charge your carrier 10¢ per minute while the international call costs them 2¢. The problem is that someone has to pay these termination charges and when 10 million calls a month to rural Iowa start showing up on Verizon’s and Sprint’s radar, you can bet they will do something about it. So … as with other telecom freebies, enjoy it while it lasts. But don’t expect it to last forever. As for whether it’s safe to upgrade to the latest version of Asterisk either manually or through the update scripts, we’re gonna pass for the time being. There’s a simple patch to plug the security hole, and it’s taken months to get a stable version of TrixBox. Let’s at least enjoy it for a few weeks.]

    6. The VMware image for TrixBox 1.2.3 is now available. It includes all of the referenced Nerd Vittles applications in this article. Be sure to patch the SECURITY HOLE referenced in Comment #2 above.

      Thanks to Bryan Pendleton (as usual) for making available the torrent feed for this image.

      If you’re unfamiliar with using BitTorrent, you can download the image (561 MB) from the usual places:

      Bubba’s PBX4Pros Web Site

      VMwarez.com (coming soon!)

      Nerd Vittles

      Until recently, the only sure-fire way to make sure VMware kept the same time as your hardware clock was to use a cron job which polled a time server for the correct time and then reset the VMware/Linux clock every few minutes. That’s been fixed, and here’s how to patch the boot loader to fix it. But, first, while running WebMin, disable the time-setting cron job. From the main WebMin menu, choose Hardware->System Clock. In about the middle of the page is an option to Synchronize (the time) on Schedule. Just set it to No and Save your change. Now go to the command prompt on your server and make certain you are logged in as root. Edit the boot loader (nano -w /boot/grub/grub.conf) and move down to line 16 which begins with the word "kernel." Edit that line so that it looks like the following and save your change (Ctrl-X, Y, then Enter). Then reboot your system (shutdown -r now). HINT: Everything after "noapic" is new stuff to be added, and it all must be appended to the end of the existing line.

      kernel /vmlinuz-2.6.9-34.0.2.EL ro root=LABEL=/ acpi=off noapic nosmp nolapic clock=pit

    7. I believe I missed something important; I am currently at TB 1.2.2 and now there is a TB 1.2.3 if I run the update script it tells me I have 1.2.2 and that is the current version. Are the two versions synonomous with each other? Was there a lock in 1.2.2 that keeps you from upgrading to 1.2.3??

    8. I have been Running TB 1.1.1 for 4 months now in a production environment, and it’s stable for the most part, some things are broke, but overall I’m happy. I would like to have some new bells and whistles and upgrade to 1.2.3, but I’m just afraid that everything will go to hell if i do (Zaptel config, echo train, dial plans, you name it). Does the consensus agree? or has someone upgraded from 1.1.1 successfully without breaking things?

    9. Has anyone been able to interface the Linksys SPA3000 to the latest version? I can make calls out but I want my home number to be handled by the system too. I just can’t get trunk calls into Trixbox. BTW this is a lot of fun and your instructions are very well written.
      thanks for any advice

    10. MIME-Construct: Wherefore Art Thou? A Linux utility, MIME-Construct, made it easy to convert images (like faxes) to PDF documents and also facilitated the emailing of just about any document. Unfortunately, it came up missing in TrixBox, and it’s difficult to install because of all the Linux dependencies. So here’s a simple solution that restores the original functionality of MIME-construct thanks to the programming genius of Rob Thomas. Since Rob’s fax-process.pl code (included in freePBX) mimics the old MIME-construct application, the simple solution was just to tweak it a bit for Nerd Vittles and TrixBox compatibility and then copy a renamed version into the PATH (remember the DOS PATH!) on your Linux box. Log in as root and issue these commands, and you’ll be back in the fax-to-email business with TrixBox:

      cd /usr/local/bin
      wget http://nerdvittles.com/trixbox123/mime-construct
      chmod +x mime-construct

    11. CallerID on Steroids in TrixBox
      Has anyone gotten this to work. I tried the instructions and it won’t work. I copied the calleridname.agi and gave it rights and ownership and then I pasted the script to extensions.conf under macro-user-callerid and it did not work. I’m I missing something?

      [WM: Just use our PBX-in-a-Flash script, and it gets installed and working automatically with TrixBox 1.2.3. You then have to choose the services you wish to activate by editing the calleridname.agi script (it’s about line 10-13). For more details, review this article.]

    12. I was getting congestion message everytime i tried to make an outgoing call (i got a SIP 404 error message from TelaSIP in response to an INVITE). i was using the TelaSIP settings on this page.

      i added:


      it worked ok and i was able to make outgoing calls.

      [WM: On some TelaSIP systems, these are required now. Thanks for the tip.]

    13. I am a newbie and have just installed trixbox on a spare machine. My problem is how I can access the web interface you talked about in this article. Do I need to access it from another machine by pointing my web browser to internal ip address of trixbox server. Please let me know.
      Second, is it possible to install trixbox on linksys router.
      BTW you have done a great job by writng this article!!

      [WM: #1. Yes. #2. Not trixbox but perhaps some trimmed downed version of Linux and Asterisk. Take a look at this article.]

    14. I am curious why the use of an MTA (mail transfer agent) like sendmail is the only way to get Asterisk to e-mail out voicemail messages. I suspect the vast majority (99%+) of all Asterisk PBXs that are connected to the internet are connected behind an ISP, or inside a corporate network, that provides POP and SMTP mail services. Rather than configuring sendmail and dealing with its limitations, and with potential ISP issues… Wouldn’t life be a lot easier for most people if Asterisk had an embedded SMTP mail client instead of an MTA server? You’d simply enter in the username, password, and address of an SMTP server that you have an account on, and that’s it.

    15. I am following the "As Easy As 1-2-3: The Newbie’s Guide to TrixBox 1.2.3″, I downloaded the trixbox-1.2.3.iso (from the link in this article) and burned it to CD, I booted the CD, hit enter at the boot menu, selected my keyboard (us), time zone, and entered root’s passwd. It installed and then rebooted, removed the CD and after it came up I logged in as root and typed in help-trixbox, to which I got "command not found" typed in "passwd admin", and got "unknown user", did a "find / -type f | grep -i asterisk" and this returned nothing. Is it possible that the .iso is bad? Filesize of the .iso is 562,180,096. Have I missed a step somewhere? I have tried this several times and no luck. I tried burning a few different CD’s to install from. I also tried the guide pbx-in-a-flash for Linux with the same result. Any advice would be appreciated. Thanks, Carl

      [WM: Sounds like a bad ISO image. After the initial reboot, there is a lengthy installation process during which Asterisk is actually compiled from source. If you didn’t see this happen after you removed the CD and your system rebooted, then there’s definitely a problem with the image or the CD. Take a look at the TrixBox forums. There also are a couple of quirky motherboards that have problems with this version of Linux, but there is a workaround.]

    16. I am following your tutorial but got stuck at the "IP Configuration for Asterisk". I am having this dedicated machine behind two routers. When I set up account and give my ip address to DynDNS.org, it is showing me the first router’s web interface. I know solution would be much simpler if I have only one router but current set up in my home doesn;t allow me to do so…
      1.Why it is showing the web interface of the router.
      2.Do you think port forwarding from Rt1 to Rt2 and then to the dedicated machine is the solution.
      3. How would I know that I have reached the dedicated machine if I do the port forwarding(ie how should I test that I have reached that machine).

      [WM: Sorry but two routers compounds your problems. You might try posting on the trixbox forums, but I doubt you’ll get much of a response. Getting SIP to work reliably behind one router is hard enough. Adding a second one just makes it a nightmare. Why not hang the Asterisk box off the router closest to the public side of the Internet and avoid the problem?]

    17. OOps!!
      Well I thought about it but the set up in my home is such that I need two routers. The public side router is in living room and the other one is in my office (basement) where I have connected other devies (printer etc..). Now how about if I use an inexpensive hub to connect Rt1->Hub->dedicated machine and other router to Hub. Will this thing work the same way as a machine behind the public side router.

      [WM: Connecting Asterisk box to hub behind a single router will work just fine since the hub uses the same subnet.]

    18. Wondering if you can sync SugarCRM to a ldap database with existing contacts or sync up with apple addressbook (lots of ways of having contacts managed via here but wondering if this is possible)

    19. I want to access TB web interface remotely. I forwarded the port suggested here but when I used my xxx.dyndns.org url, I am landing on my router web interface. What should i do to access TB web interface remotely…

      [WM: First, be sure you are forwarding port 80 to the TrixBox internal IP address. Next, change the default port for your router’s web interface. It always takes precedence.]

    20. Hi…So I did little bit of research and figured out that Verizon FioS blocks inward trafic on port 80…any other way of getting around this problem to access the web interface from outside. Please help

      [WM: #1: Dump Verizon! #2: D-Link DGL-4300 Gaming Router which lets you access your site and some other port and then it remaps the traffic to port 80 inside. Also great for VoIP. #3: Adjust Apache config for some other port and access your site on that new port. ]

    21. Hi Ward,
      Thanks a bunch for your tutorials – I found this by accident – and i just got hooked to it and i haven’t even installed asterisk yet, but by what everyone else says -it should be a breeze.
      I need your guidance (or from someone else)- right now my wife and I share a family plan (tmobile), I’m planning to add MyFaves so my house number (asterisk) is free – having said that, what I want to accomplish is the following:

      1. both me and my wife, be able to make calls simultaneously thru the asterisk server
      2. both me and my wife, be able to receive calls simultaneously thru the asterisk server
      3. be able to transfer calls between each other

      -What plans do you recommend me going for?
      -how many lines do I need to accomplish this?

      Right now i’m using vonage in my house -thru this website i’ve learned how GREAT they are, so i’m itching to dump them ASAP!

      Thanks a bunch in advance

    Comments are closed.