Posts tagged: IncrediblePBX

netTALK to the Rescue: Dumping Google Voice for Less Than 10¢ a Day

The Google Voice Adventure with Asterisk® has been disappointing to put it charitably. Google never really saw the benefit of providing free phone service to millions of Americans because they never could quite figure out how to monetize the project. In the meantime, shady call centers were eating them alive with dozens if not hundreds of Google Voice trunks that were placing endless calls around the clock. The final straw was Microsoft deciding to keep Skype proprietary while adding free Google Voice connectivity to its communications products. This meant Microsoft customers had the best of all worlds while Google’s platform had no way to access Skype except through Microsoft’s proprietary client. Google decided to pull the plug on XMPP beginning May 15 of this year and more or less blamed it on abuse by the open source community for using Google’s own open source development toolkit for Google Voice.

We’ve never been one to sit around crying about spilt milk when there are plenty of other excellent choices available to the VoIP community. Today we begin our exploration of alternatives with a look at all-you-can-eat VoIP. There still are a few pure VoIP service plans available, but every one that we’ve tried leaves a bait-and-switch aftertaste. The first year may be reasonable, but once they’ve got you hooked, look out. Quite literally, they have your number. For this reason, we’ve chosen a hardware hybrid approach that still relies upon VoIP for the actual calls. Below the stratospheric pricing of the Bell Sisters, Comcast, and Vonage, there still are several wallet-friendly, all-you-can-eat VoIP products to choose from including netTALK, Ooma, and magicJack.

We know. Nothing beats free even with a little pain. But we think you’ll love today’s alternative especially given its expanded feature set and modest long-term cost. Up front hardware cost including service for the first year is about $100. Amortizing the hardware and service costs over three years reduces your investment for unlimited U.S./Canada/E911 phone service to roughly $1 a week. After recovery of your $100 hardware investment, the cost is $29.95 a year which works out to less than 10¢ a day… forever. This compares quite favorably to today’s best all-you-can-eat VoIP deal. AxVoice charges $99 for equivalent first year service and then the price escalates to over $150 for subsequent years. It doesn’t take a math major to figure out that’s 5 times the netTALK pricing beginning in Year 2.

That brings us back to Google. If you had several million happy customers already using your VoIP service and you saw a small company that was still in business charging $30 a year for a VoIP feature set that was better than yours, wouldn’t you think you might try to cash in on $100 million a year in new revenue rather than flushing the project down the toilet while shafting the open source developers that got you the customers in the first place??

Earth to Google: Few on the planet are ever going to use a web browser with Hangouts to make traditional phone calls regardless of how many places you plaster the Hangouts logo. Before you hire another Marketing Genius, read a good book or two. The well-deserved 2013 Lame Foot of the Year Award goes to Google. </rant>

Overview. Today we’ll be pairing an old friend, the OBi110, with the unlimited calling options provided by netTALK. When we’re finished, you’ll have a drop-in replacement for Google Voice on your Asterisk server that provides unlimited calling within the U.S. and Canada, plus free calling to other netTALK and OBi users around the world, plus free 911 emergency service for you and your family, plus voicemail delivery by email, and fax support. And you can keep your existing phone number! All of the existing PBX in a Flash and Incredible PBX features still work exactly as they do today without worrying about Google pulling the rug out from under you… again. With the OBiON app for iOS or Android, you can make free calls from your cellphone using today’s netTALK-OBi110 setup. And, if calls from a cellphone aren’t your thing, when you go on vacation to anywhere with an Internet connection, you can slip the netTALK device into your suitcase and plug it in to the Internet at your destination without ever losing the ability to make and receive free calls. We’ll cover all these magic tricks and more today so hang on to your hat. Let’s get started.

Legal Disclaimer. This is not legal advice. Consult your own attorney for that. We have reviewed netTALK’s Terms of Service and find nothing that would preclude your using the services as described in this article so long as the device is used in the United States, usage is under 3,000 minutes per month, and usage is limited to “normal residential or home office usage patterns” without “auto-dialing, continuous or extensive call forwarding, telemarketing, fax broadcasting or fax blasting.” Terms of service can and do change from time to time. Review them regularly.

BY IMPLEMENTING THE TIPS IN THIS TUTORIAL, YOU AGREE TO ASSUME ALL RISKS ASSOCIATED WITH THE METHODOLOGY INCLUDING, BUT NOT LIMITED TO, THE LEGAL AND FINANCIAL CONSEQUENCES OF YOUR ACTIONS. IF YOU ARE UNWILLING TO DO SO, STOP READING HERE!

Hardware Requirements. Here’s what you’ll need. First, purchase a netTALK device. You have several choices. The netTALK DUO is still available for under $50 and includes a full year of unlimited calling in the U.S. and Canada. The netTALK DUO II is the newer model (with the same feature set). It sells for about $30 but only includes three months of free calling. The netTALK DUO WiFi is about $60 and adds WiFi support. Additional years of free calling in the U.S. and Canada are $29.95 with a guarantee of no price escalation as long as you continue the service without interruption. You can add free calling to 60+ countries for an additional $10 a month. Unlimited SMS messaging in the U.S. and Canada is an additional $2.50 a month. AT&T charges $20 a month for unlimited SMS messaging, and it only works on a single cell phone.

In addition to your Asterisk server, the other piece for today’s puzzle is OBiHai’s OBi110, a terrific analog telephone adapter that we’ll use to connect the netTALK adapter to your Asterisk server. If you want to connect a Google Voice account for a few more months, it can do that as well. It also supports a connection to another SIP provider of your choice for redundancy. For today, our focus is getting a Google Voice replacement service in place for your Asterisk server. You can scour the Internet to add the other pieces. The OBi110 is available through Amazon for under $50.1

Installing and Configuring the netTALK Duo

Before your netTALK Duo will work, it has to be registered on the netTALK web site. Locate your temporary username and password for the NetTalk DUO inside the box. Log into the web site and click Start Activation. Plug in your credentials and click LOGIN. Fill out the registration information and create a username and password for your new account. Then press CONTINUE. Complete the E911 information and click SAVE. Select a phone number and ASSIGN it to your account. Now plug a plain-old phone into your netTalk Duo, connect the device to your LAN, and then connect the power adapter. Some routers are problematic. Be sure SIP ALG is disabled on your router. It took about 5 minutes for ours to change from alternating green and red lights to a solid green light and the one-ring call indicating that the device is operating properly. Once you get the solid green light, make a call to the device and from the device. Nothing else works if the netTALK can’t make calls! Once it’s working, you can unplug the phone and use it to configure the OBi110 in the next section.

Installing and Configuring the OBi110

There are a number of steps to the OBi110 setup, but it isn’t difficult. If you can handle slice-and-bake cookies, you can do this. Just follow the recipe and don’t skip any steps. We’ll be configuring the OBi110 in two phases using the OBiTalk web site first and then using the OBi110′s built-in web server. Plug the OBi110 into your LAN and then attach the power adapter. Plug a POTS phone into the PHONE port of your OBi110. Once the OBi110 has booted, pick up the phone and make sure you have a dial tone. Then hang up.

IMPORTANT: Make sure that you restore the OBi to its factory default settings if you have previously used the device! ALWAYS keep your OBi110 behind a hardware-based firewall with NO Internet port exposure!

Now head over to the OBi web portal and set up an account if you don’t already have one. From the OBi Dashboard, click ADD DEVICE. Uncheck the box to set up a Google Voice account. You can do that later if desired. Now pick up the phone connected to the OBi110 and dial **5 plus the 4-digit number shown in your browser. This will identify your device to OBiTalk. Your OBi110 will appear in a dialog box for confirmation. Click CONFIRM promptly, or start over.

In the Device Configuration window that appears, add a Device Display Name, Webpage Admin PW, OBi Attendant PIN, and your TimeZone. SAVE your settings. The OBi110 should now appear in the OBi Dashboard with its assigned OBi number and speed dial number together with a Green status icon signifying it’s working.

Now is a good time to download the OBiON app to your iOS device or Android phone. Launch the app and login with your OBiTalk account information. In the OBi Dashboard, you will note that your softphone now has appeared and was assigned a 9-digit OBiTALK number. Write it down. You’ll need it in a minute to complete the OBi110 setup. Click on the Edit icon for the softphone and assign your OBi110 as the OBi Voice Gateway. SAVE your settings.

For the remainder of the OBi110 setup, we’ll be using the web interface built into the OBi110. If you don’t know the IP address of your OBi110, pick up the phone connected to your OBi and dial ***1.

1. Use your browser to log into the OBi110′s web interface. Log in with admin:admin as the username:password.

2. Once you’re logged into your OBi110′s web interface, the Setup Wizard will display. Expand the first five headings in the left column by clicking on the + icons for Status, System Management, Service Providers, Voice Services, and Physical Interfaces. Then expand ITSP Profile B under Service Providers.

3. Download the latest firmware from here to your desktop. Currently it’s 1.3.0 (Build: 2824). Install it on your device: Device Update -> Firmware Update. Your OBi110 will restart after loading the new firmware.

4. Disable ALL AutoProvisioning: Auto Provisioning -> Firmware Updates, ITSP Provisioning, OBiTalk Provisioning. Then Submit and Reboot.

This keeps external forces from stepping on your setup once it’s working. If something breaks down the road, you can manually provision your device once you know what’s broken.

5. While not absolutely necessary, we recommend you set a static IP address for your OBi110: Network Settings -> Internet Settings. Submit and Reboot. Using your browser, log back into the new IP address.

Another alternative is to permanently lock the DHCP-assigned IP address to the OBi110 using the web interface of your router.

6. Open the SIP profile under ITSP Profile B. Here you’ll need to insert the IP address of your Asterisk server in BOTH the ProxyServer and X_AccessList fields. Also add a check mark for X_SpoofCallerID. Before you can add these entries, you’ll need to uncheck the Default checkbox beside each entry. This applies to all further steps as well. After making the three entries, click Submit and Reboot.

7. Open the SP2 Service window. For X_ServProvProfile and X_CodecProfile, change the settings to B. Change X_InboundCallRoute to LI. Add a check mark for X_KeepAliveEnable. Change X_KeepAliveServerPort and X_UserAgentPort to 5061.

In the SIP Credentials section, change AuthUserName to obitrunk. Make up a secure password and insert it in the AuthPassword field. Remember the password! We’ll need it to configure your Asterisk trunk in a minute. For the URI entry, use the following with the actual IP address of your Asterisk server: obitrunk@192.168.0.82. Double-check all nine entries carefully and then click Submit and Reboot.

8. In the OBiTalk Service Settings window, change the InboundCallRoute to an entry that looks like this: {pp(ob290999999),li}. We recommend you cut-and-paste our example and then replace 290999999 with the 9-digit OBiTalk number that was assigned to your softphone above. A punctuation error here will block your softphone from ever working. Click Submit and Reboot.

9. Finally, we need to configure the LINE Port. For the InboundCallRoute, insert the following using the 10-digit phone number assigned to your netTALK Duo: SP2(6781234567). For the SilenceTimeThreshold, set the number of seconds you want the OBi110 to wait before disconnecting a call where nobody at the other end of the call says anything. We recommend 600 which is 10 minutes. Click Submit and Reboot.

10. Now it’s time to connect your netTALK Duo to your OBi110. Unplug any phone connected to the netTALK Duo. Using a telephone cable, connect the PHONE port of the netTALK Duo to the LINE port of the OBi110. Never plug the netTALK Duo into the PHONE port of the OBi110, or your OBi is (burnt) toast!!!

11. Test your configuration. Pick up the phone that’s still connected to the OBi110 and dial either a 10-digit or 11-digit number of someone you love: 8005551212 or 18005551212. Do the same thing using the OBiON app on your cellphone or tablet. Be patient! OBiON connections are not instantaneous. Your connections have to be authenticated through OBiHai’s servers before they go through.

Interconnecting Asterisk with the OBi110

There basically are three pieces you need to add to Asterisk so that it can communicate with your netTALK Duo and OBi110. You need a Trunk to which the OBi110 will register. You need an Inbound Route to tell Asterisk how to handle incoming calls from the netTALK Duo phone number. And you need an Outbound Route to tell Asterisk which outgoing calls should be routed out through the netTALK Duo. We’re assuming you will be using the netTALK Duo as your primary trunk for outbound AND emergency calls. We’re also assuming you will not be making international calls. Finally, we’re assuming you are using FreePBX 2.11 with either PBX in a Flash or with one of the Incredible PBX builds on the CentOS 6.5, Raspbian, or Ubuntu platforms. Other FreePBX 2.11 setups should work in much the same way. If any of these assumptions don’t apply, you’ll obviously need to make the necessary adjustments for your environment.

Trunk Configuration. To set up the obitrunk under FreePBX 2.11, log into FreePBX and choose Connectivity -> Trunks -> Add SIP Trunk. For the Trunk Name, use obitrunk. For Outbound Caller ID, enter the 10-digit phone number assigned to your netTALK Duo. For Maximum Channels, use 1. For Dialed Number Manipulation Rules, add the following Match Patterns: 1NXXNXXXXXX, NXXNXXXXXX, and 911.

In Outgoing Settings, use obitrunk for Trunk Name and enter the following PEER Details:
type=peer
host=dynamic
port=5061
disallow=all
allow=ulaw
dtmfmode=rfc2833

In Incoming Settings, enter your actual 10-digit netTalk phone number in the User Context field: 6781234567. Enter the following USER Details replacing mypassword with the password you set up in OBi110 step #7 SIP credentials above and adjusting the permit entry to match your LAN subnet:
type=friend
secret=mypassword
host=dynamic
context=from-trunk
canreinvite=no
nat=yes
port=5061
qualify=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.255.0

Click Submit Changes and Apply Config to save your entries.

Inbound Route Configuration. If you already have a default inbound route on your Asterisk server, then you can skip this step unless you want incoming calls from the netTALK DID routed in a special way. To create an inbound route for the netTALK phone number, choose Connectivity -> Inbound Routes -> Add Incoming Route. For the Description, enter netTALK-OBi110. For the DID Number, enter your 10-digit netTALK phone number. For CID Lookup Source, choose CallerID Superfecta if you’re using this module. For Set Destination, choose how you want FreePBX to route the incoming calls, i.e. an extension, ring group, IVR, etc.

