It's been an interesting couple of weeks watching many of our readers flock to Google Voice in order to make free calls in the U.S. and Canada. The only problem with our Google Voice solution was the skill set required to get everything humming along as it should. For those new to the Asterisk® world, it only made sense to create a special installer that would build an Instant PBX.
Check Out the Latest! The Incredible PBX
Coming January 19: Incredible PBX 11 & Incredible Fax for Asterisk 11 and FreePBX 2.11
In putting this together, we couldn't help noticing the dilemma posed on the new FreePBX web site: "Looking for Phone Service? We can't quite give you the phone service for the same price (free) as the PBX..." Well, maybe they can't, but we certainly can thanks to our friends at Google Voice. So today we're pleased to introduce the first Truly Free™ Asterisk PBX. If you've mastered slice-and-bake cookies, you'll have no trouble with today's recipe.
Welcome to the Orgasmatron V Installer, the wonderscript that lets you create a turnkey Asterisk system with free U.S. and Canada calling through Google Voice in less than 15 minutes! When you're finished you'll have a PBX in a Flash system with every bell and whistle on the planet. Not only is the PBX absolutely free but so are all of your outbound and incoming calls throughout the United States and Canada. All you'll need is an Internet connection and any garden variety PC that's less than 3 years old. Or you can splurge and buy yourself a new Atom-based PC or NetBook and have a state-of-the-art PBX that may last you close to a decade. While you'll still need to change a few passwords and plug in some phones, the Orgasmatron V build reduces the Asterisk learning curve to almost zero. Out of the box, email works. Faxing works. ENUM works. And free calling in the U.S. and Canada works. Just plug in your Google Voice credentials, and you can start placing calls to every phone in the U.S. and Canada for free in just a few minutes.
For those that are wondering what's included in the Orgasmatron V build, here's a feature list of the components you get in addition to the base PBX in a Flash build with Asterisk 1.4, FreePBX 2.5, and Apache, SendMail, MySQL, PHP, phpMyAdmin, IPtables Linux firewall, Fail2Ban, and WebMin:
- CallerID Superfecta (FreePBX Module)
- CallWho for Asterisk
- Cepstral TTS (installer script only)
- Email That Works with SendMail
- Extensions (15 preconfigured)
- Fax Module using nvFax
- FreePBX Backups
- Gizmo5 (FreePBX Module)
- Google Voice (preconfigured)
- Hamachi VPN (installer script only)
- Hotel-Style Wakeup Calls (FreePBX Module)
- ISN: Free SIP Calling from Any Phone
- MeetMe Conferences
- Mondo Full System Backups
- NewsClips from Yahoo
- ODBC Database Support
- Reminders by Phone and Web
- SIP URI support (fax, mothership, e164, nv-demo, gv-ringback)
- Tide Reports with xTide
- Trunk Lister Script
- Trunks (Vitelity, Fonica, Gizmo, ENUM, Remote Peer)
- Weather by Airport Code
- Weather by ZIP Code
- Worldwide Weather
- Zaptel Updater (script only)
Getting Started. Even though the installation process is now a No-Brainer, you are well-advised to do some reading before you begin. VoIP PBX systems have become a favorite target of the hackers and crackers around the world and, unless you have an unlimited bank account, you need to take some precautions to protect your phone bill. Start by reading our Primer on Asterisk Security. Then read our PBX in a Flash and VPN in a Flash knols. If you're still not asleep, there's loads of additional documentation on the PBX in a Flash documentation web site.
Prerequisites. You obviously still need a free Google Voice account. If you don't have one, you can request an invite here. At last report, it's only taking a few days from application to invite which is really great news. Don't use a space in your Google Voice password! Once you have a Google Voice account and phone number (Google has reserved several million of them so... not to worry!), then you'll need a DID that provides unlimited, free incoming calls. We'll use it as your Google Voice RingBack DID and will explain all of this after we get your PBX up and running. We'd recommend a free IPkall or SIPgate DID, but we'll get to that.
Installation. Here's a quick tutorial to get you going. First, install the 32-bit, Asterisk 1.4 version of PBX in a Flash. Boot your system from the installation CD and type ksalt to begin. As your machine reboots, remove the CD and choose option A to load the most stable payload. When the install completes, reboot your system once again and login as root with the password you chose when you built your system. Now issue the following commands to bring your system current and protect your system passwords: update-scripts, update-fixes, passwd-master. You now have a PBX in a Flash base install. On a stand-alone machine, it takes about 30 minutes. On a virtual machine, it takes about half that time.
Now you're ready to run the Orgasmatron V Installer. While still logged into your new server as root, issue the following commands:
chmod +x orgasmatron-gv.x
Stick around while the install script is running. Parts of it are interactive. For now, choose the Flite option when you're prompted twice for your text-to-speech preferences. That way you'll have a working system when you're finished. Once the Orgasmatron V installer script is finished, type status and write down the IP address of your server. You'll need it in the next step to log into FreePBX.
If you'd prefer to pick and choose the apps to install, use this fully-interactive installer instead:
chmod +x orgasmatron-interactive.x
Using a web browser, open FreePBX on your new server with a command like this (substituting the IP address you wrote down above). When prompted for your account name, type maint and use the password you assigned when running passwd-master above:
You're NOT done yet!
These next three steps are important. They get all of the FreePBX modules installed and then restore the FreePBX backup set that's at the heart of the Orgasmatron build. Just follow along here. If you're using the new OpenVZ template for PBX in a Flash, start at step 3 and then complete step 1 and 2. Otherwise...
1. Choose Module Admin, Check for Updates online, Upgrade All, Process, Confirm, Return, Apply Config Changes, Continue.
2. Choose Module Admin, Check for Updates online, Download All, Process, Confirm, Return, Apply Config Changes, Continue.
3. Click on the Tools tab and choose Backup & Restore, Restore, RightNow, and select the .tar.gz file that is displayed. Then choose Restore Entire Backup Set, OK, Apply Config Changes, and Continue.
Securing Your System. You're almost done. We always like to reboot the server just to make sure nothing got lost in the shuffle. When the reboot is finished, log into FreePBX with a browser again. Before you do anything else, choose each of the 16 preconfigured extensions on your new server and change the extension AND voicemail passwords. Here's the drill: Setup, Extensions, 501, Submit after changing secret and Voicemail Password. Repeat with the next extension number instead of 501. Then Apply Config Changes, Continue when you've finished with all of them.
Now let's change the default DISA password: Setup, DISA, DISAmain, PIN, Submit Changes, Apply Config Changes, Continue. Whew! Your system now is relatively secure. Follow the steps in the tutorials we recommended, and you're ready to experiment. Plug in a couple of SIP phones or softphones and configure them using the available extensions (701-715) together with the secrets for those extensions. Place a test call between the extensions to make sure you have a working PBX. Now we're ready to add the pieces so that people from outside your system can call you and so that you can call them as well.
Setting Up An IPkall RingBack DID. Step #1 is obtaining a free DID which will be used to handle RingBack calls from Google Voice. If you're new to Google Voice, here's a quick primer. Whenever you place an outbound call through Google Voice, GV actually places two calls. It returns your call to a number you designate as your RingBack number, and then GV places the call to the destination number you've chosen. We will transparently merge the two calls together behind the scenes so the caller will think it's a "normal" long distance call. But, before Google Voice calling will work with Asterisk, you'll need another DID (in addition to your new Google Voice number) to transparently handle these RingBack calls into Asterisk.
Shown above is the IPkall request form to sign up for a free DID. Make your form look like the one above but change 3 pieces of information: (1) the SIP Proxy which is the public IP address of your Asterisk server or its fully-qualified domain name, (2) a working Email Address which will be used to confirm your request for a free DID, and (3) a password to protect your DID at IPkall. Leave the other entries the way they're shown, especially the SIP Phone Number, gv-ringback, which is preconfigured to route incoming SIP calls on your new PBX to any phones connected to extensions 701-715. Once you have confirmed your request by email, you will be assigned a phone number. Assuming you've already connected a phone to your new PBX on one of the above extensions, it should ring when you call your new IPkall number. Don't proceed until you get this working because it must be functional before you can complete the set up of your Google Voice account.
Setting Up A SIPgate RingBack DID. If you elect to use a SIPgate DID, the process is a bit more complicated. Once you've registered for a free DID on their site, you'll get an email with your credentials. You then will need to create a new trunk using FreePBX with the following entries replacing SIP-ID and SIP-Password with your actual credentials. Use sipgate for the Trunk Name and fill in the following in the Outgoing Settings section of the form:
Leave the Incoming Settings blank, and enter the following Registration String using your actual credentials:
Save your entries and then create an Inbound Route called sipgate. Enter your 10-digit SIPgate number in the DID Number field and choose Ring Group: 700 as the Destination for the inbound calls to this number. Reload your Asterisk dialplan when prompted to do so. Connect a phone to an extension on your PBX and be sure the phone rings when you call your new SIPgate DID number before proceeding.
Google Voice Setup. Once you get your RingBack DID set up on your Asterisk system, we need to configure your new Google Voice account. Log into your GV account and click Settings, Phones, Add Another Phone. Add the area code and phone number of your RingBack DID. Be sure a phone is connected to one of the existing extensions (701-715) on your PBX since you have to go through Google's confirmation drill to successfully register the number with GV. After the DID is confirmed, be sure there's a check mark beside this Google Voice destination so that incoming calls to your GV number will be routed to your Asterisk server.
While you're still in the Google Voice Setup, click on the General tab. Uncheck Enable Call Screening. Turn Call Presentation Off. And set CallerID to Display Caller's Number. Remember NOT to include a space in your Google Voice password! Finally, uncheck Do Not Disturb. Now click the Save Changes button.
Adding Your GV Credentials to PBX in a Flash. Now we're ready to insert your Google Voice credentials into PBX in a Flash. You'll need four pieces of information: your 10-digit Google Voice phone number, your Google Voice account name (which is the email address you used to set up your GV account), your GV password (no spaces!), and your 11-digit RingBack DID (beginning with a 1) from either IPkall or SIPgate. Don't get the 10-digit GV number mixed up with the 11-digit RingBack DID, or nothing will work. 🙂 Now log back into your server as root and issue the following commands. Check your entries carefully. If you make a typo in entering any of your data, press Ctrl-C to cancel the script and then run it again!!
chmod +x configure-gv
Updating pyGoogleVoice. Since this article was initially released, Google has made some changes in the way Google Voice processes incoming calls. To address this, you'll need to update the version of pyGoogleVoice installed with this build. While still logged into your server as root, issue the following commands:
tar zxvf pygooglevoice-0.5*
python setup.py install
Modifying Your RingBack Inbound Route. The last step in the setup process is to reroute your gv-ringback incoming route so that it points to a custom context to process your Google Voice ringback calls transparently. Log back into FreePBX with a web browser and choose Setup, Inbound Routes, gv-ringback. Change the Destination for these calls to Custom Destinations: Custom GV-Park. If you're using SIPgate instead of IPkall, be sure to change the other settings to look like this:
DIDNumber: *Your 10-digit-SIPgate-Number*
CallerId: *Your 10-digit-Google-Voice-Number*
Save your changes by clicking the Submit button and then reload your dialplan when prompted.
Choosing a VoIP Provider. For this week, we'll point you to some things to play with on your new server. Then, in the subsequent articles below, we'll cover in detail how to customize every application that's been loaded. Nothing beats free when it comes to long distance calls. But nothing lasts forever. So we'd recommend you set up another account with Vitelity using our special link below. This gives your PBX a secondary way to communicate with every telephone in the world, and it also gets you a second real phone number for your new system... so that people can call you. Here's how it works. You pay Vitelity a deposit for phone service. They then will bill you $3.99 a month for your new phone number. This $3.99 also covers the cost of unlimited inbound calls (two at a time) delivered to your PBX for the month. For outbound calls, you pay by the minute and the cost is determined by where you're calling. If you're in the U.S., outbound calls to anywhere in the U.S. are a little over a penny a minute. If you change your mind about Vitelity and want a refund of the balance in your account, all you have to do is ask.
The VoIP world is new territory for some of you. Unlike the Ma Bell days, there's really no reason not to have multiple VoIP providers especially for outbound calls. Depending upon where you are calling, calls may be cheaper using different providers for calls to different locations. So we recommend having at least two providers. Visit the PBX in a Flash Forum to get some ideas on choosing alternative providers.
Kicking the Tires. OK. That's enough tutorial for today. Let's play. After you've connected a phone to your new system, begin your adventure by dialing these 10 numbers:
- D-E-M-O - Check out the Nerd Vittles Orgasmatron Demo
- Z-I-P - Enter a five digit zip code for any U.S. weather report
- 6-1-1 - Enter a 3-character airport code for any U.S. weather report
- 5-1-1 - Get the latest news and sports headlines from Yahoo News
- T-I-D-E - Get today's tides and lunar schedule for any U.S. port
- F-A-X - Send a fax to an email address of your choice
- 4-1-2 - 3-character phonebook lookup/dialer with AsteriDex
- M-A-I-L - Record a message and deliver it to any email address
- C-O-N-F - Set up a MeetMe Conference on the fly
- 1-2-3 - Schedule a regular or recurring phone reminder
- Dial *68 - Schedule a hotel-style wakeup call on any extension
Google Voice Speed Dials. For frequently called numbers, you can add speed dials by inserting entries in the [from-internal-custom] context of extensions_custom.conf in the /etc/asterisk folder that look like the example below where 333 is the speed dial number and 6781234567 is the area code and number to call. Be sure to reload your Asterisk dialplan to activate them.
exten => 333,1,Dial(local/6781234567@custom-gv,300)
Congratulations! You now have what we hope will be flawless and free U.S. calling on your Asterisk system using Google Voice. No gimmicks, no strings, no cost. Enjoy!
Finally, one additional word of caution. Both Google Voice and this call design are set up for a single call at a time. There are no safeguards to prevent multiple calls, but that may violate the Google Voice terms of service.
Homework. Your homework for this week is to do some exploring. FreePBX is a treasure trove of functionality, and the Orgasmatron build adds a bunch of additional options. See if you can find all of them. Then log into your server as root and look through the scripts added in the /root/nv folder. You'll find all sorts of goodies to keep you busy. Enjoy!
whos.amung.us If you're wondering what your fellow man is reading on Nerd Vittles these days, wonder no more. Visit our new whos.amung.us statistical web site and check out what's happening. It's a terrific resource both for us and for you.
Need help with Asterisk? Visit the PBX in a Flash Forum.
Or Try the New, Free PBX in a Flash Conference Bridge.
Special Thanks to Our Generous Sponsors
Awesome Vitelity Special. Vitelity has generously offered a terrific discount for Nerd Vittles readers. You now can get an almost half-price DID from our special Vitelity sign-up link. If you're seeking the best flexibility in choosing an area code and phone number plus the lowest entry level pricing plus high quality calls, then Vitelity is the hands-down winner. Vitelity provides Tier A DID inbound service in over 3,000 rate centers throughout the US and Canada. When you use our special link to sign up, Nerd Vittles gets a few shekels down the road to support our open source development efforts while you get an incredible signup deal as well. The going rate for Vitelity's DID service is $7.95 a month which includes up to 4,000 incoming minutes on two simultaneous channels with terminations priced at 1.45¢ per minute. Not any more! For our users, here's a deal you can't (and shouldn't) refuse! Sign up now, and you can purchase a Tier A DID with unlimited incoming calls and four simultaneous channels for just $3.99 a month. To check availability of local numbers and tiers of service from Vitelity, click here. NOTE: You can only use the Nerd Vittles sign-up link to order your DIDs, or you won't get the special pricing! Vitelity's rate is just 1.44¢ per minute for outbound calls in the U.S. There is a $35 prepay when you sign up. This covers future usage. Any balance is refundable if you decide to discontinue service with Vitelity.
Some Recent Nerd Vittles Articles of Interest...