Click Submit and Apply Config to save your entries.

Outbound Route Configuration. If you want all 10-digit, 11-digit, and 911 calls placed from your Asterisk server to be routed out through the netTALK Duo, then you’d Add a Route under Connectivity -> Outbound Routes that looks something like the following. Don’t forget to move this Outbound Route (in the right column) to the TOP of your list of Outbound Routes to make certain it is processed first by FreePBX.

For Route Name, use obiout. For Dial Patterns, use the same ones you used in your Trunk setup above: 1NXXNXXXXXX, NXXNXXXXXX, and 911. For Trunk Sequence, select obitrunk.

Click Submit Changes and Apply Config to save your entries.

While still in Outbound Routes, drag obiout to the top of the outbound routes list in the right column. Then click Apply Config again to save your trunk processing sequence.

Verifying Connectivity. Let’s be sure everything works. First, log back into the IP address of your OBi110 and verify that System Status -> SP2 Service Status shows the OBi110 is registered to your Asterisk server. Next place a 10-digit call using an extension on your Asterisk server and monitor the Asterisk CLI to make certain that the call went out using the netTALK Duo trunk and was completely successfully. Finally, use your cellphone to call the number assigned to your netTALK Duo. The call should ring on the devices you configured in the Inbound Route above. Enjoy your new freedom from Google Voice!

Special Thanks. We want to express our appreciation to ObiHai for an excellent Administrator’s Guide and to the numerous individuals who have wrestled with the OBi110 setup over the years. This includes Adrian Li, Ad_Hominem and MichiganTelephone on the OBiTalk Forum as well as the reference articles which now are available here.

Originally published: Tuesday, January 7, 2014




Need help with Asterisk? Visit the PBX in a Flash Forum.


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


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


Some Recent Nerd Vittles Articles of Interest…

  1. Many of our purchase links refer users to Amazon when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from Amazon to help cover the costs of our blog. We never recommend particular products solely to generate Amazon commissions. However, when pricing is comparable or availability is favorable, we support Amazon because Amazon supports us. []

IVR 101: Six Quick Steps to Building Incredible IVRs for Asterisk with FreePBX

As more and more Asterisk® platforms enter the open source community, it seems as if we spend a lot of energy covering the basics of getting those new systems into place, and there’s little time left for tutorials that really make the difference in a great telephony system and one that just makes calls. So our New Year’s Resolution is to try to devote a column every month to smelling the roses and pushing out some information that actually helps newbies in the VoIP community learn something while getting them up to speed on creating important pieces of a PBX themselves.

For today, IVR 101 tackles Interactive Voice Response systems (IVRs) and AutoAttendants. These are the tools that let callers interact with a PBX without assistance from a receptionist. What’s the difference in an IVR and AutoAttendant? Both offer unattended call processing, but an IVR is more sophisticated typically offering much more than a menu tree of connection options to the caller. For example, some of the options in today’s demo IVR let the caller interact directly with the computer to retrieve customized responses. Call by Name lets the caller speak the name of a person or company to dial, Weather by City lets the caller choose the City and State, Province, or Country of a weather forecast to retrieve, and Wolfram Alpha lets the caller ask about almost anything you’d find in your favorite almanac. Twenty years ago, companies were spending $100,000+ to get this functionality from the Bell Sisters and companies like Nortel. Today you can do it with a Raspberry Pi or BeagleBone Black running Incredible PBX for less than $50. Much has been written about IVR Hell and how to build effective IVRs that don’t drive callers crazy. We’ll leave that one for you to explore on your own. But we can’t stress enough how important this really is. It can make or break a company! If you’re unwilling to invest the time in the IVR design, there are companies such as CallFire that will do it for you. For do-it-yourselfers, you’ll want to start with Allison’s 15 Commandments (for ease of reference, we have linked to the individual articles on Digium’s site below) and then do a little Googling on your own. There’s a wealth of information on the topic.

Allison’s 15 Commandments of IVR
 
1. Don’t Overestimate Your Listener’s Attention Span
2. Thou Shalt Not Create Fake Mailboxes
3. Keep Things Simple
4. Always Give Callers an Opt-”In”
5. Front-Load Important Information
6. Understand What Constitutes a “Prompt”
7. Understand The Effects of Proper Punctuation in Concatenation
8. Thou Shalt Not Give Directions To Your Office/Facility
9. Give a Pronunciation Guide for Proper Names and Place Names
10. Name Your Company Something That Needs No Special Instruction
11 Don’t Go Overboard with Niceties
12. Read The Copy Out Loud
13. Be Clear on Your Company’s Vision/Image — And Be Able To Explain That To Me
14. Don’t Front-Load Too Much Information in The Opening Greeting
15. Write in a Conversational Tone

Step #1: Documenting What You Want Your IVR to Do

Our task today is to cover the mechanics of building an effective IVR. That, of course, starts with a pencil and paper. Before you can build anything, you need a blueprint for what you’re trying to accomplish and how we go about getting there. What choices do you want to give callers that dial into your PBX? Do you want all of these options announced to every caller, or should some of them be left hidden (perhaps behind passwords) that let certain users interact with your PBX in ways that casual callers won’t know about. Keep in mind that the bad guys have telephones, too. So, even though an IVR option may not be mentioned, that doesn’t mean that the curious caller won’t push buttons you didn’t describe as available. Unless you have deep pockets, for example, you probably wouldn’t want to make a DISA call-out option available, whether hidden or otherwise, without protecting it with a very secure password. Similarly, an IVR option that lets anybody schedule a reminder to any phone number of their choice is not too smart.

Rule #1: The very first question you need to ask yourself with every IVR option is “Can this function end up costing me money?” If the answer is “yes” then you need a very secure password before any caller can access that feature.

For today, we’re going to build a call tree that shows off some of the features included in Incredible PBX. When a caller dials into a certain number on your PBX, we’ll play a message that describes the available options. Then we’ll let the caller play with the Incredible PBX feature set. You probably would want to set this system up on a phone number that supports unlimited inbound calls at no additional cost. In short, ask yourself: “Do thousands of 30-minute calls to my demo IVR end up costing me money?” If the answer is “yes” then don’t build a non-essential IVR without first securing a DID that doesn’t cost you by the minute. There are lots of choices including Google Voice which happens to still be free and available until May 15, 2014. There’s also IPkall that still gives out free DIDs in the Seattle area to anyone with a SIP URI. If you haven’t already guessed, we’re trying to get you in the mindset of always assuming the worst case from every potential caller. After all, it’s your phone bill.

We started with our pencil and paper and sketched out what we wanted to include in our Demo IVR. And, by the way, you would never want to position “speak to a real person” as the last option in a real IVR unless you just love pissing off your customers. Today’s IVR wasn’t designed to let you speak to a real person… other than Lenny. :wink:

Test Drive: Demo IVR with Incredible PBX on the $45 BeagleBone Black RasPBX

Step #2: Recording the Voice Prompt for the Demo IVR

When people call your phone number, they expect someone to answer the call. In the case of an IVR or AutoAttendant, you’ll need a voice prompt to tell callers what options are available. The options need to be concise keeping in mind that the average attention span of callers is about 30 seconds. You don’t want callers hanging up before they’ve even reached the end of your schpeel. You also don’t want callers to have to listen to a dozen options when the option they wanted was #1. We’re going to be using FreePBX® to create the IVR so it will automatically permit callers to interrupt the talking head by pressing a button. If you’re doing this with Asterisk dialplan code, make sure you use the Background function to play your voice prompt rather than Playback which forces callers to listen to the entire recording before making a choice.

In recording voice prompts, you have a number of options. The most professional is to hire Allison to record the prompts for you. Then it matches all of the other prompts on your Asterisk system. You can do this through Digium’s web site, and the cost is quite reasonable. For bigger projects, contact Allison directly through her web site. Another alternative is to record the prompt yourself. This can be done with professional recording equipment or using an ordinary phone with FreePBX: Admin -> System Recordings -> Extension Number. Who knows? You may want to break into the voice-over business yourself.

The other alternatives involve use of a text-to-speech engine to create the voice prompts. A synthesized “Allison voice” is available from Cepstral®; however, due to a change in licensing, you now will need three different licenses in order to record voice prompts. If you want on-the-fly prompts using Cepstral, you also will need additional licenses for each simultaneous caller. Other than in the corporate environment, we can no longer recommend Cepstral. And, even for business use, Allison’s custom recordings are far superior to the TTS renditions in our opinion.

Two free text-to-speech alternatives are available on Incredible PBX platforms. Flite sounds much like Herman Munster. You can understand him. That’s about it. GoogleTTS is a female voice that actually does a good job. For demo projects, we typically use GoogleTTS although you won’t have to today. GoogleTTS voice prompts can be created from the command line by logging in as root. The following command would build an ivr.wav voice prompt for this demo IVR that is suitable for use on all Asterisk-based systems:

googletts-cli.pl -t "Hi: Thank you for calling. To call by name, press 1: To join the conference, press 2: For Wool From Alpha: press three: To speak to Lenny: press four: For today's news headlines, press 5: For today's weather forecast, press 6. For today in history, press 7. Or press 8 for the house phones and speak to a real person." -r 8000 -o ivr.wav

As a Christmas present to all of us, Allison has actually recorded the voice prompt for this demo IVR, and you are more than welcome to download it and use it in building a Demo IVR for your own computer. It provides a great example of the quality of Allison’s recordings. Night and day pretty much sums up the difference between Allison’s recording and the GoogleTTS version, but you can judge that for yourself. Here’s the download link for the ivr-Allison.wav prompt. And here’s the download link for the GoogleTTS ivr.wav prompt. Just import the files into FreePBX as outlined below.

Step #3: Importing the Voice Prompt into FreePBX

Before we actually create our IVR application in FreePBX, we first need to get our two voice prompts from Allison and GoogleTTS imported so that they can be used as part of the FreePBX system. There are two ways to do this. The first is to import a file from your desktop PC using the FreePBX GUI. We’ll use this to grab the Allison prompt you downloaded to your desktop above. Choose Admin -> System Recordings. Then Choose File -> ivr-Allison.wav -> Upload. Now Name the file: ivr-Allison and click Save.

The second option is to create a dummy IVR voice prompt in FreePBX and then replace the dummy ivr.wav file with your actual recording. Let’s create a dummy recording just to show you the procedure to use for GoogleTTS prompts. Choose Admin -> System Recordings. Enter an extension number that is connected to your PBX: 701 then click Go button. Using extension 701, dial *77 and record a few words of gibberish. Press # and hang up. Give the recording the same name as the file we wish to upload (without the extension): ivr. Click the Save button. Finally, from the directory on your Incredible PBX server where you recorded your GoogleTTS ivr.wav file in Step #2 above, move the ivr.wav file to its permanent location: mv ivr.wav /var/lib/asterisk/sounds/custom

Step #4: Creating the IVR in FreePBX

To create the IVR in FreePBX on the Raspberry Pi or BeagleBone Black platform, choose Applications -> IVR -> Add IVR and then fill in the blanks to match this template clicking the + button to add the necessary number of IVR options, SUBMIT your entries, and APPLY CONFIG to reload FreePBX. You will note that, for each of the applications, we already have created a Misc Destination within FreePBX so that it can be used as part of a FreePBX-generated IVR. If you’ve created your own dialplan or AGI applications, you would need to complete this step before creating your IVR. To use Allison’s prompt instead of the GoogleTTS prompt, simply change the top Announcement entry below from ivr to ivr-Allison. Then, Allison’s prompt will play when a call is first answered, and the GoogleTTS version will play for invalid, timeout, and repeat announcements. That makes it easy for you to compare the two alternatives.

Step #5: Linking the IVR to an Incoming DID in FreePBX

Finally, you’ll need a DID that folks can call to reach your IVR. We’ll assume you’ve already set that up on your PBX so all we need to do in FreePBX is create an Inbound Route to pass incoming calls to that phone number. Choose Connectivity -> Inbound Routes -> Add Incoming Route and fill in the blanks using the template below and the actual number of your DID. Click Submit and Apply Config to complete the process.

Step #6: Taking the Demo IVR for a Test Drive

This is a really important final step. ALWAYS try out every option on your IVR immediately after creating it. Be sure you call the IVR twelve times and press every button on your phone to make certain the results match what you expected to create. If not, edit the IVR in FreePBX and then try your calls again. As obvious as this sounds, you probably already know that many “professionally-built” IVR creations seem to have forgotten this step. We couldn’t begin to tell you the number of IVRs we have encountered with dead links, looping menus, and on and on. Do your callers a favor. Test your stuff before you put it in production.

Test Drive: Demo IVR with Incredible PBX on the $45 BeagleBone Black RasPBX



Another Banner Year at Nerd Vittles. As 2013 comes to a close, we want to thank our 500,000+ unique and very special visitors this year from 218 countries around the globe! With an average 5 million page views every month, it’s heartening to see the VoIP story spreading like wildfire. Are you listening VoIP merchants? We wish all of you a very Happy and Prosperous New Year and hope you will join us again in 2014 as the VoIP revolution marches on.

Originally published: Monday, December 30, 2013




Need help with Asterisk? Visit the PBX in a Flash Forum.


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


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


Some Recent Nerd Vittles Articles of Interest…

Twofer Tuesday: Incredible PBX for RasPBX on BeagleBone Black and Raspberry Pi


We never were big fans of unfinished projects. And with Festivus behind us and Christmas tomorrow, it seemed only fitting to celebrate with a Twofer Tuesday Encore. Whether you like ‘em or hate ‘em, Google’s free text-to-speech engine is a big deal. It’s as close to perfect as any commercial product you can buy. So getting it to work with the BeagleBone® Black was really important for those of us that believe the BeagleBone Black is a near perfect telephony platform for home users and SOHO businesses. With this week’s release of Incredible PBX™ 4.11.3 for the RasPBX™, the GoogleTTS engine finally is available in all its glory on both the Raspberry Pi® and BeagleBone Black platforms. At $45 and sporting a “Made in the USA” moniker, the BeagleBone’s only real competition is the Raspberry Pi which has roughly a third the performance for VoIP-related tasks. Finding a BeagleBone Black has not been the easiest thing to accomplish either. They have sprung up five or six times over the past two weeks only to be snarfed up in a couple of hours. We have a PIAF Forum thread that will keep you apprised of the latest sightings or just follow us on Twitter. As with the early days of the Raspberry Pi, price gouging is alive and well so we’ll leave it to you to decide what your budget can tolerate. Our recommendation is hold your nose and pay the extra $15. The BeagleBone Black is worth it!

There’s more Black news this week as well. PIAF-Black™ now ushers in the next generation of Asterisk® with the official release of Asterisk 12.0.0. You can download the latest 32-bit or 64-bit PIAF™ ISOs from SourceForge. Then pick your favorite flavor of Asterisk to install. It’s that easy! New torrents were released this week as well thanks to our good friend, Isaac McDonald. Torrents are available for the latest PIAF 2.0.6.5.0 ISOs as well as two virtual machine builds for PIAF-Green™ with FreePBX™ 2.11 and Incredible PBX 11. Just visit the PIAF web site to grab your favorite torrent. Merry Christmas everybody!

For long time Nerd Vittles readers, you may recall that we built the original Incredible PBX™ for Raspberry Pi® (aka Incredible Pi) using much of the development platform pioneered by Gernot Bauer of RasPBX™ fame. In the early days of Gernot’s project, we just couldn’t get the necessary pieces in place on his platform to support Incredible PBX so we temporarily forked his terrific work in order to get Incredible Pi out the door quickly. That was then, and this is now as they say. RasPBX has grown in popularity because of the untiring efforts of Gernot & Co. in continually improving the platform. And six months ago, RasPBX was ported to the BeagleBone Black. Don’t be misled by its tiny footprint. The BeagleBone Black1 provides nearly triple the performance of a $35 Raspberry Pi for an extra $10 to $25 hardware investment depending upon where you buy the board. The rainbow case is a few cents more. :wink:

Let us cut to the chase. Run, don’t walk, to buy a BeagleBone Black! It’s that good. If Amazon is sold out, here is a link to other suppliers. See also this thread on the PIAF Forum for the latest availability news. In terms of performance, we would be hard-pressed to distinguish the BeagleBone Black’s performance from an identical Asterisk® and FreePBX®-based system running on the Intel® Atom® platform. The performance boost is that dramatic. So a few weeks ago we decided to take another look at the RasPBX platforms with the goal of porting Incredible PBX in much the same way that we currently provide the add-on for PBX in a Flash™ builds. The advantage for us is that it gets us out of the hardware business and lets us concentrate on building better VoIP application software. The advantage for you is it gives you additional choices, and they’re all still free!


UPDATE: Good News and More Good News. Everything covered below works flawlessly on the Raspberry Pi and BeagleBone Black platforms. On the Beaglebone Black hardware, everything works except GoogleTTS, and our friend, Lefteris Zafiris, will have a fix soon. GoogleTTS goes through the motions of converting text to speech, but the output is a constant high-pitched beep. For the short term, on the BeagleBone Black, we’ve substituted Flite for GoogleTTS until there is a fix. Soon with a little luck! We’ve also added an experimental IPtables Firewall WhiteList to the BeagleBone Black platform. Please read this thread on the PIAF Forum for details and keep us apprised of your progress. The complexity of the GoogleTTS fix for the BeagleBone Black made it an unsuitable candidate for the automatic update utility. Our apologies. We’ve set up a demo IVR application so you can check out the performance of Incredible PBX on the BeagleBone Black for yourself.

Nerd Vittles Demo IVR Options
1 – Call by Name (say “Delta Airlines” or “American Airlines” to try it out)
2 – MeetMe Conference (password is 1234)
3 – Wolfram Alpha (say “What planes are overhead?”)
4 – Lenny (The Telemarketer’s Worst Nightmare)
5 – Today’s News Headlines
6 – Weather Forecast (say the city and state, province, or country)
7 – Today in History
8 – Speak to a Real Person (or maybe just voicemail if we’re out)

Overview of Incredible PBX for RasPBX. Let’s quickly run down the new feature set for Incredible PBX 4.11.3 on the RasPBX platform. With the demise of Google Voice less than six months away, we thought it was important to begin offering some additional choices. With this build, you’ll have a dozen preconfigured VoIP trunks from the best providers in the business to choose from. Most offer outbound calls in the U.S. and Canada for a penny or less per minute. And many offer DID trunks with unlimited inbound calls for under $5 a month. Several offer free SIP URIs, or free U.S. DIDs, or free iNum DIDs for unlimited free calling worldwide. You’ll find lots of tips and suggestions in the Providers section of the PIAF™ Forum. Once you’ve signed up with one or more providers, all you have to do is plug in your credentials and enable the desired trunks in FreePBX. It only takes a few seconds.

We also wanted to provide a robust collection of Asterisk applications that let you bring up a fully-functional, feature-rich VoIP platform in a matter of minutes. As with all Incredible PBX builds, this release activates the Flite text-to-speech engine as well as Google’s TTS and STT interfaces. The Baker’s Dozen VoIP applications we’ve chosen for this initial release include free CallerID Name lookups for incoming calls, Voice Dialing with speech-to-text (STT) capability as well as Speed Dials, Yahoo News and Weather reports with text-to-speech (TTS) translation of the Yahoo news feeds, Weather Reports by ZIP code from the National Weather Service, MeetMe conferencing by simply dialing an extension, Telephone Reminders and Hotel-Style Wakeup Calls (both accessible by phone or via FreePBX GUI), Today in History, SMS messaging, Wolfram Alpha, and our versatile AsteriDex contacts database. We’ve also integrated the Incredible PBX automatic update service into the RasPBX build. Just log into your server once in a while, and the rest is automagic. You also get email delivery of voicemails in MP3 format so that you can play back your messages with almost any email client. Finally, there’s a new status application to tell you everything you want to know about your RasPBX server in a single screen.

Getting Started. Incredible PBX for RasPBX is basically a scripted installer. It assumes you already have a functioning RasPBX device. The only gotcha is your RasPBX system needs to be freshly created with no customization. This is important because, as part of the installation procedure, Incredible PBX loads a 15MB image snapshot that overwrites all of your Asterisk, FreePBX, and MySQL configurations. If you have previously customized your setup or added features such as faxing, those will get wiped out during the Incredible PBX installation process. Bottom Line: Start by creating a new RasPBX SD image for use with Incredible PBX. Boot RasPBX and log in as root. Download and run the Incredible PBX installer. Once the Incredible PBX install is complete, customize your new system as desired. While nothing is 100% bullet-proof, we’ve taken pains to design Incredible PBX in such a way that it can coexist with future updates to RasPBX deployed through the raspbx-upgrade utility. And Incredible PBX has its own update utility, update-my-raspbx, which is run automatically when you log into your server as root. Finally, we are confident that this new Incredible PBX release is stable; however, it is version 1.0 software and should be treated as such at least through the end of 2013. Please report any bugs you discover on the PIAF Forum, and we will attempt to provide timely fixes.

Installing Incredible PBX. As noted, we’re assuming you already have created a fresh SD card with your RasPBX image. If not, start with the first four steps only of the excellent tutorials for the Raspberry Pi or BeagleBone Black. Next, boot your system from the SD card and log in with username root and password raspberry or beaglebone depending upon your hardware platform. Be sure you have a working Internet connection for your hardware. Then proceed with the Incredible PBX installation procedure below:

cd /
wget http://incrediblepbx.com/incrediblepbx11-raspbx.gz
gunzip incrediblepbx11-raspbx.gz
chmod +x incrediblepbx11-raspbx
./incrediblepbx11-raspbx

Hang around for the first couple minutes of the install. You’ll be prompted to type a Y as part of the raspbx-upgrade procedure. Once you get past that prompt, you can go have a cup of coffee while the installation procedure continues. It takes about 15-30 minutes to complete depending upon the speed of your Internet connection. Once the base install finishes, the update-passwords script will be launched. It’s imperative that you reset all of your passwords with very secure passwords immediately. This includes the root password, the FreePBX and ARI admin passwords, the extension 701 password, the extension 701 voicemail password, the email delivery address for extension 701, and the telephone reminders password for scheduling reminders by phone. Just fill in the blanks, and the script will do the heavy lifting.

Asterisk Security. Once the Incredible PBX install completes, what you still have is an Incredibly Insecure PBX. Unless you’ve already done so, make certain that Incredible PBX is repositioned behind a hardware-based firewall with no Internet port exposure! This is very important. Neither Asterisk nor FreePBX was designed for direct exposure to the Internet. Before you do anything else, read our Primer on Asterisk Security. Remember, it’s your phone bill.

UPDATE: Travelin’ Man 3 Now Implemented. Beginning with Incredible PBX 4.11.3, IPtables WhiteList security was added to the RasPBX BeagleBone Black platform. And version 4.11.4 released on 1-4-14 added it to the Raspberry Pi edition of RasPBX as well. For the nuts and bolts of how the IPtables firewall and WhiteLists work, read the Travelin’ Man 3 tutorial. Do NOT install the application! It’s already there. We still recommend that you always run your server behind a hardware-based firewall. Travelin’ Man 3 just adds an extra layer of protection. Think of it as a second condom without the pain. :wink:

As initially configured, IPtables is set up to allow all incoming and outgoing traffic. It will display as DN in the status display. You have a couple of options. If you only want to allow incoming traffic from phones and users on your private LAN while permitting registered SIP and IAX trunk connections from anywhere, then log into your server as root and execute this command:

cp /root/iptables.lanonly /etc/network/iptables

If you want to further lock down your server and manage all external connections from outside your LAN, run: /root/secure-iptables. As configured, IPtables never blocks internal LAN traffic. By running secure-iptables, you get to set one “safe” external IP address for access to your server in addition to automatically configuring the safe IP addresses of a dozen SIP providers. You then can add additional IP addresses to your WhiteList by running /root/add-ip or /root/add-fqdn. You can delete providers with /root/del-acct. Check the status of your IPtables setup at any time with this command: iptables-status. Restart/reload IPtables settings using only this command: iptables-restart. If you use the traditional IPtables reload procedure, you will permanently erase any fully-qualified domain names in your IPtables configuration and convert them (permanently) to IP addresses. Don’t do it! Always use iptables-restart. Never erase files in /root with the .iptables extension. This is how Travelin’ Man 3 keeps track of your WhiteList entries so that you can delete as desired. For further details, read the Travelin’ Man 3 article.

Overclocking the Raspberry Pi. On the Raspberry Pi platform only, to enable overclocking at your own risk, run: raspi-config. Overclocking works for us. YMMV! The key is a good power supply. Even though the kernel now monitors CPU temperature and manages overclocking, it’s always nice to see for yourself. To monitor the CPU temperature, just run the status program which provides a current snapshot anytime.

Resizing an SD Card. On both the BeagleBone Black and Raspberry Pi platforms, you can resize (expand) the default partition to accommodate a larger SD card. On the Raspberry Pi, the default partition is 4GB. On the BeagleBone Black, it’s only 2GB. To resize the partition to make use of a larger SD card on a Raspberry Pi, choose the resize option after running raspi-config. Then reboot. The BeagleBone Black is a different beast. While we don’t recommend it, you can actually run Incredible PBX using the internal 2GB eMMC memory board rather than an external Micro SD card. Gernot’s documentation will walk you through how to do it. While it is screaming fast compared to an SD card, you’ll only have 371MB of breathing room so it means constant monitoring of your log files and minimal use of functions that consume disk space. Or you could create a cron job to run daily and use a script like ours:
#!/bin/bash
cd /var/log/asterisk
touch empty.log
chmod 664 empty.log
chown asterisk:asterisk empty.log
cp empty.log freepbx_dbug
cp empty.log freepbx_debug
cp empty.log freepbx.log
cp empty.log full
cd ..
rm *.0*
rm *.1*
rm /tmp/ggl*

We much prefer at least an 8GB Type 4 SD card for Incredible PBX. On the BeagleBone Black, we’ve added the resize-partition script in the /root folder. Just run it after booting from your Micro SD card.

Setting Up Google Voice. If you want free calling in the U.S. and Canada for the next five months, then you’ll need a Google Voice account, and you’ll need one dedicated to Incredible PBX, or it won’t work. Log out after setting up the new Google Voice account! Also note that Google Voice will cease to function on May 15, 2014. Read all about it here.

  • Register for Google Voice account (no funky characters in your password!)
  • Enable Google Chat as Phone Destination
  • Configure Google Voice Calls Settings:
    • Call ScreeningOFF
    • Call PresentationOFF
    • Caller ID (In)Display Caller’s Number
    • Caller ID (Out)Don’t Change Anything
    • Do Not DisturbOFF
    • Call Options (Enable Recording)OFF
    • Global Spam FilteringON

  • Place test call in and out using GMail Call Phone

Accessing Incredible PBX By GUI. You don’t have to be a Linux guru to use Incredible PBX. In fact, we’re just about finished with the Linux command prompt, but stay logged in until we finish a few more steps below. Most of your configuration of Incredible PBX will be performed using the FreePBX Web GUI.

If you’re new to Asterisk and FreePBX, here’s the one paragraph primer on what needs to happen before you can make free calls with Google Voice. You’ll obviously need a free Google Voice account. This gets you a phone number for people to call you and a vehicle to place calls to plain old telephones throughout the U.S. and Canada at no cost. You’ll also need a softphone or SIP phone to actually place and receive calls. YATE makes a free softphone for PCs, Macs, and Linux machines so download your favorite and install it on your desktop. Phones connect to extensions in FreePBX to work with Incredible PBX. Extensions talk to trunks (like Google Voice) to make and receive calls. FreePBX uses outbound routes to direct outgoing calls from extensions to trunks, and FreePBX uses inbound routes to route incoming calls from trunks to extensions to make your phones ring. In a nutshell, that’s how a PBX works. There are lots of bells and whistles that you can explore down the road.

Let’s get started. Using a browser, enter the IP address of your server or just use http://raspbx.local as the address. Choose FreePBX Administration. When prompted for a username and password, use admin for the username and whatever FreePBX password you set up when you initially configured your server above. If you ever forget your credentials, just run /root/update-passwords again to reset them.

Changing FreePBX admin Password and Default Email. From the main FreePBX GUI, click Admin => Administrators. Click on admin user in the far-right column. Enter a new Password and click Submit Changes button. We did this in update-passwords, but now you’ll know how to do it from with the FreePBX GUI as well. Click Apply Config button. Be sure to set your default email address in the right margin of Admin -> Module Admin and save your entry. By doing this, you’ll get periodic notices of FreePBX updates. It’s a good idea to stay current with these. They are generally well tested before release.

Activating a Google Voice Trunk. To create a Trunk in FreePBX to handle calls to and from Google Voice, you’ll need three pieces of information from the Google Voice account you set up above: the 10-digit Google Voice phone number, your Google Voice account name, and your Google Voice password. Choose Connectivity -> Google Voice (Motif) from the FreePBX GUI. The following form will appear:

Fill in the blanks with your information and check only the top 2 boxes. If your Google Voice account name ends in @gmail.com, leave that out. Otherwise, include the full email address. Then click Submit Changes and Apply Config.

There’s one more step or your Google Voice account won’t work reliably with Incredible PBX! From the Linux command prompt while logged into your server as root, restart Asterisk: amportal restart

Setting a Destination for Incoming Calls. Now that you’ve created your Google Voice Trunk, we need to tell FreePBX how to process inbound calls when someone dials your Google Voice number. There are any number of choices. You could simply ring an extension such as 700 which we’ve already set up for you. Or you could ring multiple extensions by first creating a Ring Group which is just a list of extension numbers. Or you could direct incoming calls to an Interactive Voice Response (IVR) system.

By default, Incredible PBX is configured to route all incoming calls to extension 701. You can change this whenever you like by choosing Connectivity -> Inbound Routes -> Default. In the Set Destination section of the form, change the target to your desired destination for the incoming calls. Then click Submit and Apply Config.

Changing Extension Passwords. From the main FreePBX GUI, choose Applications -> Extensions. Then click on 701 in the Extension List on the right side of your display. You’ll see a form that looks like this:

We’ve already made these changes using update-passwords, but here’s how to do it in the FreePBX GUI. The extension secret needs to be a combination of letters and numbers. The Voicemail Password needs to be all numbers, preferably six or more. Replace the existing passwords with your own (very secure) entries. You also need to lock down this extension so that it is only accessible from devices on your private LAN. You do that with the deny and permit entries which currently are filled with zeroes. Leave the deny entry the way it is which tells Incredible PBX to block everybody except those allowed in the permit entry below. For the permit, we need the first three octets of your private LAN address, e.g. if your LAN is 192.168.0.something then the permit entry will be 192.168.0.0/255.255.255.0.

Finally, you need to insert your actual email address in the Voicemail section so that voicemails can be delivered to you when someone leaves a message. You can also include a pager email address if you want a text message alert with incoming voicemails. If you want the voicemails to automatically be deleted from the server after they are emailed to you (a good idea considering the disk storage limitations of an SDHC card), change the Delete Voicemail option from No to Yes. That’s it. Now save your settings by clicking the Submit button. Then reload the dialplan by clicking on the red prompt when it appears.

In case you’re curious, unless you’ve chosen to automatically delete voicemails after emailing them, you can retrieve your voicemails for extension 701 by dialing *98701 from any extension on your phone system. You’ll be prompted to enter the voicemail password you set up. And you can leave a voicemail for someone by dialing their extension number preceded by an asterisk, e.g. *701 would let someone leave you a voicemail without actually calling you.

Eliminating Audio and DTMF Problems. You can avoid one-way audio on calls and touchtones that don’t work with these simple settings in FreePBX: Settings -> Asterisk SIP Settings. Just plug in your public IP address and your private IP subnet. Then set ULAW as the only Audio Codec.

Setting Up a Desktop Softphone. Incredible PBX supports all kinds of telephones, but we’ll start with the easy (free) one today. You can move on to “real phones” once you’re smitten with the VoIP bug. For today, you’ll need to download a softphone to your desktop PC or Mac.

As we mentioned, the easiest way to get started with Incredible PBX is to set up a YATE softphone on your Desktop computer. Versions are available at no cost for Macs, PCs, and Linux machines. Just download the appropriate one and install it from this link. Once installed, it’s a simple matter to plug in your extension 701 credentials and start making calls. Run the application and choose Settings -> Accounts and click the New button. Fill in the blanks using the IP address of Incredible PBX, 701 for your account name, and whatever password you created for the extension. Click OK.

Once you are registered to extension 701, close the Account window. Then click on YATE’s Telephony Tab and place your first call. It’s that easy!

Incredible Trunks. When you’re ready to try some other SIP providers, we’ve done the hard work for you by providing the setups for a dozen terrific providers. All you have to do is sign up for service on their sites, enable the desired Trunks in FreePBX, and plug in your credentials. Here is a quick Cheat Sheet courtesy of Kristian Hare, who translated the Incredible PBX setups into a spreadsheet. Just click on the image below to open it in a new window. Then click on the redisplayed image to enlarge it.

Adding WiFi Support. This is covered on Gernot’s web site, but we’ll address it just for ease of reference. The most important detail is don’t get creative with your choice of USB WiFi adapters. The Edimax EW-7811Un works so use it. It’s about $10 from Amazon with free 2-day Prime shipping. Next, edit /etc/network/interfaces and add the following lines using the name of your WiFi network as well as your password “in quotes”:

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid your-ssid-here-no-quotes
wpa-psk "your-passphrase-here-with-quotes"

Next, reboot your server and login as root. Your USB WiFi adapter should be lit. Running ifconfig should display an IP address for wlan0. ifdown eth0 will shut down your wired connection. Then restart Asterisk to switch to WiFi: amportal restart.

Shutting Down Your Server. Last but not least, never just pull the plug when you want to shut down your server, or you may end up with corrupted MySQL databases. Then nothing will run. Instead, log into your server as root, and issue the following commands: amportal stop and then shutdown -h now.

The Incredible PBX 4.11.3 Software Collection

Now for the fun stuff. For most folks getting started with Asterisk and FreePBX, the steepest learning curve is moving from a functioning system to one that can actually do cool stuff. Text-to-speech and speech-to-text applications and IVRs and call management and conferencing and click to dial and SMS messaging and faxing are what separate the men from the boys on the Asterisk playing field. And that’s where Incredible PBX really shines. You don’t have to do anything but choose the apps you want to deploy for yourself or your users. Everything is already in place. If you don’t use it, it doesn’t consume any computing resources. So it’s not like the bloatware of decades ago that was always sitting in memory wasting your computing cycles. Here’s a quick thumbnail on each of the applications that’s included in Incredible PBX for RasPBX. You can include almost all of these applications in your IVRs so that callers can make a selection from a list of menu choices. We’ve included the appropriate FreePBX links below. On many of the apps, we’ve also included links to Nerd Vittles or PIAF Forum tutorials for more detailed documentation when you need it.

News Headlines from Yahoo

How It Works. Dial 951. Listen to latest news headlines from Yahoo.

Prerequisites: Uses preconfigured Google TTS.

Setup Required: None

IVR/Dialplan Integration: Misc Destination -> News Headlines

Worldwide Weather Forecasts by City from Yahoo

How It Works. Dial 949. Say the name of a city and state/country for weather report desired. Press #. Listen.

Prerequisites: Uses preconfigured Google STT for query and Google TTS for playback.

Setup Required: None

IVR/Dialplan Integration: Misc Destination -> Weather by City

Worldwide Weather Forecasts by City from Weather Underground

How It Works. Dial 949. Say the name of a city and state/country for weather report desired. Press #. Listen.

Prerequisites: Requires free Weather Underground API key. Uses preconfigured Google STT for query and Google TTS for playback.

Setup Required: Obtain free Weather Underground API key. In /var/lib/asterisk/agi-bin, insert your API key in $apikey of nv-weather-underground.php. Copy nv-weather-underground.php to nv-weather-google.php. Replaces Yahoo Weather by City and provides best available free weather reports.

Limitations. Free account supports up to 10 calls per minute and up to 500 calls per day.

IVR/Dialplan Integration: Misc Destination -> Weather by City

U.S. Weather Forecasts by ZIP Code from National Weather Service

How It Works. Dial 947 (Z-I-P). Enter 5-digit ZIP code for weather report desired. Listen.

Prerequisites: Uses preconfigured Flite TTS to deliver weather report.

Setup Required: None

IVR/Dialplan Integration: Misc Destination -> Weather by ZIP

Today in History from HistoryOrb.com

How It Works. Dial 86329 (T-O-D-A-Y). Listen to today’s important events in history.

Prerequisites: Uses preconfigured Flite and Google TTS to deliver report.

Setup Required: None

IVR/Dialplan Integration: Misc Destination -> Today in History

Schedule Reminders by Phone and Web

How It Works. Dial 123. Enter password. Schedule a reminder or recurring reminder.

Web Interface. FreePBX -> Other -> Reminders to schedule, review, or delete existing reminders.

Prerequisites: Requires configuration of password with /root/update-passwords.

Setup Required: None. Complete tutorial available here.

IVR/Dialplan Integration: Misc Destination -> Reminders

Hotel-Style Wakeup Calls

How It Works. Dial *68. Schedule a wakeup call just like in the hotel.

Web Interface. FreePBX -> Applications -> Wake Up Calls to schedule and configure wakeup calls.

Prerequisites: None.

Setup Required: None. Complete tutorial available here.

IVR/Dialplan Integration: Misc Destination -> Wakeup Calls

Time of Day

How It Works. Dial *61. Check the time just like in the Ma Bell era.

Prerequisites: None.

Setup Required: None.

IVR/Dialplan Integration: Misc Destination -> Time of Day

AsteriDex Phone Book and RoboDialer

How It Works. Open AsteriDex. Populate entries. Set click-to-dial extension. Click on person/company to call. Answer ringing call on your designated click-to-dial extension. Wait for called party to be connected.

Web Interface. FreePBX -> Other -> AsteriDex to update directory and to place click-to-dial calls.

Prerequisites: Populate the AsteriDex directory with your favorite people and places to call.

Setup Required: Complete tutorial for AsteriDex is available here. Import Google Contacts. Import Outlook Contacts. Import from Exchange Server. Import Mac Address Book or CSV Contacts.

AsteriDex Voice Dialer

How It Works. Dial 411. Say the name of person or company to call. Entry is looked up from AsteriDex and called.

Web Interface. FreePBX -> Other -> AsteriDex to update directory and to place click-to-dial calls.

Prerequisites: Populate the AsteriDex directory with your favorite people and places to call. Uses Google STT.

Setup Required: None. Complete tutorial for AsteriDex is available here.

IVR/Dialplan Integration: Misc Destination -> Voice Dialer

AsteriDex Speed Dialing Duo

How It Works. Dial 412. Enter Speed Dial code of person/company. Entry is looked up from AsteriDex and called.

Alternative. Dial 000 + Speed Dial code. Entry is looked up from AsteriDex and called.

Web Interface. FreePBX -> Other -> AsteriDex to update directory and to place click-to-dial calls.

Prerequisites: Populate the AsteriDex directory with your favorite people and places to call. Include a DialCode for speed dial.

Setup Required: None. Complete tutorial for AsteriDex is available here.

IVR/Dialplan Integration: Misc Destination -> Call by Code

SMS Dictator

How It Works. Dial 767 (S-M-S). Say either the name of an AsteriDex entry or enter an SMS phone number to call. Dictate a message to be sent via Google SMS. Your message is converted to text and delivered via Google SMS.

Prerequisites: Requires Google Voice account and SMS Dictator setup. Uses preconfigured Google STT.

Setup Required: Before first use, sign up for a Google Voice account that can be dedicated to Incredible PBX use. Run install-smsdictator.sh in /root to configure SMS Dictator with your credentials. Complete documentation available here. May cease to function on May 15, 2014.

IVR/Dialplan Integration: Misc Destination -> SMS Dictator

SMS Message Blasting

How It Works. Run the smsblast script in /root to deliver an SMS text message stored in smsmsg.txt to all of the SMS recipients configured in smslist.txt.

Prerequisites: Requires Google Voice account and SMS Blaster setup.

Setup Required: Before first use, sign up for a Google Voice account that can be dedicated to Incredible PBX use. Untar smsblast.tgz in /root: tar zxvf smsblast.tgz. Edit smsblast and insert your Google Voice credentials. Edit smsmsg.txt and type your SMS message to be sent. Edit smslist.txt and prepare your SMS message recipient list. Then run smsblast to deliver your messages. May cease to function on May 15, 2014.

Wolfram Alpha

How It Works. Dial 4747. Say your query for Wolfram Alpha. Examples here. Listen to results.

Prerequisites: Requires free Wolfram Alpha account and setup. Uses preconfigured Google STT and Flite.

Limitations: Free account restricted to 2,000 queries per month.

Setup Required: Before first use, sign up for a Wolfram Alpha account and obtain AppID. Then configure Wolfram Alpha with your credentials by running install-wolframalpha.sh in /root. Complete documentation available here.

IVR/Dialplan Integration: Misc Destination -> Wolfram Alpha

MeetMe Conferencing

How It Works. Dial 2663 (C-O-N-F). Enter user or admin PIN for conference room. Participate in conference call.

Prerequisites: None.

Setup Required: Configure your participant and admin PINs: FreePBX -> Applications -> Conferences -> 2663

IVR/Dialplan Integration: Conferences -> 2663

Telemarketers and Old Girl Friends: Meet Lenny

How It Works. Dial 53669 (L-E-N-N-Y). An entertaining solution for SPAM calls. Also configured as destination for callers on your BlackList.

Prerequisites: None. Read all about Lenny here.

Setup Required: Add 10-digit numbers of spammers to Admin -> Blacklist or dial *32 to BlackList your last caller.

IVR/Dialplan Integration: Extension -> 53669

HylaFax/AvantFax Fax Server

How It Works. Dial 329 (F-A-X). Faxing already is available as a module in RasPBX. You can send faxes to Incredible PBX using almost any SIP or Google Voice DID that you’ve dedicated to faxing.

Prerequisites: Read the Fax Gateway tutorial on Gernot’s web site.

Setup Required: After installing Incredible PBX, run the install-fax script to set up the HylaFax/AvantFax servers. When prompted whether to add an extension, type Y. We recommend 329 for the extension number. It spells F-A-X and makes it easy for everyone to remember the dedicated fax extension on your system. Specify an email address for delivery of the incoming faxes. Switch to FreePBX and add an Incoming Route for the DID that you’ve dedicated to incoming faxes. Specify 329 as the destination. To add additional fax numbers with additional email destinations, run add-fax-extension.

IVR/Dialplan Integration: Extension -> 329

Bluetooth Proximity Detection

Finally, if you really want to impress your friends, buy yourself a cheap Bluetooth adapter and set up a Proximity Detection System that will forward your Asterisk calls to your cellphone when you’re away from your desk. This Nerd Vittles article will walk you through the quick setup process. Before you begin, just install bluez on your Raspberry Pi or BeagleBone Black: apt-get install bluez.

A Word About Flite TTS

We’ve included FLITE as the generic text-to-speech engine for Asterisk. The quality of Google TTS is much better, but we never know how long Google apps will continue to function. Because FLITE is actually integrated into Asterisk, it is susceptible to breakage if a RasPBX upgrade installs a new release of Asterisk. If this happens, you’ll know when FLITE goes silent. You can also run the following command from the Linux command prompt to check it. If you don’t get a page of FLITE information, it’s broken. :-)

asterisk -rx "core show application like flite"

Don’t fret if FLITE breaks. Here’s how to fix it:

cd /usr/src/flite
make clean
make
make install
amportal restart

A Word About MySQL

To eliminate the need to maintain separate versions of Incredible PBX for RasPBX on the Raspberry Pi and BeagleBone Black platforms, we’ve changed the MySQL password on both platforms to raspberry. Originally, beaglebone was the assigned password on the BeagleBone Black RasPBX implementation.


Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a terrible place to handle support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forums. It’s the best Asterisk tech support site in the business, and it’s all free! Please have a look and post your support questions there. Unlike some forums, ours is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of ordinary users just like you. You won’t have to wait long for a courteous response.

Originally published: Tuesday, December 10, 2013    Updated: Tuesday, December 24, 2013



Need help with Asterisk? Visit the PBX in a Flash Forum.


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


Some Recent Nerd Vittles Articles of Interest…

  1. Many of our purchase links refer users to Amazon when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from Amazon to help cover the costs of our blog. We never recommend particular products solely to generate Amazon commissions. However, when pricing is comparable or availability is favorable, we support Amazon because Amazon supports us. []

The Perfect Stocking Stuffer: Incredible PBX for the Raspberry Pi Gets a Facelift

It’s been a wild ride with the $35 Raspberry Pi®. In late October, sales of the Raspberry Pi topped two million in less than two years. And, if you didn’t already know, the Raspberry Pi makes a near perfect platform for your very own VoIP PBX. It’s less than a ONE HOUR project!

If you’re new to the party, imagine squeezing a 700 mHz ARM processor with 512MB of RAM, 2 USB ports, a 10/100 Ethernet port, an HDMI port, composite video, a separate audio jack, an SDHC card slot, and a micro USB port onto a motherboard the size of a credit card weighing 1.6 ounces. Adding WiFi is as simple as plugging in a USB adapter.

Absolute perfection. Other than the slow write speeds to the sd card (you might add a warning note about that part), I had it swapped over to local extension numbers and trunked to existing asterisk servers in minutes… [I]t doesn’t get any cooler than this! — Scott P.

Trust us when we say the performance of this tiny computer is nothing short of amazing. Can it do everything a $300 dual-core Atom PC can do? No. Can it do 90% of everything for someone whose requirements do not exceed a handful of simultaneous calls at a time but still wants a full-blown PBX for call routing, transcribed voicemails delivered by email, IVRs, music on hold, and text-to-speech and speech-to-text apps for a home, a SOHO office, a Little League team, or a dorm room? Absolutely. As Scott mentioned, configuration changes may take you a few seconds longer than would normally be the case with an Atom-based PC and a hard disk. But, hey, you can have this delivered to your front door in two days with Amazon Prime shipping for just a few bucks more than the original cost of the $35 computer, and you’ll have a fully functional PBX up and running before you can name all of Santa’s reindeer:

And today we’re pleased to introduce Incredible PBX 3.11.8 for the Raspberry Pi, a turnkey PBX featuring Asterisk® 11 and FreePBX® 2.11 for a near perfect telephony platform. Special thanks to the tens of thousands of pioneers that have given the first dozen iterations of this software a healthy workout over the past year. We couldn’t have done it without you!

What’s New in Incredible PBX 3.11.8? For those of you already running a previous version, here’s a quick thumbnail of the 3.11.8 feature set. As in the past, we’ve tried to mimic as much of the previous build functionality as possible while providing new firmware support for the very latest Raspberry Pi boards. So you still get simple utilities to configure 1GHz overclocking and automatic expansion of the 3.11 image to run on any size SDHC card. But the major addition is implementation of Asterisk’s latest long-term support release, Asterisk 11, which provides an incredibly stable VoIP platform. There also have been some major plumbing enhancements in FreePBX 2.11 to improve its stability and to enhance security. Of course, you still get Google Voice support until May, 15, 2014 with free calling in the U.S. and Canada as well as free faxing and SMS messaging plus most of the Incredible PBX feature set. We’ve also added optional voice transcription and email delivery of MP3 voicemails to smooth the migration to unified messaging. If you want the first 15 seconds of each voicemail transcribed, then issue the following commands after logging into your server as root. Additional documentation is available here.

cd /usr/sbin
mv sendmailmp3 sendmailmp3.notrans
mv /root/sendmailmp3 sendmailmp3

For those running previous Incredible PBX builds that want support for the newer Raspberry Pi boards, there’s a simple fix to upgrade your existing SD card so that it will boot properly with the newer boards. Here’s the link.

Incredible PBX 3.5 and beyond added automatic detection and support of 512MB Raspberry Pi devices without touching anything. Beginning with version 3.7, we added an awesome fax server to Incredible PBX for those with a 512MB board. The complete tutorial is available here. update-my-pi in the /root folder of your server helps to safeguard your system by bringing it up to date with the latest fixes and enhancements. After running it the first time, it gets run automatically whenever you log in as root. For the safety of your server, don’t disable it! It’s free for the first ten updates, and then it’s just $20 a year. We have to eat, too. If you are philosophically opposed to ever spending a dime to support the open source movement, then feel free to load the latest version of Incredible PBX at no cost whenever you like. It will always be free! Then you can restore your settings using the backup and restore feature built into FreePBX.

To enable overclocking at your own risk, run: raspi-config. Overclocking works for us. YMMV! The key is a good power supply. If you’re using an SD card larger than 4GB, version 3.3 and beyond now can resize your partitions on the fly. Just choose the option in raspi-config and reboot. Even though the kernel now monitors CPU temperature and manages overclocking, it’s always nice to see for yourself. To monitor the CPU temperature, just run the status program which provides a current snapshot anytime. Temperature data now is provided on the FreePBX Dashboard as well.

There’s more good news. Networking is much more stable; however, we’ve dropped support for the TP-Link WiFi adapters. If you still have one of these adapters, see this thread on the PIAF Forum for setup instructions. Otherwise you’ll need the recommended AirLink 101 N-150 if you want WiFi capability. In the 3.11 release, your server will automatically attempt to connect to any open WiFi network that it can find. We’ve also added two scripts in /root to let you restart either your wired or wireless network and designate it as the primary network: restart-eth0 and restart-wlan0. Time zone management was also a bit of mess with multiple file settings required to support both Linux and PHP. In the 3.11 release, you’ll be prompted to select your timezone when you first log in as root. The setup script will automatically apply your entry in all the right places. We’ve also replaced SendMail with Exim to simplify the process of using an SMTP mail gateway such as Gmail. The procedure for making the change is documented here.

As part of the 3.11 migration, we’ve also eliminated the pi user account. Everything you need to do to configure Incredible PBX requires root permission. So goodbye sudo. Only the root user account is included, and the default password is raspberry. Change the password when you first log in. New SSH and DUNDI keys now are automatically generated when you first boot your server. The FreePBX Backup and Restore Utility is included in this new build. AsteriDex Speed Dialing has been enhanced for our friends across the Atlantic. Enter 3-digit Dial Codes in AsteriDex, and you can call by dialing 000nnn. In the 3.11 upgrade, Telephone Reminders again work.

X Windows is included in this build. This won’t work with SSH. For a demo slideshow, plug in a real monitor and log in as root. In the /root folder, enter the command: startx. To end the slideshow, press ESCape. To disable the slideshow: mv .xinitrc xinitrc. To add photos, copy .jpg images into /root/slideshow. No mouse is required for the slideshow but, if you run X Windows natively, you’ll need a USB mouse. The SMS Blasting app in /root now supports phone numbers (which use SMS) and email addresses (which use SendMail).

Last but not least, a sophisticated Conference Bridge has been added to Incredible PBX 3.11. If you route one of your inbound DIDs to the predefined IVR, users can press 0 and enter 1234 for the conference PIN to join the conference. Local extensions simply dial C-O-N-F. We’ve already tested a 9-person conference call with excellent results. But don’t take our word for it. Try it for yourself. Just call our demo Raspberry Pi AutoAttendant and take the Conference Bridge and a handful of other Incredible PBX™ apps for a test drive:

And here’s what the conference call looked like in the FreePBX Dashboard:

So you don’t have to jump around between articles, we’ve put together this Quick Start Guide that tells you everything you need to know to get up and running in about an hour. Most of that time will be consumed copying the Incredible Pi image to an SD card. So there’s plenty of time for lunch during the hour. Once your system is running and you’ve completed the setup steps below, then jump over to the application tutorial which explains how to use every one of the 35+ Incredible PBX Apps for the $35 Raspberry Pi.

What to Buy. Here’s everything you need to get started.1 The case is optional. Yes, you can run the Raspberry Pi sitting on your desk with no case. It’s only 5 volts. WiFi is also optional. There’s a 10/100 port on the Raspberry Pi that gives you all the networking you need. Here are the links to buy the pieces. You also need a CAT5 cable and either a spare PC or Mac with Putty or SSH and a pair of earbuds or an HDMI cable to connect to a TV or monitor and a USB keyboard.

Setting Up Google Voice. If you want free calling in the U.S. and Canada, then you’ll need a Google Voice account, and you’ll need one dedicated to Incredible Pi, or it won’t work. Log out after setting up the new Google Voice account! Also note that Google Voice will cease to function on May 15, 2014. You can read all about it here.

  • Register for Google Voice account (no funky characters in your password!)
  • Enable Google Chat as Phone Destination
  • Configure Google Voice Calls Settings:
    • Call ScreeningOFF
    • Call PresentationOFF
    • Caller ID (In)Display Caller’s Number
    • Caller ID (Out)Don’t Change Anything
    • Do Not DisturbOFF
    • Call Options (Enable Recording)OFF
    • Global Spam FilteringON

  • Place test call in and out using GMail Call Phone

Baking Your Incredible Pi. The disk drive for the Raspberry Pi is an SD card. So what you need to do is download Incredible Pi and copy the image onto an SDHC card. Mac and Linux installers are included. For Windows, just use Win32 Disk Imager. Here are the steps:

  1. Download the Incredible Pi package
  2. Decompress the tarball: tar zxvf incrediblepi-version.tar.gz
  3. Copy .img file to SDHC using image utility or script
  4. Insert SDHC card into Raspberry Pi
  5. Boot the Raspberry Pi from Incredible Pi SDHC card

Your First Bite of Incredible Pi. If you’re not using a monitor and keyboard, you can use SSH to gain root access to Incredible Pi. And you can use any web browser on your private network to access your server. There are a couple of hurdles. First, you need the network address of your new server. And, second you need an SSH client. With Incredible PBX 3.3 and beyond, you needn’t worry about the IP address. You now can access your server via SSH by logging in like this: root@incrediblepbx.local. And browser access to your server is available at the following address: http://incrediblepbx.local. You still can plug in some earbuds when the bootup process begins and listen for the Incredible Pi to tell you its IP address when the boot procedure completes (about 90 seconds). Then you can use that IP address instead of incrediblepbx.local. The latest releases of Incredible PBX also include a Java-based SSH client in the FreePBX web GUI: Admin -> Java SSH. Because of the almost weekly security problems with Java, we strongly recommend using a standalone SSH client such as Putty.

Here’s everything you need to know about security for Incredible Pi:

1. ALWAYS RUN INCREDIBLE PI BEHIND A SECURE HARDWARE-BASED FIREWALL/ROUTER
2. NEVER EXPOSE ANY INCREDIBLE PI PORTS DIRECTLY TO THE INTERNET
3. NEVER MAP INBOUND INTERNET PORTS FROM YOUR FIREWALL TO INCREDIBLE PI

Initial Setup. There also are a few setup steps to complete once your Incredible Pi finishes the bootup process. When you first login (username: root  password: raspberry), you’ll be prompted to change your root password and to set your default time zone. If you’re using either a wired network or an open WiFi network, then everything just works. If you’re using secured WiFi, then you’ll need to plug in your credentials in /etc/wpa.conf and reboot. The wired network always takes precedence so unplug the cable if you want WiFi to be your primary network. /root/update-my-pi runs automatically when you log in as root. It will bring your server up to current specs. Finally, now’s the time to repartition your SD card if you’re using a card larger than 4GB (highly recommended!). While you’re at it, bump up the performance of your Raspberry Pi by 50% by setting the overclocking to turbo mode. It works great for us. YMMV! The key is a rock-solid power adapter such as the one we’ve recommended. Just run raspi-config and follow your nose.

Accessing Incredible Pi By GUI. You don’t have to be a Linux guru to use Incredible Pi. In fact, we’re just about finished with the Linux command prompt, but stay logged in until we finish the steps below. Most of your configuration of the PBX will be performed using the FreePBX® Web GUI.

If you’re new to Asterisk® and FreePBX, here’s the one paragraph primer on what needs to happen before you can make free calls with Google Voice. You’ll obviously need a free Google Voice account. This gets you a phone number for people to call you and a vehicle to place calls to plain old telephones throughout the U.S. and Canada at no cost. You’ll also need a softphone or SIP phone to actually place and receive calls. YATE makes a free softphone for PCs, Macs, and Linux machines so download your favorite and install it on your desktop. Phones connect to extensions in FreePBX to work with Incredible Pi. Extensions talk to trunks (like Google Voice) to make and receive calls. FreePBX uses outbound routes to direct outgoing calls from extensions to trunks, and FreePBX uses inbound routes to route incoming calls from trunks to extensions to make your phones ring. In a nutshell, that’s how a PBX works. There are lots of bells and whistles that you can explore down the road.

Let’s get started. Using a browser, enter the IP address of your server or just use incrediblepbx.local as the address. Choose FreePBX Administration. When prompted for a username and password, use admin for both. Here are the six steps you need to complete before making your first free call:

  1. Change FreePBX admin Password and Default Email
  2. Add Google Voice Account credentials
  3. Set Destination for Incoming Calls
  4. Change Extension 701 Passwords
  5. Eliminate Audio and DTMF Problems
  6. Install and Register a Softphone to Extension 701

1. Changing FreePBX admin Password and Default Email. From the main FreePBX GUI, click Admin => Administrators. Click on admin user in the far-right column. Enter a new Password and click Submit Changes button. Then click the Apply Config button. Next, set your default email address in the right margin of Admin -> Module Admin and save your entry.

2. Activating a Google Voice Trunk. To create a Trunk in FreePBX to handle calls to and from Google Voice, you’ll need three pieces of information from the Google Voice account you set up above: the 10-digit Google Voice phone number, your Google Voice account name, and your Google Voice password. Choose Connectivity -> Google Voice (Motif) from the FreePBX GUI. The following form will appear:

Fill in the blanks with your information and check only the top 2 boxes. If your Google Voice account name ends in @gmail.com, leave that out. Otherwise, include the full email address. Then click Submit Changes and Apply Config.

There’s one more step or your Google Voice account won’t work reliably with Incredible Pi! From the Linux command prompt while logged into your server as root, restart Asterisk: amportal restart

3. Setting a Destination for Incoming Calls. Now that you’ve created your Google Voice Trunk, we need to tell FreePBX how to process inbound calls when someone dials your Google Voice number. There are any number of choices. You could simply ring an extension. Or you could ring multiple extensions by first creating a Ring Group which is just a list of extension numbers. Or you could direct incoming calls to an Interactive Voice Response (IVR) system (we’ve actually set one up for you to play with).

By default, Incredible Pi is configured to route all incoming calls to a demo IVR that shows off some of the applications that come with Incredible Pi. You can change whenever you like by choosing Connectivity -> Inbound Routes -> Default. In the Set Destination section of the form, change the target to Extensions and then select 701 from the list. Then click Submit and Apply Config.

4. Changing Extension Passwords. From the main FreePBX GUI, choose Applications -> Extensions. Then click on 701 in the Extension List on the right side of your display. You’ll see a form that looks like this:

For now, we only need to make a few changes. First, you need a very secure password for both the extension itself and your voicemail account for this extension. The extension secret needs to be a combination of letters and numbers. The Voicemail Password needs to be all numbers, preferably six or more. Replace the existing 1234secret and 1234 with your own (very secure) entries. You also need to lock down this extension so that it is only accessible from devices on your private LAN. You do that with the deny and permit entries which currently are filled with zeroes. Leave the deny entry the way it is which tells Incredible Pi to block everybody except those allowed in the permit entry below. For the permit, we need the first three octets of your private LAN address, e.g. if your LAN is 192.168.0.something then the permit entry will be 192.168.0.0/255.255.255.0.

Finally, you need to plug in your actual email address in the Voicemail section so that voicemails can be delivered to you when someone leaves a message. You can also include a pager email address if you want a text message alert with incoming voicemails. If you want the voicemails to automatically be deleted from the server after they are emailed to you (a good idea considering the disk storage limitations of an SDHC card), change the Delete Voicemail option from No to Yes. That’s it. Now save your settings by clicking the Submit button. Then reload the dialplan by clicking on the red prompt when it appears.

In case you’re curious, unless you’ve chosen to automatically delete voicemails after emailing them, you can retrieve your voicemails by dialing *98701 from any extension on your phone system. You’ll be prompted to enter the voicemail password you set up. In addition to managing your voicemails, you’ll also be given the opportunity to either return the call to the number of the person that called or to transfer the voicemail to another extension’s voicemail box. And you can always leave a voicemail for someone by dialing their extension number preceded by an asterisk, e.g. *701 would let someone leave you a voicemail without actually calling you.

5. Eliminating Audio and DTMF Problems. You can avoid one-way audio on calls and touchtones that don’t work with these simple settings in FreePBX: Settings -> Asterisk SIP Settings. Just plug in your public IP address and your private IP subnet. Then set ULAW as the only Audio Codec.

6. Setting Up a Desktop Softphone. Incredible Pi supports all kinds of telephones, but we’ll start with the easy (free) one today. You can move on to “real phones” once you’re smitten with the VoIP bug. For today, you’ll need to download a softphone to your desktop PC or Mac.

As we mentioned, the easiest way to get started with Incredible Pi is to set up a YATE softphone on your Desktop computer. Versions are available at no cost for Macs, PCs, and Linux machines. Just download the appropriate one and install it from this link. Once installed, it’s a simple matter to plug in your extension 701 credentials and start making calls. Run the application and choose Settings -> Accounts and click the New button. Fill in the blanks using the IP address of Incredible Pi, 701 for your account name, and whatever password you created for the extension. Click OK.

Once you are registered to extension 701, close the Account window. Then click on YATE’s Telephony Tab and place your first call. It’s that easy!

Monitoring Call Progress with Asterisk. That about covers the basics. We’ll leave you with a tip on how to monitor what’s happening with your PBX. There are several good tools within the FreePBX GUI. You’ll find them under the Reports tab. In addition, Asterisk has its own Command Line Interface (CLI) that is accessible from the Linux command prompt. Just execute the following command while logged in as root: asterisk -rvvvvvvvvvv.

Activating SAMBA for Windows Networking. SAMBA is included for transparent access using the Windows Networking Protocol from PCs, Macs, and other Linux machines. As delivered, SAMBA is deactivated. For obvious reasons, we recommend you never activate root login access to SAMBA without a very secure password. If you wish to enable SAMBA on your server, here are the steps while logged in as root:

  • 1. Set SAMBA password for user root: smbpasswd -a root
  • 2. Change Windows workgroup from WORKGROUP, if needed: nano -w /etc/samba/smb.conf
  • 3. Manually start SAMBA from command prompt: service samba start
  • 4. If desired, set SAMBA to start on boot: rcconf and activate SAMBA option

Activating the PPTP VPN Client. If you’ve followed the Nerd Vittles tutorial and previously set up a PPTP VPN Server for your devices, then it’s pretty simple to add Incredible Pi to the mix by activating its PPTP VPN client. You’ll need the FQDN or public IP address of your VPN server as well as a username and password for VPN access to your VPN server. Once you have those in hand, log into Incredible Pi as root.

Lest we forget to mention, you cannot log into your PPTP server from an IP address on the same private LAN so you’d only use the PPTP VPN when your Incredible Pi is at a remote location.

Edit the connection template: nano -w /etc/ppp/peers/my-pptp-server. Insert the following text and replace myfqdn.org with the FQDN of your PPTP server, replace myname with your PPTP username, and replace mypassword with your PPTP password. Then save the file: Ctrl-X, Y, then Enter.

To test it, issue the following command: /etc/init.d/pptp start. When you run ifconfig, you should now see a ppp0 entry:

ppp0 Link encap:Point-to-Point Protocol
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Remember, it won’t show an IP address if the Raspberry Pi and your PPTP VPN Server are on the same subnet (like ours). Once you install your Raspberry Pi in a remote location, you now can access it at the first IP address in your reserved PPTP IP address pool.

To permanently activate the PPTP VPN client on your Incredible Pi server, run rcconf. Scroll to the bottom of the list and highlight pptp. Press the space bar to select it for automatic startup when you boot your server. Then tab to OK and press Enter.

Activating Incredible Fax. With a 512MB Raspberry Pi, here are the 5 Simple Steps to activate Incredible Fax. The original tutorial is available here.

  1. Download and Install Incredible PBX 3.11
  2. Run the /root/fax-enable Script to Automatically Configure HylaFax
  3. Using FreePBX, Add Additional, Dedicated DID and Inbound Route to Handle Incoming Faxes
  4. Install Any Desktop HylaFax Client to Send Faxes via Print-to-Fax using any PDF
  5. Reboot Your Server and Enjoy

Incredible Trunks. When you’re ready to try some other SIP providers, here is a quick Cheat Sheet courtesy of Kristian Hare, who translated our original setups into a spreadsheet. Just click on the image below to open it in a new window. Then click on the redisplayed image to enlarge it.

Configuring CallerID Superfecta. In order to match names with phone numbers, Incredible PBX includes a FreePBX application named CallerID Superfecta. Out of the box, Incredible PBX 3.11 will work fine if you remember to activate CallerID Superfecta whenever you create a new Inbound Route. The CNAM entries also will be displayed in your CDR reports. For those not in the United States, you may prefer to use a lookup source for your numbers other than the ones preconfigured in CallerID Superfecta. You will find all of the available modules on the POSSA GitHub site. Just download the ones desired into /var/www/html/admin/superfecta/sources and then activate the desired sources in Admin -> CID Superfecta -> Default. You can test your results and the performance using the Debug facility that’s built into the module.

Shutting Down Your Server. Last but not least, never just pull the plug when you want to shut down your server, or you may end up with corrupted MySQL databases. Then nothing will run. Instead, log into your server as root, and issue the following command: shutdown -h now. Enjoy!

Where To Go Next. Once you’ve done a little exploring, take a few minutes to read the complete tutorial on all 35 Incredible PBX applications for Raspberry Pi. A few require a bit of configuration before you start using them. And then you’ll want to explore Interconnecting Asterisk Servers with Incredible PBX and the Raspberry Pi. Enjoy!


Don’t forget to List Yourself in Directory Assistance so everyone can find you by dialing 411. And add your new number to the Do Not Call Registry to block telemarketing calls. Or just call 888-382-1222 from your new number.

Originally published: Monday, December 2, 2013


Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a terrible place to handle support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forums. It’s the best Asterisk tech support site in the business, and it’s all free! Please have a look and post your support questions there. Unlike some forums, ours is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of ordinary users just like you. You won’t have to wait long for an answer to your question.



Need help with Asterisk? Visit the PBX in a Flash Forum.


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


Some Recent Nerd Vittles Articles of Interest…

  1. Many of our purchase links refer users to Amazon when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from Amazon to help cover the costs of our blog. We never recommend particular products solely to generate Amazon commissions. However, when pricing is comparable or availability is favorable, we support Amazon because Amazon supports us. []

The 5-Minute PBX: PIAF-Green Virtual Machine for Windows, Mac, or Linux

In our never-ending trek to build the Perfect PBX™, we have a sneak peek for you today of the soon-to-be-released PBX in a Flash™ 2.0.6.4.5 featuring CentOS® 6.4 LAMP stack (32-bit), Asterisk® 11.5.1, and FreePBX® 2.11.0.11. The 2.0.6.4.5 release also has a number of new security patches including a new Linux kernel that’s been patched to eliminate the reported zero-day vulnerability. Once you download today’s appliance, you can have a turnkey PBX running under VirtualBox® on almost any desktop computer in less than 5 minutes. We’re not talking about a crippled telephony platform with limited functionality. What you’ll have is the same platform that hundreds of thousands of organizations use to run their corporate phone systems. And, if you want the Incredible PBX™ feature set with literally dozens of open source telephony applications including news, weather, stocks, tide reports, SMS messaging, free faxing with Incredible Fax™, telephone reminders, wakeup calls, and more then just add a couple minutes to run two one-click installers. Welcome to the world of open source!

The real beauty of PBX in a Flash has not been that someone with sufficient expertise couldn’t assemble something just as good or even better. Watch some of the AstriCon presentations if you have any doubts. The beauty of PIAF is it puts this technology down where the goats can get it. It provides a toolset that encourages further development by simplifying the learning curve for a broad cross-section of the VoIP community while not compromising functionality or flexibility. The source code for the major components is included in the build so you can customize and recompile Asterisk or load a new version of Asterisk or any additional Linux app in minutes without losing your existing setup.

If Voice Over IP technology is Greek to you, here’s a new 60-minute video tutorial that will tell you everything you need to know about this exciting, new technology before you begin the actual installation process:


As many of you know, we have literally hundreds of gurus on the PIAF Forum. That doesn’t mean any particular person or group knows everything. It’s merely a designation that a particular individual is an expert at something. The collective wisdom of the group is what makes PBX in a Flash as a project better because we’ve put in place a platform that experts from many different disciplines can build upon without needing to learn everything about everything. Simply stated, you can be a terrific chef without knowing how to build a stove!

Turning to Asterisk® 11 and FreePBX® 2.11, these releases are a remarkable step forward both in terms of toolset and in the amazing stability of the platform. For our part, we want to get our latest release of PBX in a Flash with CentOS 6.4, Asterisk 11.5.1 and FreePBX 2.11 release into as many hands as possible with a near zero investment in hardware and setup time.

The Ultimate VoIP Appliance: PIAF Virtual Machine for VirtualBox

Today brings us to a new plateau in the virtual machine development era. Thanks to the masterful work of Tom King on PBX in a Flash 2.0.6.4.5, we’re pleased to introduce a new product that can be installed in under 5 minutes and will run on any Windows PC, Mac, or Linux machine as well as Solaris. And, unlike the dedicated machine platforms and OpenVZ compromises of years past, today’s PIAF-Green Virtual Machine is state-of-the-art giving you everything a bare metal install from source code would have provided. Most importantly, the components are truly portable. They can be copied to a 4GB flash drive1 for the price of a good hamburger and installed from there onto any type of machine that happens to be in front of you. Five minutes later, you have a fully functional Asterisk server with FreePBX and exactly the same feature set and source code that you would have had doing a bare metal PIAF install to a dedicated server. And we’ve built this 32-bit production-ready PIAF-Green Virtual Machine with Asterisk 11.5.1 and FreePBX 2.11. No Internet access required to perform the install. Sound too good to be true? Keep reading or, better yet, try the PIAF appliance for yourself. The install process is simple:

  1. Download and install VirtualBox onto a Desktop Machine of your choice
  2. Download and double-click on the PIAF-Green Virtual Machine to import it into VirtualBox
  3. Select the PIAF-Green Virtual Machine in VirtualBox Manager Window and click the Start button

Introducing Oracle VM VirtualBox

We’re late to the party, but Virtual Box®, Oracle’s virtual machine platform inherited from Sun, is really something. It’s not only free, but it’s pure GPL2 code. VirtualBox gives you a virtual machine platform that runs on top of any desktop operating system. In terms of limitations, we haven’t found any. We even tested this on an Atom-based Windows 7 machine with 2GB of RAM, and it worked without a hiccup. So step #1 is to download one or more of the VirtualBox installers from VirtualBox.org or Oracle.com. As mentioned, our recommendation is to put all of the 100MB installers on a 4GB thumb drive. Then you’ll have everything in one place whenever and wherever you happen to need it. Once you’ve downloaded the software, simply install it onto your favorite desktop machine. Accept all of the default settings, and you’ll be good to go. For more details, here’s a link to the Oracle VM VirtualBox User Manual.

Installing the PIAF Virtual Machine

Step #1 is to download the PIAF-Green Open Virtualization Appliance (.ova) from SourceForge.

Step #2: Verify the checksums for the 32-bit .ova appliance to be sure everything got downloaded properly. To check the MD5/SHA1 checksums in Windows, download and run Microsoft’s File Checksum Integrity Verifier.

For Mac or Linux desktops, open a Terminal window, change to the directory in which you downloaded the .ova file of your choice, and type the following commands:

md5 PIAF-Green-32.ova (use md5sum for Linux)
openssl sha1 PIAF-Green-32.ova

The correct MD5 checksum for PIAF-Green-32.ova is 7691127afd065412e40429cee49a4738. The correct SHA1 checksum for PIAF-Green-32 is 9b3828649dc9644d046ef83cb227aea4c1473c65.

Step #3: Double-click on the downloaded .ova file which will begin the import process into VirtualBox. It only takes a couple minutes, and you only do it once. IMPORTANT: Be sure to check the Reinitialize the Mac address of all network cards box before clicking the Import button.

Once the import is finished, you’ll see a new PIAF virtual machine in the VM List of your VirtualBox Manager Window. You’ll need to make a couple of one-time adjustments to the PIAF-Green Virtual Machine configuration to account for differences in sound and network cards on different host machines.

Click on the PIAF-Green Virtual Machine in the VM List. Then click Settings -> Audio and check the Enable Audio option and choose your sound card. Save your setup by clicking the OK button. Next click Settings -> Network. For Adapter 1, check the Enable Network Adapter option. From the Attached to pull-down menu, choose Bridged Adapter. Then select your network card from the Name list. Then click OK. That’s all the configuration that is ever necessary for your PIAF-Green Virtual Machine. The rest is automagic.

Running the PIAF Virtual Machine in VirtualBox

Once you’ve imported and configured the PIAF Virtual Machine, you’re ready to go. Highlight PIAF Virtual Machine in the VM List on the VirtualBox Manager Window and click the Start button. The PIAF boot procedure with CentOS 6.4 will begin just as if you had installed PBX in a Flash on a standalone machine. You’ll see a couple of dialogue boxes pop up that explain the keystrokes to move back and forth between your host operating system desktop and your PIAF VM.

Here’s what you need to know. To work in the PIAF Virtual Machine, just left-click your mouse while it is positioned inside the VM window. To return to your host operating system desktop, press the right Option key on Windows machines or the left Command key on any Mac. For other operating systems, read the dialogue boxes for instructions on moving around. Always shut down PIAF gracefully! Click in the VM window with your mouse, log in as root, and type: shutdown -h now.

Run the PIAF Virtual Machine behind a hardware-based firewall with no Internet port exposure!

To begin, position your mouse over the VM window and left-click. Once the PIAF VM has booted, log in as root with password as the password. Change your root password immediately by typing passwd at the command prompt. Now set up a secure maint password for FreePBX as well. Type passwd-master. If you’re not in the Eastern U.S. time zone, then you’ll want to adjust your timezone setting so that reminders and other time-sensitive events happen at the correct time. While logged into your server as root, issue this command:

/root/timezone-setup

Next, use a browser to log into your PIAF server by pointing to the IP address of the PIAF VM that’s displayed in the status window of the CLI. Click on the User button to display the Admin choices in the main PIAF Menu. Click on the FreePBX option to load the FreePBX GUI. You will be prompted for an Apache username and password. For the username, use maint. For the password, use whatever password you set up with passwd-master.

Now read the latest PIAF Quick Start Guide and begin your VoIP adventure. Then you’ll want to do some reading on VirtualBox. We’ve barely scratched the surface. Setting up Headless VMs that run in the background on any server is a breeze. From the command line, here’s an article to get you started. But you also can start Headless VMs from within the GUI by highlighting the VM and clicking Shift->Start. Always shut down VMs gracefully: Close->ACPI Shutdown. You’ll find more great tips at virtualbox.org and GitHub.

One of the real beauties of VirtualBox is you don’t have to use a GUI at all. The entire process can be driven from the command line. Other than on a Mac, here is the procedure to import, configure, and run the PIAF-Green-32 Virtual Machine:
 
VBoxManage import PIAF-Purple.ova
VBoxManage modifyvm "PIAF-Green-32" --nic1 nat
VBoxManage modifyvm "PIAF-Green-32" --acpi on --nic1 bridged
VBoxHeadless --startvm "PIAF-Green-32" &
# Wait 1 minute for PIAF-Green to load. Then decipher IP address like this:
VBoxManage guestproperty get "PIAF-Green-32" /VirtualBox/GuestInfo/Net/0/V4/IP
# Now you can use SSH to login to PIAF-Green at the displayed IP address
# Shutdown the PIAF-Green Virtual Machine with the following command:
VBoxManage controlvm "PIAF-Green-32" acpipowerbutton

On a Mac, everything works the same way except for deciphering the IP address. Download our findip script for that.

Adding Incredible PBX 11 and Incredible Fax

You can read all about the Incredible PBX 11 and Incredible Fax feature set in our recent Nerd Vittles article. If you decide you’d like to add one or both to your PIAF-Green Virtual Machine, just log into your server as root and issue the following commands. NOTE: You must install Incredible Fax after installing Incredible PBX, or you will lose the ability to install Incredible PBX at a later time. With Incredible Fax, there are a number of prompts during the install. With the exception of the prompt asking for your local area code, just press Enter at every other prompt.

cd /root
wget http://incrediblepbx.com/incrediblepbx11.gz
gunzip incrediblepbx11.gz
chmod +x incrediblepbx11
./incrediblepbx11
./incrediblefax11.sh

The Incredible PBX 11 Inventory. For those that have never heard of The Incredible PBX, here’s the current 11.0 feature set in addition to the base install of PBX in a Flash with the CentOS 6.4, Asterisk 11, FreePBX 2.11, and Apache, SendMail, MySQL, PHP, phpMyAdmin, IPtables Linux firewall, Fail2Ban, and WebMin. Incredible Fax, NeoRouter and PPTP VPNs, and all sorts of backup solutions are still just one command away and may be installed using the scripts included with Incredible PBX 11 and PBX in a Flash. Type help-pbx and browse /root for dozens of one-click install scripts.

Originally published: Tuesday, October 22, 2013




Need help with Asterisk? Visit the PBX in a Flash Forum.


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


Some Recent Nerd Vittles Articles of Interest…

  1. Many of our purchase links refer users to Amazon when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from Amazon to help cover the costs of our blog. We never recommend particular products solely to generate Amazon commissions. However, when pricing is comparable or availability is favorable, we support Amazon because Amazon supports us. []

Finally a 100% Portable PBX: Introducing GoIP, a SIP-GSM Gateway for Asterisk

How far we have come! The original Asterisk® claim to fame was its ability to interface with proprietary phone systems and legacy telephony hardware, the glue that literally kept companies stuck to their overpriced PBXs. And, just as wired phone systems began to lose their edge, along came the Bell Sisters to introduce cellular communications with billing that began when the phone started ringing and an end to toll-free calling and extra fees for text messaging on top of exorbitantly priced data service. The piece that traditionally has been missing from Asterisk deployments has been interconnectivity with cellular data services. Well, that was then, and this is now. Meet the GoIP GSM Gateway in one, four, eight, and 16-channel flavors to meet your every need. Our focus today will be the one-channel GoIP device, but the larger units work almost identically so, once you’ve mastered the device, it’s not rocket science to move to the 4-channel or 8-channel device (or even larger) if the extra GSM ports better meet your office’s requirements.1

Let’s begin with the basics. What does it do? What does it cost? Why do I need it? How steep is the learning curve?

What Does It Do? In a nutshell, GoIP is a SIP-talkin’ GSM gateway that sits on the same network as your Asterisk server. Once you configure a trunk and a few special Asterisk settings to support SMS messaging, you’ll have another full-featured provider for your PBX, only this one happens to be GSM cellular-based. The good news is GoIP brings to your PBX most of the same feature set that is available using your favorite GSM cellphone except now every extension on your PBX in a Flash™ server can share the cellular connection both for calls and messaging. That means inbound and outbound cell calls as well as inbound and outbound SMS messaging for every extension on your PBX.

With today’s Nerd Vittles additions, here’s the new feature set using a GoIP device from any extension on your PBX:

  1. Make outbound calls through the GoIP cellular trunk from any PBX extension
  2. Receive incoming cellular calls and redirect them to any number on your PBX
  3. Dictate text by phone and deliver SMS messages to any SMS-capable device
  4. Use a browser to create and deliver outbound SMS messages to any SMS device
  5. Receive incoming SMS messages and forward the messages to any email address
  6. Receive incoming SMS messages and forward the messages to any SMS number
  7. Send an SMS message with a password and receive a callback with DISA dialtone

What Does It Cost? As much as we love Amazon for its referral revenue support of our blog and open source projects, we couldn’t find a single-channel GoIP offering at a reasonable price. The Amazon links provided above for the larger units are competitive (about $100 per port). For the single-channel model, eBay® is your friend. You’ll find multiple providers in the $150 price range. All of the units we’ve found ship from China. We used this provider who got the GoIP device to us exactly 14 days after we ordered it. Ours shipped with the latest firmware, but firmware updates are available here. AliExpress also sells the devices for about the same price. We’ve had good luck with them in the past.

The other expense with the GoIP devices is cellular service. For each channel, you’ll need a GSM SIM card just like what your GSM, AT&T, or T-Mobile cell phone uses. The good news is there are lots of other choices now. See WalMart for some options. Another option for low frequency use would be T-Mobile’s pay-by-the day plans. The $1 (unlimited SMS messaging) or $2/day (unlimited calls and unlimited SMS messaging) plans are almost perfect since you don’t need data. Just be sure to choose a GSM carrier, AT&T or T-Mobile in the U.S. market. Both are supported by StraightTalk. Our favorite remains the (almost) unlimited calling, text, and data $45 plan from StraightTalk. With their AT&T-compatible SIM (don’t buy it in a StraightTalk-locked phone!), it’s a simple matter of moving the SIM card from your cellphone to the GoIP’s GSM slot (connectors facing down). The GoIP unit can spoof an IMEI for picky providers.

Why Do I Need It? The two major advantages of adding a cellular trunk to your PBX are redundancy and portability. Except in the Hurricane Katrina situation, chances are that your Internet service provider and your cellular provider won’t both be dead in the water2 at the same time. The good news is that even with a hurricane, you can pack up your PBX in a Flash server or Raspberry Pi together with your GoIP device and move to higher ground. As fast as you can say “George Bush is a compassionate conservative,” you’ll be back in business.

And then there are the mobile users such as construction site workers, mobile firefighters deployed to a site far from home and other first responders, or even the nomads that manage conventions in a different town every week. Think AstriCon! Rather than relying on crappy hotel WiFi service or paying an arm and a leg for installation of cable or DSL Internet service which often isn’t available anyway, now you have the flexibility to deploy a full-featured PBX at almost any temporary site with nothing more than a $30 Wi-Fi firewall/router, a PBX in a Flash Server or Raspberry Pi, and a GSM SIP trunk courtesy of GoIP. The only other ingredient you need is a little electricity. That could be a wall outlet, or a generator, or an inexpensive AC inverter for your vehicle. Did we mention it’ll work identically on the next site without spending an extra nickel. Hardware cost for the Mobile Communications Center (as shown below): about $250.

Last but not least are all of the organizations that could benefit from an SMS-based emergency messaging service. A dollar a day is a small price to pay to deploy a service that can alert the public, employees, or parents and students of emergency situations. Before you read about the next mass shooting or midnight tornado, give it some thought. We’ve already introduced SMS Blaster to make the job easy. Or you can roll your own by building a simple text file in /tmp/callees.txt with a 10-digit3 callee’s phone number on each line. Then add the following snippet to your Asterisk dialplan code and put your emergency message in line 2. You’ve just replaced a $100 a month message blasting service with a totally portable, self-managed solution. And you’ll recover your hardware costs in less than three months.


[goip-sms-blaster]
exten => s,1,Answer
exten => s,n,Set(SMSMSG="Here is where your emergency message goes.")
exten => s,n,ReadFile(callees=/tmp/callees.txt)
exten => s,n,Set(callees=${URIENCODE(${callees})})
exten => s,n,Set(callees=${REPLACE(callees,%0A,-)})
exten => s,n,Set(SMSNUM=${callees:0:10})
exten => s,n,While($[${LEN(${SMSNUM})}>9])
exten => s,n,NoOp(Here's where we send SMS message to: ${SMSNUM})
exten => s,n,Set(SMSOUT=${SMSNUM}%0A${SMSMSG})
exten => s,n,Set(SMSOUTRAW=${URIDECODE(${SMSOUT})})
exten => s,n,Set(MESSAGE(body)=${SMSOUTRAW})
exten => s,n,MessageSend(sip:goip_1)
exten => s,n,Set(callees=${callees:13})
exten => s,n,Set(SMSNUM=${callees:0:10})
exten => s,n,Set(SMSNUM=${REPLACE(SMSNUM,-,0)})
exten => s,n,EndWhile()
exten => s,n,Hangup()

How Steep Is the Learning Curve? Lucky for you, you’re not going to have to worry about the learning curve. After all, that’s why you come to Nerd Vittles, isn’t it? We’ve spent the better part of a week getting the GoIP to sit up and bark. If you’re a slow typist, it might take you 10 minutes to get everything set up and functional once you have your GoIP device and SIM card in hand. When we’re finished, you’ll have an easy way to make and receive calls through your GoIP device using any extension on your PBX. And you’ll have a simple utility to send and receive SMS messages. In fact, you’ll be able to dictate your SMS messages from any phone connected to your PBX and send them out to any number supported by SMS including the millions of Google Voice numbers. Last but not least, we’ll provide a utility to send password-protected SMS messages to GoIP and receive a return call with DISA dial tone to make outbound calls using any available trunks on your PBX.

A Word About Security. We’re a little paranoid when it comes to security so bear with us. Without impugning anyone’s integrity, suffice it to say this device is manufactured in China. Although the device reportedly runs Linux, none of its other firmware is open source, at least not that we could find. There also are three back doors into the system which can be triggered by SMS commands to the device itself. These are well documented in the GoIP User’s Manual. Whether there are other backdoors or whether the device “phones home” are questions we have neither the time nor the money to explore. Unless you do, you are well advised to treat the device in the same way you would treat a new employee on their first day at work. Don’t put the device on a private LAN in which other computers or devices on the LAN are not protected. Don’t use a SIM card with an automatic renewal feature or with authority to post charges against your credit or debit card. Change your Admin password to the device immediately. Don’t use a password you use elsewhere! Anyone can reset the device to factory defaults by knowing the default credentials and sending RESET admin in an SMS message to the device. We love the device, but be careful.

Initial Setup of the GoIP Device

To begin, you’ll need cellphone coverage in the place where you intend to connect your GoIP device. Verify this while the SIM card you plan to use is still installed in a working cellphone. Make a call and send an SMS message to verify that the site is appropriate. Next, verify that you have a place to connect your GoIP device to your LAN in the same location. Both of these are important first steps, or you’ll be wasting your time continuing on. Once the connectivity issues are out of the way, turn off your cell phone, remove the GSM SIM card, and insert it into the GoIP device with the connectors pointing downward. You should hear a click when the SIM card is properly seated. Now connect the device behind a hardware-based firewall/router that provides DHCP service. Plug an Ethernet cable into the LAN port of the GoIP device and connect it to your network. Finally, using the power adapter provided, apply power to the device. Watch the blinking lights. While booting the RUN light will flash on and off every 100 milliseconds. Once the RUN and CHANNEL lights flash GREEN once per second, you’re in business. Now use another cellphone to send a text message with the word INFO to the phone number associated with the SIM card you plugged into the GoIP Device. You should receive a return message telling you the DHCP LAN address associated with the GoIP CHANNEL port where you plugged in the SIM card. Write it down! We’re not going to use the PC port so you can ignore its IP address for now.

Asterisk Prerequisites for Today’s GoIP Project

We’ll be using PIAF-Green with Asterisk 11 and FreePBX 2.11 today so you’ll have to read between the lines if you’re using a prehistoric release or a non-FreePBX system. We’re also assuming you’ve installed Incredible PBX™ 11 which provides the necessary components to get Google’s text-to-speech and speech-to-text features working. If you’d prefer to roll your own, then start by installing Lefteris Zafiris’ GoogleTTS and Speech Recognition components for Asterisk. For PBX in a Flash users that aren’t using Incredible PBX, you can follow this tutorial to install all of the necessary components in one click.

Initial Setup of FreePBX for the GoIP Device

We’ve found that it’s easier to configure the FreePBX® side to support the GoIP, and then configure the GoIP unit. There are seven simple steps. If you don’t want SMS DISA callback support in your setup, skip the last two steps.

  1. Add GoIP SIP Trunk
  2. Add Custom SIP Settings
  3. Add GoIP Outbound Route
  4. Add GoIP Custom Destination
  5. Add GoIP Misc Application
  6. Add GoIP DISA Context
  7. Add GoIP DISA Misc Application

1. Start by adding a new SIP Trunk to support the GoIP device. Be sure to match the device names we’ve shown exactly, or nothing will work. Our special thanks to samyantoun for his initial work on this. Replace 192.168.0.107 with the IP address of your GoIP. Replace 77 with whatever dialing prefix you want to use to make calls through the GoIP trunk. And add the phone number associated with your GoIP in the Outbound CallerID field. If you’re using the GoIP device behind a hardware-based firewall with no Internet port exposure, then you can leave password as the secret. Otherwise, you would want something very secure!4

2. Add a couple of custom SIP entries at the bottom of Asterisk SIP Settings to support SMS messaging with Asterisk. Set accept_outofcall_messages=yes and outofcall_message_context=sms_message. Then Submit Changes.

3. Add an Outbound Route to make calls using your GoIP device using the dial prefix you chose for the trunk:

4. Next we need to add a FreePBX Custom Destination to support the Nerd Vittles speech-to-text module which we’ll be using to dictate and send SMS messages using any telephone on your PBX. Under Admin -> Custom Destination, add an entry that looks like this:

5. Then we need to associate an extension number with the custom destination we just added. We’ve chosen 4647 which spells GoIP. Choose Applications -> Misc Application and enter the following:

6. DISA is an Asterisk function that lets someone call into your PBX and obtain dial tone to place an outbound call using the available trunks on your PBX. In the case of the GoIP device, this gets a little fancier. We’ll actually be sending an SMS message with a custom password to the GoIP device, and it will in turn call the SMS sender’s number and provide DISA dialtone after the user enters a special DISA PIN. Make the PIN and password very secure. We’ll get to the password in a minute. On the FreePBX side, add a DISA context in FreePBX under Applications -> DISA that looks something like the following with a secure PIN (not the one in the example):

7. In order to use DISA with GoIP, we’ll need an extension associated with the DISA function. We add this number using FreePBX Misc Application. You can use any available extension number you like. Just remember what you chose when we configure the GoIP side to support SMS DISA access. Here’s what we use:

Configuration of the GoIP Device

All of the GoIP device configuration is handled using a browser pointed to the internal IP address of the GoIP. If you haven’t already done so, send an SMS message with the word INFO to the phone number associated with your GoIP device. You will get a return message with the private IP address of the unit. Using a browser, point it to the IP address and login with username admin and password admin. It’s probably a good idea to reset your unit to factory defaults before beginning the setup just to make sure you’re starting with a clean slate. Send an SMS message to the device with the words RESET admin to initialize the hardware.

As we’ve mentioned, sending the admin password to the device with the RESET keyword forces a total reset of the device so you obviously want to change this admin password immediately unless you want to risk a total stranger sending a reset command to your device. Do it now under Tools -> Change Password -> Administration Level. It’s probably a good idea to change the other passwords as well.

Next, click Configurations. This is the screen on which you set everything. The Preference pane has the country-specific settings for both the network and your cellphone carrier so set them carefully. The IMEI will default to the actual IMEI of your unit. If your cellphone carrier requires registration of a specific IMEI before your SIM card will work, then you can spoof the IMEI using the IMEI of the cell phone that was previously used with this SIM card. For the East Coast of the United States, our setup looks like this:

If you’re using DHCP for the GoIP, the Network Configuration pane shouldn’t require any changes. We do recommend that you lock the DHCP address to the GoIP in your router so that it doesn’t inadvertently change down the road. You will note that a PPTP VPN tunnel for the device is supported although we haven’t yet played with it.

The Call Settings pane has all of your SIP settings for the GoIP. These have got to be right or nothing will work. Our setup (that works) is shown below. Start by clicking on each of the Settings and Preferences links to open up the sub-menus. Both 192.168.0.180 entries should be replaced with the IP address of your Asterisk server. The Phone Number and Authentication ID both need to be goip_1 as shown. The password is password unless you changed your secret in the FreePBX trunk setup. DTMF Signaling should be changed to Outband and DTMF Type should be RFC2833. Ours still doesn’t work reliably, but that may be the lousy cellphone signal in our office. We recommend ULAW and ALAW exclusively for the Audio Codecs. You don’t want the overhead of codec translation particularly if you’re using a Raspberry Pi. On a normal server, G.729 would obviously reduce the bandwidth of GoIP voice calls. Get it working first and then experiment! The RTP port range should be 10000-20000 to match your Asterisk default setup.

The Call Divert pane is where we configure all of the Nerd Vittles magic. Forward Number(PSTN To VoIP) should be the number on your PBX to which you want inbound GoIP calls forwarded when someone calls the cellphone number associated with your GoIP device. This could be an extension, ring group, IVR, or even the DISA number we set up above. Just be sure you have a verrrrrry secure DISA PIN if you go this route! It’s your phone bill. The SMS Mode must be changed to Relay, and SMS Forward SIP Number must be s to work with the Nerd Vittles apps.

Once you have all of your settings entered, click the Save Settings link under Configurations. The unit will reload its SIP setup. It usually takes about 30 seconds. We recommend you now test the setup to make sure you can make a call to the GoIP number and have it forwarded to an extension on your Asterisk server. Then use an extension on your PBX to place an outbound call using the GoIP dial prefix you assigned above. If either call fails, check your settings for typos in both the FreePBX and GoIP configurations.

Adding the Nerd Vittles Apps to Support the GoIP Device

Now for the fun stuff. We’ve built a little shell script that sets up all of the Nerd Vittles applications we outlined above. It’s licensed as GPL2 code so you are more than welcome to make any changes or additions which you believe would be useful. We hope you’ll share them with the rest of us. The script puts everything in the proper place on Incredible PBX systems to support SMS messaging with Asterisk. You’ll be prompted for the following information:

  1. Email address to which to forward incoming SMS messages
  2. SMS number to which to forward incoming SMS messages
  3. Very secure password to trigger PBX callbacks
  4. Extension number to ring on callbacks

1. When incoming SMS messages are received by the GoIP unit, Asterisk will forward them to this email address.

2. When incoming SMS messages are received by the GoIP unit, Asterisk will forward them to this SMS number. You can disable either the forwarding email address or the forwarding SMS number (not both!) by editing the [sms_message] context in extensions_custom.conf and commenting out either of these lines with a semicolon:

exten => s,n,system(echo "SMS Message From ${SMSDID}: ${SMSMSG}"...

exten => s,n,MessageSend(sip:goip_1)

3. This password is what must be sent as an SMS message to the GoIP device to trigger a return call from Asterisk. Do NOT include any spaces in the password and make it very secure!

4. This is the extension number that will be used to place the return call from Asterisk. For DISA service, it would be 3172 in today’s setup. It could also be a regular extension on your PBX if you simply want to trigger a return call from your home or office extension when you send this password via SMS to the GoIP device. Note that the home or office extension must answer the call before the return call will be placed to your SMS device or phone.

Installation. To install the components (a one-minute job!), log into your server as root and issue the following commands:

cd /root
rm GoIP-install.sh
wget http://incrediblepbx.com/GoIP-install.sh
chmod +x GoIP-install.sh
./GoIP-install.sh

If you ever need to make changes to your setup, just run the script again and answer the prompts.

Kicking the Tires. To make sure everything is working, try sending an SMS message to the GoIP with your secret password from #3 above. You should get a return call within 30 seconds. Next, from an extension on your PBX, dial 4647. Dictate a brief message and then enter a phone number for delivery of the message via GoIP to some SMS device (not your GoIP unit!). Finally, send a “Hello World” SMS message to your GoIP device. It should be forwarded to both your email address (#1) and SMS number (#2) within a few seconds. Enjoy!

Deals of the Week. There’s still an amazing deal on the street if you hurry. A new company called Copy.com is offering 20GB of free cloud storage with no restrictions on file size uploads (which are all too common with other free offers). Copy.com has free sync apps for Windows, Macs, and Linux systems. To take advantage of the offer, just click on our referral link here. We get 5GB of extra storage, too, which will help avoid another PIAF Forum disaster.

Originally published: Monday, September 30, 2013




Need help with Asterisk? Visit the PBX in a Flash Forum.


 

We are pleased to once again be able to offer Nerd Vittles’ readers a 20% discount on registration to attend this year’s 10th Anniversary AstriCon in Atlanta. And, if you hurry, you also can take advantage of the early bird registration discount. Here’s the Nerd Vittles Discount Code: AC13NERD.


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


Some Recent Nerd Vittles Articles of Interest…

  1. Some of our purchase links refer users to Amazon when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from Amazon to help cover the costs of our blog. We never recommend particular products solely to generate Amazon commissions. However, when pricing is comparable or availability is favorable, we support Amazon because Amazon supports us. []
  2. With apologies for the tasteless photo and pun. []
  3. The length of the phone numbers obviously can be adjusted to meet your local requirements. Just replace the 10′s with the length of the phone numbers you wish to use. Then replace 13 with 3 more than the phone number length you chose. []
  4. We have engineered today’s GoIP solution for users in the U.S. and Canada. It obviously will support international deployment as well by making adjustments to the dial strings and cellphone settings in both the FreePBX and GoIP configurations. []

Ringbinder theme by Themocracy