Home » Posts tagged 'asterisk' (Page 65)

Tag Archives: asterisk

The Most Versatile VoIP Provider: FREE PORTING

Free Asterisk Calls to Zillions of Phones with ENUM and Gizmo5’s Backdoor Dialing

blank It’s been a while since there’s been much to cheer about in the free calls department with Asterisk®. But today, to kick off the new school year, we have lots of good news and some simple tricks to add zillions of free phone numbers to your Asterisk repertoire. In fact, you’ll be able to call almost any non-AT&T cellphone or landline in the United States at no cost. Remember that when you buy your next cellphone! Special thanks to Cliff on the PBX in a Flash Forums for heads up.

Some early readers of Nerd Vittles may remember sipphone.com which morphed into Gizmo5.com. In January of this year, Gizmo5 struck peering deals with a number of telephone providers that already routed their calls over the Internet. And it’s a pretty impressive list that includes more than 10% of the phones and cellphones in the United States according to Gizmo5’s bean counters. There’s Access One, Airadigm, Allegiance, Alltel, Cablevision Lightpath, Cat Communications, Cbeyond, Cellcom, Cellular Properties, Centennial Wireless, Choice One, Cincinnati Bell Wireless, Cinergy Communications, Cingular, CityNet, Cleveland Unlimited, Comcast Digital Voice, Commpartners, Conversent Communications, Cox Communications, CP Telecom, CTC Communications, Dobson Cell, Eureka, Globalcom, Heartland Communications, Illinois Valley, ITC Deltacom, LDMI, McLeod, Metro PCS, Mpower, Nationsline, Nextel, Nextera Communications, Paetec, RCN, Sprint PCS, Talk America, Telnet Worldwide, T-Mobile, US Cellular, Verizon Wireless, and XO. Whew! And the program is constantly being expanded. Toll-free numbers and Gizmo5-to-Gizmo5 calls also are free using Gizmo5. You can check whether your frequently called numbers are free calls by simply entering the phone numbers at this link.

Thus was born what Gizmo5 calls Backdoor Dialing. Just dial 0101 and the 10-digit number of your choice. If it’s free, the call goes through. If not, you get a message that the number is not yet supported and click. The beauty of the program is that your total investment to use the free service with Asterisk is a one-time fee of $10 for a bucket of CallOut minutes to activate your account. Sometimes this takes a day for the credit to appear, particularly if you use PayPal to cover the cost. The good news is you can spend most of the $10 making calls to any phone in the world, many for under 2¢ per minute, using just about any computer on the planet. Just leave a few cents in the pot to keep your free Backdoor Dialing service enabled. From our testing, we’d rate the Gizmo5 call quality as excellent on both the free and the pay-per-minute calls! Complete rate tables are available here.

Gizmo5 provides free softphones for Windows, Macs, and Linux as well as numerous cell phones and mobile devices including Treo, Nokia, and many more (not the iPhone… yet!). All of the softphones make it extremely easy to place SIP calls, e.g. joeschmo@mypbx.dyndns.org. And you can place these calls all day long at no cost. See our tutorial for step-by-step instructions on setting up your own SIP addresses on your Asterisk server. The softphones also include Conferencing, SMS, and Instant Messaging with AIM, Yahoo, MSN, Google, and MySpace.

As with many of these services, they weren’t designed for Asterisk, but nothing in their fine print precludes Asterisk use so today we’ll show you how. Will the program last forever? Who knows, but it’s free for now. And the cost of admission is too good to resist. You’re obviously not going to dial every number you frequently call twice just to see if the call is free. That’s why you’ll want to use a robodialer such as AsteriDex for your outbound calling. Then it’s easy to adjust the phone numbers of your friends with Sprint, T-Mobile, or Verizon cellphones so that you never have to pay for those calls again. Just add a prefix of 0101 to the numbers, and you’re done. And they can call you on your Gizmo5 CallIn number through Asterisk if you’ve enabled the CallIn Service and chosen a number. It’s under $3 a month with an annual subscription. Or the calls can be returned using the CallerID number displayed by Gizmo5 when you call your friends. Toll charges may apply in this case due to the Gizmo5 area code.

So let’s get started. Step 1 is to download and install a free softphone of your choice and follow the prompts to sign up for your account. There’s really no reason not to install a Gizmo5 softphone on every computer you own. If you don’t use it, there’s no cost. If you ever need it, it’ll be there for you. Step 2 is to make a $10 purchase of CallOut minutes. While you’re waiting on the credit to appear (and it usually takes less than a day), let’s set up Asterisk. You’ll need your new account name, password, and phone number from Gizmo5 to get started.

Setting Up a FreePBX Trunk for Gizmo5. If you’re using a product such as PBX in a Flash that includes FreePBX, then open FreePBX in your browser and choose Setup->Trunks->Add SIP Trunk. Leave the General Settings blank. For the Dialing Rules, if you just want free calling through your Gizmo5 trunk, plug in values below. For regular calls as well, add 1NXXNXXXXXX or an entry that is suitable for each country you wish to call.

1800NXXXXXX
1822NXXXXXX
1833NXXXXXX
1844NXXXXXX
1855NXXXXXX
1866NXXXXXX
1877NXXXXXX
1888NXXXXXX
800NXXXXXX
822NXXXXXX
833NXXXXXX
844NXXXXXX
855NXXXXXX
866NXXXXXX
877NXXXXXX
888NXXXXXX
0101+NXXNXXXXXX
0101NXXNXXXXXX

Name the Trunk: Gizmo5. Make the following entries in Outgoing Settings Peer Details:

disallow=all
allow=ulaw
auth=md5
authuser=youracctnameNOTyourphonenumber
canreinvite=no
context=from-trunk
dtmfmode=auto
fromdomain=proxy01.sipphone.com
fromuser=youracctnameNOTyourphonenumber
host=proxy01.sipphone.com
insecure=very
nat=yes
qualify=yes
secret=yourpassword
type=peer
username=youracctnameNOTyourphonenumber

Clear out the Incoming Settings and use the following syntax for the Registration String. Then Save your setup and Reload Your Dialplan. NOTE: Don’t use any registration string unless you want incoming call support. By not registering, you can use your softphones whenever you need it to also make outbound calls. If you register with Gizmo5 using a registration string, then it knocks out use of a softphone since you can’t have two simultaneous registrations to the same account. But registering allows those you call with this service to call you back conveniently… although not necessarily for free from the caller’s phone.

youracctname:yourpassword@proxy01.sipphone.com/yourphonenumber

Setting Up a FreePBX Outbound Route for Gizmo5. While still in FreePBX, choose Setup->Outbound Routes->Add Route. Name the route: OutGizmo5. Then enter the following Dial Pattern: 0101NXXNXXXXXX. Choose SIP/Gizmo5 as your Trunk Sequence. Then click Submit Changes and Reload Your Dialplan.

Setting Up a FreePBX Inbound Route for Gizmo5. While still in FreePBX, choose Setup->Inbound Routes->Add Incoming Route. Name the route: Gizmo5 and plug in your 10-digit DID number in the appropriate field. Then Set a Destination for the incoming calls. That’s it. Save your entries by clicking the Submit button and then Reload Your Dialplan.

Making a Free Call with Gizmo5. Once your DialOut credit appears on your softphone or in your Gizmo5 web account, you’re ready to start making calls. From any phone connected to your Asterisk server, just dial 0101 plus the 10-digit phone number. On the Asterisk CLI, you should see the call routed out through your SIP/Gizmo5 trunk. If you get a congestion tone and you’re sure your DialOut credit has been posted to your account, then check your username and password entries in your Trunk setup. Be sure to use your account name and NOT your Gizmo5 phone number for your username, authuser, and fromuser entries. But, if that doesn’t work, try using your Gizmo5 phone number instead of your assigned user name. Some have reported quirks in which actually works. For us, the assigned user name did the trick. Also make certain that the disallow all entry is above the allow=ulaw in versions of FreePBX after 2.3, or no calls will ever be successful.

Photo courtesy of the Chicago Historical Society and the Library of Congress American Memory ProjectTurning Non-Free Numbers into Freebies. There’s always some enterprising individual that figures out a quick way to beat the system even when many calls already are free. Suppose the number you wish to call isn’t yet available through Backdoor Dialing. The only trick is to have a pool of numbers from a provider with a peering arrangement with Gizmo5… and, of course, an Asterisk or FreeSwitch server to forward the calls and handle the number translation. You can read about RingBranch’s implementation, and then you can sign up for the service here.

There’s another way to turn non-free calls into freebies. This is Gizmo5’s "All Calls Free" Plan which is available in 60 countries. Landlines and mobile phones are supported in 17 countries while landlines only are supported in 43 more. U.S., Canadian, and Chinese landlines and cellphones are included in the program in addition to those of the Pope and the other residents of Vatican City. God works in mysterious ways! Here’s the complete list of countries that are supported.

To qualify a landline or mobile number for free calling (by dialing with the usual country code prefixes), you both have to be "active" Gizmo5 subscribers, your landline and mobile numbers must be listed on your account, and you must enter each other in your respective Buddy Lists. Then free calls using your Asterisk Gizmo trunk can be made to the "regular" phone numbers of all your pals whether the called person is online with Gizmo or not. Be aware that you can’t call your own numbers for free, and there is lots of additional "fine print" in this program. Nothing precludes your spouse having his or her own Gizmo5 account, however. You’ll need to wade through the rules carefully to take advantage of the free calling. It is possible, but it’s not easy. If you have relatives in Europe, Australia, or the Far East, you might want to have a look here. Just do a search for "All Calls Free." Your Gizmo5 softphone also will report your current All Calls Free Status.

blankAdd Free Calls to 40 Million Asterisk Servers with e164.org. While we’re on a roll of free calling, here’s a simple way to add free calling to 40 million Asterisk servers around the world. Just add your name and phone numbers to the e164.org registry at no cost and configure FreePBX with ENUM support. Then outbound calls to numbers in the e164 registry will always be free as well. The whole setup takes less than 10 minutes. Here’s how.

The first step in setting up ENUM is to create a SIP address for your Asterisk server. The format looks like this: myname@somedomain.com. You’ll need either a fully-qualified domain name (FQDN) if your server has a static IP address or an FQDN issued through a dynamic DNS service such as dyndns.org if you have a dynamic IP address, e.g. pbx.dyndns.org. In the latter case, your router keeps dyndns.org apprised of changes in your external IP address so that pbx.dyndns.org always resolves to the correct IP address of your Asterisk server. Incidentally, with any hosted domain using a registrar such as omnis.com, it’s easy to add a subdomain DNS entry and point it to your Asterisk server, e.g. sip.joeschmo.com. That won’t cost you a dime other than the annual $6.95 domain registration fee which you’re already paying anyway.

Step two is to add your new FQDN address with a name of your choice to your Asterisk server. Then Asterisk will know how to process incoming SIP calls to that address. Read the Rolling Your Own section of our article on SIP Proxies for the procedure using FreePBX. It only takes a minute or two to set up. Let’s assume for purposes of this tutorial that you’re going to use the following destination address on e164.org for your server: e164@pbx.dyndns.org. An advantage to this type naming scheme is you can always keep straight the source of your incoming SIP calls. Thus your /etc/asterisk/extensions_override_freepbx.conf file should include a line in the [from-sip-external] context that looks like this: exten => e164,1,Goto(from-trunk,e164,1)

This tells Asterisk to route incoming SIP calls to e164@pbx.dyndns.org to the FreePBX Incoming Route for e164. And to complete the routing of the inbound calls to this address, add an Inbound Route in FreePBX called e164 that includes a destination of your choice for these SIP calls, e.g. an extension, a ring group, or an IVR already configured on your system. Just a footnote that e164.org requires you to enter a confirmation PIN when you set up the SIP routing to your server. So, at least initially, make the destination for your e164 SIP calls an extension that you can answer to obtain your PIN. You can safely ignore the FreePBX warning that you’re entering an odd type of inbound route by clicking OK. But you knew that.

Now let’s get you signed up with an account on e164.org. Go to the web site and click the Sign Up tab. Go through the sign up drill and then log into your new account. Then click the Phone Numbers tab and Add your phone numbers to e164. For each number, enter the area code and number. Then click the Next button. You’ll be warned about not having the number you’ve specified redirected to an IVR. If you already have this DID redirected to an IVR, change the routing temporarily to an extension that you can answer to obtain your PIN before you press Next to proceed. You’ll then be prompted for the SIP address to contact your server. Leave the default SIP protocol and plug in the address you created, e.g. e164@pbx.dyndns.org (using your own FQDN, of course). As soon as you click the Next button, your phone should start to ring, but there may not be a message when you answer. Hang up and wait for the second call within 15 minutes. It will include your PIN. Now click on the Phone Numbers tab and update your phone entry by choosing Enter PIN and typing your assigned PIN. Your phone number now has been activated with the e164 service. To complete the setup, you’ll want to click on the Do Not Call option and make your selections. You also can decide whether to list yourself in the ENUM White Pages directory.

Remember that the real purpose of this drill was to avoid charges when you place outbound calls to numbers in the ENUM directory. We merely added your numbers to e164.org so that others could benefit as well. So the final step before you can start saving money is to configure FreePBX to handle ENUM lookups for outbound calls from your server. One more observation may be helpful. You’ll recall that one of the limitations of FreePBX has always been that once an outbound route was chosen for a call, if the call was completed using the first destination trunk in that route, then the call processing ended there. ENUM adds a new wrinkle because we basically want to connect to ENUM to check for a free route and, if no matching entry is found, then we want the next trunk to process the call. As luck would have it, FreePBX has been tweaked to allow this scenario. All you have to do is create an ENUM trunk and then place it first in your sequence of trunks for each of your outbound routes. If an ENUM entry is found for the number you’re calling, the call will be routed as a free call with a direct SIP connection. Otherwise, the call processing will continue and the call will be routed using the next trunk specified in your outbound route.

There are two steps in FreePBX to implement ENUM. First, we need to create a special ENUM trunk. And second, we need to adjust our outbound routes to use the ENUM trunk first, and then the series of trunks you already have specified in each outbound route. NOTE: You obviously wouldn’t do this for an emergency 911 outbound route.

In FreePBX, click Setup, Trunk, Add ENUM Trunk. Enter your desired CallerID for these calls. Set a maximum number of channels, if desired, and then leave the other entries blank in most cases. Save your settings and reload your dialplan. Now click Setup, Outbound Routes and adjust the sequence of trunks for each of your existing routes. Be sure to put ENUM in the top position of each desired route. We also recommend adding a new Free Calls route so that users on your system can dial 0 and then a number to place a call through ENUM and then Gizmo5. If neither has a route for calling the party for free, the call will fail. The dial patterns might look like this for U.S. calls:

0|1NXXNXXXXXX
0|NXXNXXXXXX

The trunk list would look like this:

0 ENUM
1 SIP/gizmo5

Continue reading Part II.


Today’s Must Read: 101 Things You Can Do With Asterisk


VPN in a Flash Update! We’ve had over 100 reservations for our new VPN in a Flash system since last week. We’re very close to having a manufacturer in place so hopefully we’ll have more good news in a week or two. We have begun the documentation for the new product, and we encourage you to take a look and offer any questions or comments you may have on our forums. The documentation is in the new Google Knol format and can be reviewed here. It’s not too late to get in the queue and place a reservation for a system. Just send us a note, and we’ll keep you posted as the release date approaches. It’ll hold your place in line with absolutely no obligation to purchase.

Coming Attractions. We’re very close to signing on a new VoIP provider for PBX in a Flash users that will provide penny-a-minute calls in the U.S. and Canada as well as all-you-can-eat plans for just over $10 a month with an annual contract. We’re also only a week or two away from a new version of AsteriDex with Outlook synchronization and a TTS dialer for AsteriDex queries from any connected Asterisk phone. Stay tuned!


Hosting Provider Deal of the Century. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host unlimited domains with unlimited web hosting disk storage and unlimited monthly bandwidth. Free domain registration is included for as long as you have an account. It really doesn’t get any better than that. And their hosting services are flawless! Just use our link. You get a terrific hosting service, and we get a little lunch money.


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

blankBOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

blankThe lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

blankVitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

blankSpecial Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest…

The Digium Conundrum: Will Asterisk Be Just Another Asterisk on the VoIP Radar

blankIt’s been several months since we last addressed the "Asterisk® Problem" and much has been written and spoken on the subject since then. In a nutshell, the problem is the code changes made in each new version of Asterisk which break existing business applications. We’ve come to a better appreciation of the point of view of some of the Asterisk developers. But I’m sorry to say they haven’t budged. The good news is that much has changed for the better in spite of the Asterisk developers. And today we wanted to share some of those developments with you.

The Developer Mentality. Suffice it to say that the Asterisk development community is quite small and mostly driven (like most programmers) by a fierce sense of independence. The puzzling part is that most of these guys (and it is an all-male club) work for companies that make their living in the Asterisk marketplace, either manufacturing or selling hardware for Asterisk-based telephony systems. For the most part, however, these companies are hardware peddlers rather than system integrators. One fact of life has become crystal clear. New versions and new beta releases NEVER break existing hardware. Why? Because these are the companies that feed these guys. "Whose bread I eat, his song I sing" goes the old adage. So hardware that was purchased in the Asterisk 1.2 days still works equally well with the latest 1.6 beta releases. Thank you very much.

Business application software for Asterisk is an altogether different equation. Here the developer mantra goes something like this. You’re using our code for free, and we’ll improve it in any way we think is best. If it breaks your application code, too damn bad! You can either fix it, stop using it, or go elsewhere. And we really don’t care which option you choose. The sad part of that mentality is a total lack of appreciation for the fact that, once demand for Asterisk systems in the business community dries up, the demand for Asterisk hardware will also take a nosedive.

The types of business applications that have been broken are major, not organization-specific. For example, Asterisk 1.4 broke the open source fax application. And Asterisk 1.6-beta broke both the open source and commercial text-to-speech (TTS) engines. The sad part is that the applications were broken by trivial code changes in Asterisk that just as easily could have been accomplished without breaking any application code.

This development approach, of course, keeps Asterisk out of most major corporations and government organizations even though it is an almost perfect fit for many of them. Why? It’s pretty simple. Business application software in most major organizations isn’t written in house. It’s developed by outside contractors who typically bid on a project, win the bid, develop the software application, and move on. Three to five years later, they usually are not around to rebuild something that the Asterisk developers have broken with their "improvements." Since phone systems usually are measured in decades and Asterisk releases are measured in years, it’s a pretty terrible fit for most major corporations and government organizations. Can you imagine a WalMart or a Hilton Hotel replacing their telephony applications every couple of years because all of their fax capability suddenly vanished? The same is equally true in the medical and legal communities as well as in major real estate and construction companies. Earth-to-Digium®: Companies have more to do than babysit their phone systems.

What we said four months ago is equally true today. When we began the PBX in a Flash project last November, our emphasis was radically different than some of the other Asterisk aggregations. First and foremost, we wanted a product that was stable. Of equal importance was our own Big Easy: easy to use, easy to enhance, and easy to upgrade. We didn’t want users or VARs having to reinvent the wheel each time a security patch or new enhancement was released. To look at it from the customer side, no business (that wants to stay in business) will tolerate a phone system that is routinely out of service for upgrades much less one that takes away features that the business depends upon. Whether it’s Caller ID, or Text-to-Speech, or Screen Pops, or Conferencing, or Phone Blasting, or even a Call Center really doesn’t matter. It does no good to tell a customer that they lost critical functionality but now they have the latest version of Asterisk. You can add your own customer expletive here if you’ve ever tried this approach in the real world.

In the good old days when there wasn’t much of a feature set and when no business would stake their livelihood on Asterisk, it really didn’t much matter when a new version of Asterisk was released. To put it charitably, things could only get better. But, businesses now rely upon Asterisk. So the dynamics are quite different. It’s no longer acceptable to trash big chunks of code without making certain that you didn’t break something that was already working. It’s no longer acceptable to invent new verbs in the programming language while deleting commands that used to work.

The Good News. There really is a silver lining to this story. There’s a new game in town: FreeSwitch. It may take a year, but this is an all new technology with a team of developers with an all new attitude about software development. This is a product that is being developed from the ground up to meet business needs. It employs modern, business interfaces with which most major organizations are already familiar. Can it do what Asterisk can do? For the 60% of Asterisk functions that already work, FreeSwitch not only gets a check mark but the performance improvement is staggering. And for the 60% of FreeSwitch functions that Asterisk can’t do at all… well, you’ll just have to try it. Give them six to twelve more months, and we predict the trickle of Asterisk defections is going to turn into a stampede. Both a Windows implementation for your desktop and a turnkey Linux install via ISO are now available. What’s still missing is a tool as simple as FreePBX to actually configure everything, but rumor has it that there are several GUI interfaces in the pipeline. And for the short term, nothing could be much simpler than the XML code that makes FreeSwitch tick. Indeed, dozens and dozens of sample XML scripts are already available which mirror most major Asterisk functions and dialplan applications.

And More Good News. The problem with breaking generic business applications is that the developers who initially wrote the open source apps are no longer around or interested in Asterisk. Wonder why? In any case, thanks to Antonio Gallo, open source faxing for Asterisk 1.4 is back. And, thanks to Darren Sessions, open source text-to-speech with Flite for Asterisk 1.4 and 1.6 is a reality once again. Installation on CentOS systems still is a bit hairy. So we will include Flite for both Asterisk 1.4 and 1.6 in our new PBX in a Flash 1.3 release next week. And faxing will return for Asterisk 1.4 in our first SUSHI update shortly thereafter. Enjoy!

Another Good Read: Open Source VoIP: Asterisk or FreeSwitch by David Greenfield

And Another: Asterisk vs. FreeSwitch by Anders Brownworth


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

blankBOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

blankThe lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

blankVitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

blankSpecial Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest…

Statistically Speaking: AWstats Meets Asterisk and PBX in a Flash

blankFor Asterisk® users that are taking advantage of a LAMP-based install such as PBX in a Flash, Elastix, or even trixbox, you already know the functionality and flexibility boost that Apache, MySQL, and PHP bring to the telephony PBX space. And once you get used to an Internet-enhanced PBX, there’s no turning back. This has only been reinforced with the major ISPs, Comcast and Time Warner to name a couple, that recently have opened up the bandwidth spigot on most broadband connections. As the screenshot shows, our Comcast service at home now provides download speeds between Charleston and Washington, DC that exceed 20Mbps while uploads now are better than a business T1 line. So you not only get better VoIP calls with more flexibility to even support conferencing, but you also can suddenly take advantage of the LAMP tools available on your Asterisk server.

Once you start using your Apache web server for something other than displaying FreePBX screens, you’ll want a statistical tool to monitor access to your server. After years of trying various tools on hosted web accounts, our vote goes to awstats which provides everything you will ever want to know about the folks accessing your web site. So today we’re delighted to bring you a 15-second installer for PBX in a Flash systems, and it should work just as well on other LAMP-based systems that house web documents in /var/www/html and provide a CGI interface in /var/www/cgi-bin. If your settings vary from these, then take a look at the install scripts and tarball before proceeding.

Prerequisites. We’re assuming you already have a perfectly functioning, LAMP-based Asterisk server chugging along. If not, download PBX in a Flash and, using our instructions, install it. Better yet, visit your closest WalMart and pick up a $199 ‘WalMart Special.’ You’ll also find the Everex gPC2 at NewEgg for $10 less. Plus you can skip the sales tax. Once you have a gPC2, use our preconfigured Osgasmatron Build, and you’ll have a fully-functioning, preconfigured system in about 15 minutes. Then come back and join today’s party.

blankDesign Goal. Our objective with this project was to make it simple to install awstats without screwing up anything that already worked. We also didn’t want to add much performance overhead to your server. For that reason, we’ve configured awstats so that you can access it with your web browser and manually update the data any time you like. But we haven’t included a cron job to do it for you each night. A typical data refresh with awstats takes about 10 seconds so this shouldn’t be a life-altering delay for even the most impatient folks out there. It also gives you the very latest stats on demand whenever you’re in the mood. If you look at the screenshot to the left, you’ll see an Update now link on the top line. All you have to do is click on that link to refresh your awstats data anytime you want it. It’ll also show you when you last updated the awstats information. And, for those that didn’t know, all of this data is pulled from the Apache log: /var/log/httpd/access_log. If yours is named something else, then you’re obviously not going to see much in awstats other than a few samples which were generated on our server before we bundled things up.

Special Thanks. Before we walk you through the install process, let us take a moment to thank Chris Hope for a couple of great articles about awstats. If you want more detail on the inner workings of the application, then read his Installing AWStats on CentOS and Installing Geo IP PurePerl articles. We ended up not making some of the Apache configuration changes he recommended because everything worked without the mods. The major changes in our setup were the result of components being in different places on our Asterisk server. And we had to take into account the fact that Apache runs under the asterisk user name rather than the default CentOS setup.

Installing awstats. To install awstats, log into your server as root and issue the following commands:

cd /root
wget http://bestof.nerdvittles.com/applications/awstats/awstats.pbx
chmod +x awstats.pbx
./awstats.pbx

Running awstats. When the 15-second install is finished, use your favorite web browser, and go to the following link using the actual private IP address of your Asterisk server instead of 192.168.0.250: http://192.168.0.250/cgi-bin/awstats.pl. Now click the Update now link on the top line. Presto! You’re in business.

Adding a cron entry. The risk you run by not automating the awstats update process is that your Apache logs may be rotated before you next update your awstats info. To avoid this, add the following entry to /etc/crontab. This will update your awstats data each morning at 3:55 a.m., seven minutes before the Apache log is rotated.1

55 3 * * * asterisk /var/www/cgi-bin/awstats.pl ↵
-config=awstats -update > /dev/null


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

blankBOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

blankThe lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

blankVitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

blankSpecial Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest…

  1. Join the following line as a single line when you encounter a ↵ character. []

Asterisk 101: Some CallerID Tips & Tricks

blankIf you're relatively new to Internet Telephony and VoIP, then it may come as a bit of a surprise when CallerID for incoming calls shows the phone number for both the name and number of the incoming caller or when names that popped up using your plain old telephone's CallerID service no longer do. The problem is that most telephone providers only deliver a CallerID number when sending calls. Thus it is left to your service provider to look up the incoming number in a directory and supply the matching name. To put it another way, CallerID numbers are pushed to recipients, but CallerID names must be pulled from in-house databases. With Ma Bell and siblings, this was easy because they had all of the records. With some Internet Telephony Hosting Providers, it's a different story. The reverse is also problematic. Even though you may provide a CallerID name and number, most telephone companies throw the supplied CallerID name in the bit bucket and do their own lookups. So... if you're not in their directory, your number or nothing will be supplied instead of your actual name. Just another last vestige of monopoly preservation. With Asterisk®, the simplest solution to this mess is to do your own lookups. And today we have an updated CallerID directory lookup service to assist: the CallerID Superfecta.

NOTE: This article has been superseded. Continue reading the latest article here.

We have a second utility as well. Since moving to PBX in a Flash and Asterisk 1.4 and 1.6, we haven't provided a simple way to block or screen anonymous calls, i.e. those that show up in CallerID as either blank, anonymous, unknown, private, restricted, or toll free number. As they say, those are the usual suspects when it comes to weeding out unwanted callers. And today we'll provide several solutions from which you can choose. Our personal preference is to never answer these calls and route them straight to voicemail. You may be more curious than we are so we'll show you an option to screen calls using the Asterisk Parking Lot feature. Still others may hate these callers so much that you send them into IVR hell for hours at a time. And we've got some suggestions on that one, too.

Introducing CallerID Superfecta. We've dusted off an oldie but goodie today and reworked it a bit for newer versions of PHP. We also want to thank taiter and M Joyner for their whitepages.ca contribution to what used to be our CallerID Trifecta. The CallerID Superfecta now lets you choose up to four CallerID lookup sources for your incoming calls. The sources include the Google Phonebook, AnyWho, WhitePages, and our very own AsteriDex address book and robodialer. Complete installation instructions are available from our Best of Nerd Vittles site.

Installation and setup is a snap on all of the FreePBX-based aggregations including PBX in a Flash, Elastix, and trixbox. First, download and unzip the callerid.zip file into the root directory of the web server on your Asterisk system. Next, configure the sources you wish to use in callerid.php by setting the desired sources to 1 instead of 0 on the second page of the file. Then define the new CallerID Lookup Source in FreePBX. And finally, select the CallerID Superfecta as the lookup source for each of your Inbound Routes. The whole setup should take you less than two minutes. Now sit back and enjoy a much enhanced CallerID experience when incoming calls arrive on your Asterisk server.

Introducing the Creep Detector. Well, not so fast. The CallerID Superfecta doesn't get rid of the creeps that call wanting to sell you something or urging you to vote for your favorite Coroner. For that, you'll need a couple of tools. FreePBX includes an excellent web-based implementation of the Asterisk Blacklist. It allows you to specify the phone numbers of calls that should be blocked. You also can do this with a phone on your system by dialing *32 to blacklist the last caller or *30 to blacklist a specific phone number.

But, what about blacklisting all of those anonymous callers. Well, there's not an existing function in FreePBX to do it. Our preferred method goes like this. When an incoming call arrives, a message plays saying "Thanks for calling the Mundy's. Please hold a moment while I connect your call." During this message, a Stealth AutoAttendant will allow family members to press various buttons to be connected to various extensions. See the previous article for details. Once the IVR times out (in about 5 seconds), the call is passed to a Privacy Checker which screens the calls for creeps. If the call isn't identified as such, it is sent to a ring group. If a creep is detected, the system first plays a message that says: "Press 8 to be connected." If no key is pressed, we hang up. If 8 is pressed, the call goes to voicemail 704. If 4 is pressed, the call is passed to the ring group. This lets friends calling from phones with CallerID blocked still get through the maze.

So here's how to get it installed and working. Log into your server as root and add the following code snippet to the bottom of /etc/asterisk/extensions_custom.conf:

[custom-privacy-check]
exten => s,1,SetMusicOnHold(default)
exten => s,2,GotoIf($["${CALLERID(num)}" = ""]?s,16)
exten => s,3,GotoIf($["foo${CALLERID(num)}" = "foo"]?s,16)
exten => s,4,GotoIf($["${CALLERID(name):1:8}" = "nonymous"]?s,16)
exten => s,5,GotoIf($["${CALLERID(name):1:6}" = "nknown"]?s,16)
exten => s,6,GotoIf($["${CALLERID(num):1:6}" = "rivate"]?s,16)
exten => s,7,GotoIf($["${CALLERID(name):1:6}" = "rivate"]?s,16)
exten => s,8,GotoIf($["${CALLERID(num):1:9}" = "estricted"]?s,16)
exten => s,9,GotoIf($["${CALLERID(num):0:4}" = "PSTN"]?s,16)
exten => s,10,GotoIf($["${CALLERID(num):1:3}" = "oll"]?s,16)
exten => s,11,GotoIf($["${CALLERID(name):1:2}" = "--"]?s,16)
exten => s,12,GotoIf($["${CALLERID(name):0:1}" = ","]?s,16)
exten => s,13,GotoIf($["${CALLERID(name):1:3}" = "oll"]?s,16)
exten => s,14,GotoIf($["${CALLERID(num):0:3}" = "000"]?s,16)
exten => s,15,Dial(Local/777@from-internal)
exten => s,16,Playback(custom/nv-press8)
exten => s,17,Set(TIMEOUT(digit)=10)
exten => s,18,WaitExten(10)
exten => s,19,Hangup
exten => 4,1,Dial(Local/777@from-internal)
exten => 4,2,Hangup
exten => 8,1,VoiceMail(704@default)
exten => 8,2,Hangup

You'll need to make a couple of changes in the code above before using it. In lines s,14 and 4,1, modify extension 777 to reflect an extension or ring group on your phone system that you want to call after incoming calls are screened for creeps. In line 8,1, modify 704 to reflect a voicemail box that is active on your system and that should be used for recording messages from unwanted callers.

The next step is to add the "Press 8 to be connected" message to your system. While still logged in as root, issue the following commands:

cd /var/lib/asterisk/sounds/custom
wget http://bestof.nerdvittles.com/applications/callerid/nv-press8.wav
chown asterisk:asterisk nv-press8.wav
chmod +x nv-press8.wav

Now we need to configure your FreePBX setup to use the code above. The easiest way is to modify your Stealth AutoAttendant IVR and simply change the timeout destination (t) to a Custom App: custom-privacy-check,s,1. Save your changes and reload your dialplan, and you're all set.

Some additional ideas have also been floated on the PBX in a Flash Forum for handling anonymous callers. If you'd prefer to park these calls and announce them, see this thread. And here's an embellished version that gives you options to accept the call, send it to voicemail, or banish the caller. Enjoy!


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

blankBOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

blankThe lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

blankVitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

blankSpecial Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest...

Introducing PBX in a Flash 1.2: The Leaner, Meaner Asterisk Machine

We're just shy of the six month birthday for PBX in a Flash. So what better time to introduce version 1.2 which is chock full of new telephony goodies to whet your appetite for Internet Telephony. Tom King and Joe Roper have worked their usual Magic™ to come up with a pair of new ISOs that are nothing short of spectacular. Not only is PBX in a Flash leaner and meaner, but it's now incredibly flexible. You don't get the kitchen sink in PBX in a Flash ISOs. Instead you get a rock-solid CentOS 5.1 operating system on which to build an Internet telephony server that meets your specific needs. Want a 64-bit operating system? We've got it. Prefer to stick with a 32-bit operating system? We've got you covered there, too. Want to experiment with Asterisk® 1.6-beta? We've got it. Want to stick with Asterisk 1.4 for a production environment? We've got you covered. Do you prefer LVM, ext3, or SATA RAID for your disk drives? Well, take your pick. PBX in a Flash 1.2 now supports all of them. For those with a physical handicap, you now can install the complete system with no user intervention by typing ksauto at the first prompt. And, for PBX in a Flash development partners, we've even designed a 2-CD install set that makes generation of multiple systems with minimal Internet access a reality.

A Better Mousetrap. Asterisk-based LAMP aggregations, of course, are plentiful today, but we think we have a better mousetrap. Here are a few reasons why? First, PBX in a Flash is the only distribution that is totally source-based with Asterisk compiled from source. What that means is when you purchase add-on hardware and it has a problem for some reason, all of the tools are already in place for you to contact the manufacturer or reseller and have them reconfigure or recompile whatever is necessary on your system to get you back in business quickly. It also means that most of our applications are compiled from source on your specific hardware which assures a more reliable and stable software platform on which to build your telephony system.

Second, we don't release PBX in a Flash ISOs every other week. We don't have to. Every time a new security patch is released for Asterisk, the "other guys" have to create a new RPM or ISO to support it. That means your system is vulnerable while this process is underway. In many cases, it means reinstalling a new ISO and starting over. I wish I had a nickel for every time I reinstalled and basically started over with Asterisk@Home or trixbox. With PBX in a Flash, you simply type update-source at the command prompt and your system is brought current without missing a beat. The total downtime for your system is typically under 15 minutes!

Third, PBX in a Flash uses a two-step install process that all but eliminates the ISO obsolescence issues that have plagued other distributions. The PBX in a Flash ISO is used to install either the 32-bit or the 64-bit CentOS 5.1 operating system. When that process completes, the installer then searches multiple sites on the Internet for our "payload file" which contains the latest, greatest version of Asterisk which is compiled on-the-fly. The payload script also installs FreePBX and many of the customized features that make PBX in a Flash unique. If you need additional functionality, we have an entire web site, pbxinaflash.org, dedicated to add-on scripts, and it also has gotten a facelift. And, by the way, our typical add-on script installs without user intervention in under a minute. So... install what you need and skip the BloatWare. Using this design, most bugs are eliminated as well without your having to do much of anything. Translation: More siesta time. Less all-nighters!

Here's another reason that all of this matters. This is a true story that will give you a good handle on the flexibility that our design strategy brings to the table. We quietly introduced PBX in a Flash 1.2 to our loyal fan club last Wednesday. Within an hour after its release, the Asterisk Development Team announced a security patch and distributed new versions of Asterisk 1.4 and 1.6. Tom King, who was responsible for development of our latest payload files, happened to be scuba diving in the Atlantic Ocean as all of this unfolded. We sent him a text message to alert him to the problem. When Tom came up for some fresh air, he got the message. Then, using a cellphone from his boat, he kicked off an update script that regenerated all of the payload files with the latest Asterisk 1.4 and 1.6 security patches. And 90 minutes after the Asterisk security announcement, new PBX in a Flash 1.2 installs included both new versions of Asterisk. For those that installed their systems within the first 90 minutes, update-sources did the trick.

So today we're proud to introduce the 1.2 release of PBX in a Flash for Linux, Windows, and Macs. It's still the Lean, Mean Asterisk Machine designed to meet the needs of hobbyists as well as business users. Text-to-speech works, Bluetooth works, FreePBX 2.4 is rock-solid, the platform is open, and there already are custom install scripts for both Asterisk 1.4 and Asterisk 1.6 with many more just around the corner, perhaps as soon as this weekend.

As some of our regular readers know, we have been very concerned with the Asterisk development strategy that continues the process of regularly deleting commands and syntaxes with each major version change. Many of us rely upon these commands in building dialplans and vertical market applications for Asterisk so it causes a mess. PBX systems break that used to work. When that happens almost annually, it's a bad thing. One way that we hope to improve the dialogue with the developers is to make it easy for more people to experiment with Asterisk 1.6. Whether you choose our 32-bit or 64-bit ISO, you also have the option to install the latest Asterisk 1.6-beta and get involved in the process. Otherwise, we might as well look forward to annual train wrecks because the developers and Digium don't appear to be budging from their design strategy. You can read all about it here and here. We'll have more to say about it in coming weeks. For today, we're going to keep our sense of humor and walk you through the typical installation scenario to bring up a new PBX in a Flash 1.2 system with the latest version of Asterisk 1.4. When we're finished, you'll have a rock-solid telephony system to begin your Asterisk adventure. So let's get started.

Getting Started with PBX in a Flash 1.2. Begin by downloading either the 32-bit or 64-bit ISO image for PBX in a Flash. Don't worry. If you try to run the 64-bit install on a system that doesn't support it, it'll just sit there so you've got nothing to lose by trying the Ferrari first. As new locations for ISO downloads come on line, we will add them to the download list. Australia came on line yesterday thanks to Jim Lam. So just click on the location nearest to you, and you're off to the races. Once you've got the ISO image in hand, use your favorite tool to burn it to a bootable CD. This next step is the most important. Don't begin your installation until you first download and read Tom King's Installation Guide. It's an easy, non-technical read and will condense the install process to about 30 minutes. There also are loads of other helpful tutorials that are free for the downloading from our support site.

If you're new to all of this, let us recommend you try one of the $199 Everex Green PCs. Both WalMart and Egghead sell them, and they're just about perfect for a home or small business telephony server. And they're much less expensive to operate as well as being environmentally friendly. Just insert the CD containing the pbxinaflash.iso and then reboot the machine you wish to dedicate to PBX in a Flash. After reading Tom's tutorial and the initial prompts and warnings, choose an option and press the <Enter key> to begin the installation. If you want to first check the media for corruption, type linux mediacheck and then press the <Enter> key. When prompted, be sure to choose the option that erases all existing partitions and uses the default partition layout. Then choose your time zone and leave the UTC system clock option unchecked. Next choose a root password for your new system. Make it secure, and write it down. We plan to use this password for virtually everything on your new system. The install process begins. This includes MySQL, Apache, PHP, CUPS, Samba, WebMin, Subversion, SendMail, Yum, Bluetooth support, SSL, Perl, Python, the kernel development package, and much more. In about 15 minutes depending upon the speed of your PC, the install will pause to allow you to eject the CD. Click the Proceed button to continue after removing the CD. You must have an Internet connection now to complete the install so plug in a 10/100 cable if you haven't done so already. After reboot, the system will start up with CentOS 5.1, then download and install Asterisk and FreePBX, and search for the necessary installation script and payload file on pbxinaflash.net. If that site happens to be down, the script will go to pbxinaflash.com for the same payload file. Just to repeat, if you don't have Internet connectivity, then the installation cannot complete. When the installation finishes, reboot your system and log in as root. The IP address of your PBX in a Flash system will be displayed once you log in. If it's blank, type service network restart after assuring that you have Internet connectivity and access to a DHCP server that hands out IP addresses. Typing ifconfig should display your IP address on the eth0 port. Write it down. We'll need it in a minute.

Now that you've logged in as root, you should see the IP address displayed with the following command prompt: root@pbx:~/. If instead you see bash displayed as the command prompt and it's not green, then the installation has not completed successfully. This is probably due to network problems but also could be caused by the time being set incorrectly on your server. You can't compile Asterisk if the time on your computer is a date in the past! For this glitch you have to start over. If it's a network issue, fix it and then reboot and watch for the eth0 connection to complete. Assuming it doesn't fail the second time around, the installation will continue. Likewise, if you do not have DHCP on your network, the installation will fail because the PBX will not be given an IP address. Simply type netconfig, fill in the blanks and reboot. Tom's Guide goes into more troubleshooting detail. The install will recommence.

Required Steps to Complete the Install. There are four important things to do to complete the installation. First, from the command prompt, run genzaptelconf. This sets up your ZAP hardware as well as a timing source for conferencing. If you're using additional hardware for your Asterisk system, we recomend removing the 56K modem when you install the cards. This will help avoid interrupt conflicts. Second, decide how to handle the IP address for your PBX in a Flash server. The default is DHCP, but you don't want the IP address of your PBX changing. Phones and phone calls need to know how to find your PBX, and if your internal IP address changes because of DHCP, that's a problem. You have two choices. Either set your router to always hand out the same DHCP address to your PBX in a Flash server by specifying its MAC address in the reserved IP address table of your router, or run netconfig at the command prompt and assign a permanent IP address to your server. Be aware that netconfig no longer is a part of CentOS 5.1. We added it back in as part of the install. If you update your CentOS configuration, you will need to reinstall it by running update-scripts, then update-fixes, and then install-netconfig. If you experience problems with the process, see this message thread on the forum. The third configuration requirement probably accounts for more beginner problems with Asterisk systems than everything else combined. Read the next section carefully and do it now!

Getting Rid of One-Way Audio. There are some settings you'll need to add to /etc/asterisk/sip_custom.conf if you want to have reliable, two-way communications with Asterisk: nano -w /etc/asterisk/sip_custom.conf. The entries depend upon whether your Internet connection has a fixed IP address or a DHCP address issued by your provider. In the latter case, you also need to configure your router to support Dynamic DNS (DDNS) using a service such as dyndns.org. If you have a fixed IP address, then enter settings like the following using your actual public IP address and your private IP subnet:

externip=180.12.12.12
localnet=192.168.1.0/255.255.255.0      (NOTE: The first 3 octets need to match your private IP addresses!)

If you have a public address that changes and you're using DDNS, then the settings would look something like the following:

externhost=myserver.dyndns.org
localnet=192.168.0.0/255.255.255.0      (NOTE: The first 3 octets need to match your private IP addresses!)

Once you've made your entries, save the file: Ctrl-X, Y, then Enter. Reload Asterisk: amportal restart. If you assigned a permanent IP address, reboot your server: shutdown -r now.

Be aware that some people experience problems with the externhost approach outlined above. If your provider only gives you a dynamic IP address, you still can use the externip apprach above so long as you have a method to frequently verify your IP address. The approach we actually use on our home network is to run a little script every 5 minutes. If it finds that your outside IP address has changed, it will automatically update your sip_custom.conf file with the new address. To use our approach, create a file in /var/lib/asterisk/agi-bin names ip.sh. Here's the code:1

#!/bin/bash
fqdn="mypbx.dyndns.org"
localnet="192.168.0.0"
externip=`ping -c 1 $fqdn | cut -f 2 -d "(" | cut -f 1 -d ")" -s ↩
| grep -m 1 ^`
if [ -e /tmp/$externip ] ; then
echo No IP Update Required ;
else
echo IP Update Required ;
touch /tmp/$externip ;
echo "externip=$externip" > /etc/asterisk/sip_custom.conf
echo "localnet=$localnet/255.255.255.0" >> /etc/asterisk/sip_custom.conf
asterisk -rx "dialplan reload" ;
fi

On line 2 of the above code, enter the fully-qualified domain name for your server that is registered with your DDNS host. Take a look at this thread for information on DNS-O-Matic which is free.

On line 3, enter the internal subnet for your server. This is usually 192.168.0.0 or 192.168.1.0. YMMV!

Save the file and give it execute permissions: chmod +x /var/lib/asterisk/agi-bin/ip.sh. Then make asterisk the file owner: chown asterisk:asterisk /var/lib/asterisk/agi-bin/ip.sh.

Finally, add the following entry to the bottom of /etc/crontab:

*/5 * * * * asterisk /var/lib/asterisk/agi-bin/ip.sh > /dev/null

Getting Your Machine Up to Date. Tom King, one of our lead developers, has gone to great pains to make it easy for you to always have a current system. All you have to do is type a few commands, but you do have to type them. So do it now! After logging in as root, type update-scripts to get the latest PBX in a Flash scripts installed on your system. This doesn't run them, it merely makes them available for you to run them. Once you complete this step, you can always review the latest scripting options by typing help-pbx. Now run update-fixes to apply the latest patches to your PBX in a Flash system. When it completes, you're up to date. If you want the latest version of Asterisk, it's easy! Just run update-source. In the case of PBX in a Flash 1.2, you have the latest version of Asterisk 1.4 or 1.6-beta... at least for today.

Activating Email Delivery of Voicemail Messages. We've previously shown how to configure systems to reliably deliver email messages whenever a voicemail arrives unless your ISP happens to block downstream SMTP mail servers. Here's the link in case you need it. As it happens, you really don't have to use a real fully-qualified domain name to get this working. So long as the entry (such as pbx.dyndns.org) is inserted in both the /etc/hosts file and /etc/asterisk/vm_general.inc with a matching servermail entry of vm@pbx.dyndns.org (as explained in the link above), your system will reliably send emails to you whenever you get a voicemail if you configure your extensions in freePBX to support this capability. You can, of course, put in real host entries if you prefer. For 90% of the systems around the world, if you just want your server to reliably e-mail you your voicemail messages, make line 3 of /etc/hosts look like this with a tab after 127.0.0.1 and spaces between the domain names:

127.0.0.1     pbx.dyndns.org pbx.local pbx localhost.localdomain localhost

And then make line 6 of /etc/asterisk/vm_general.inc look like the following:

serveremail=voicemail@pbx.dyndns.org

Now issue the following two commands to make the changes take effect:

service network restart
amportal restart

The command "setup-mail" can be used from the Linux prompt to set the fully-qualified domain name (FQDN) of the mail that is sent out from your server. This may help mail to be delivered from the PBX. One of things mail servers do to reduce spam is to do a reverse lookup on where the mail has come from, checking that there is actually a mailserver at the other end. You can only do this if you have set up dynamic DNS or if you have pointed a hostname at your fixed IP address. Once you have done this, and assuming your ISP is cooperative, then you will receive your voicemails via email if you wish (this is set within FreePBX),and your PBX will email you when FreePBX needs an update. You set this feature in FreePBX General Settings.

If your hosting provider blocks downstream SMTP servers to reduce spam, here's a simple way to use your gMail account (free!) as your SMTP Relay Host. Then you never have to worry about this again!

Setting Passwords and Other Stuff. Be aware that there is a major security hole in FreePBX. Using FreePBX admin security alone will not protect your system from a web attack and may compromise root access to your entire server. For this reason, we recommend that you log in as root and immediately run passwd-master. This establishes Apache htaccess security on your FreePBX web interface. After running this conversion utility, you can only log into the FreePBX admin interface with the username maint (not admin) and the password which you establish when you run the utility.

Other passwords can be set in your system with these commands:

passwd... reset your root user password
passwd-maint... reset your FreePBX maint password
passwd-wwwadmin... for users needing FOP and MeetMe access
passwd-meetme... for users needing only MeetMe access
passwd-webmin... for users needing WebMin access to your server (very dangerous!)

There's also an Administration password that you can set in the KennonSoft UI that displays when you point your browser to the IP address of your server. Do NOT use the same password here that you use elsewhere as it is not overly secure.

Configuring WebMin. WebMin is the Swiss Army Knife of Linux. It provides TOTAL access to your system through a web interface. Search Nerd Vittles for webmin if you want more information. Be very careful if you decide to enable it on the public Internet. You do this by opening port 9001 on your router and pointing it to the private IP address of your PBX in a Flash server. Before using WebMin, you need to set up a username and password for access. From the Linux prompt while logged in as root, type the following command where admin is the username you wish to set up and foo is the password you've chosen for the admininstrator account. HINT: Don't use admin and foo as your username and password for WebMin unless you want your server trashed!

/usr/libexec/webmin/changepass.pl /etc/webmin root password

To access WebMin on your private network, go to http://192.168.0.123:9001 where 192.168.0.123 is the private IP address of your PBX in a Flash server. Then type the username and password you assigned above to gain entry. To stop WebMin: /etc/webmin/stop. To start WebMin: /etc/webmin/start. For complete documentation, go here.

Updating and Configuring FreePBX. FreePBX 2.4 is installed as part of the PBX in a Flash 1.2 implementation. This incredible, web-based tool provides a complete menu-driven user interface to Asterisk. The entire FreePBX project is a model of how open source development projects ought to work. And having Philippe Lindheimer's as the Captain of the Ship is just icing on the cake. All it takes to get started with FreePBX is a few minutes of configuration, and you'll have a functioning Asterisk PBX complete with voicemail, music on hold, call forwarding, and a powerful interactive voice response (IVR) system. There is excellent documentation for FreePBX which you should read at your earliest convenience. It will answer 99% of your questions about how to use and configure FreePBX. For the one percent that is not covered in the Guide, visit the FreePBX Forums which are frequented regularly by the FreePBX developers. Kindly post FreePBX questions on their forum rather than the PBX-in-a-Flash Forum. This helps everybody. Now let's get started.

NOTE: PBX in a Flash comes with the IPtables firewall enabled on your system. If this causes problems with access to the FreePBX repository (for loading the FreePBX updates below), you can easily (and temporarily) turn off the firewall. Type help-pbx for assistance. Don't forget to restart the firewall especially if your system has any Internet exposure!

Now move to a PC or Mac and, using your favorite web browser, go to the IP address you deciphered above for your new server. Be aware that FreePBX has a difficult time displaying properly with IE6 and IE7 and regularly blows up with older versions of Safari. Be safe. Use Firefox. From the PBX in a Flash Main Menu in your web browser, click on the Administration link and then click the FreePBX button. The username and password both default to admin. Click Apply Configuration Changes, Continue with Reload, and then Refresh your browser screen. Now click the Module Administration option in the left frame once FreePBX loads. Now click Check for Updates online in the upper right panel. Next, click Download All which will select every module for download and install. The important step here is to move down the list and Deselect Speed Dials and PHPAGI from the download and install options. Once these apps have been deselected, scroll to the bottom of the page and click Process, then Confirm, then Return once the apps are downloaded and installed, then Apply, then Continue with Reload. Now repeat the process once more and do not deselect the two applications, then Process, Confirm, Return, Apply Config Changes, and Continue with Reload. Finally, scroll down the Modules listing until you get to the Maintenance section. Click on each of the following and choose Install: ConfigEdit, Sys Info, and phpMyAdmin. Then click Process, then Confirm, then Return once the apps are downloaded and installed, then Apply, then Continue with Reload. All three of these tools now are installed in the Maintenance section of the Tools tab of FreePBX. One final step, and you're good to go. An update of FreePBX has been released. Click Check for Updates online. Then choose Download and Upgrade for the Core, FreePBX Framework, and System Dashboard modules. Then click Process, then Confirm, then Return once the apps are downloaded and installed, then Apply, then Continue with Reload. You now have an up-to-date version of FreePBX. You'll need to repeat the drill every few weeks as new updates are released. This will assure that you have all of the latest and greatest software. To change your Admin password, click on the Setup tab in the left frame, then click Administrators, then Admin in the far right column, enter a new password, and click Submit Changes, Apply Configuration Changes, and Continue with reload. We're going to be repeating this process a number of times in the next section so... when instructed to Save Your Changes, that means "click Submit Changes, Apply Configuration Changes, and Continue with reload."

Choosing Internet Telephony Hosting Providers for Your System. Before you can place calls to users outside your system or to receive incoming calls, you'll need at least one provider (each) for your incoming phone number (DID) and incoming calls as well as a provider for your outbound calls (terminations). We have a list of some of our favorites here, and there are many, many others. You basically have two choices with most providers. You can either pay as you go or sign up for an all-you-can-eat plan. Most of the latter plans also have caps on minutes so it's more akin to all-they-care-for-you-to-eat, and there are none of the latter plans for business service. In the U.S. market, the going rate for pay as you go service is about 1.5¢ per minute rounded to the tenth of a minute. The best deal on DIDs is from les.net. They charge $3.99 a month for a DID with unlimited, free incoming calls. WARNING: Before you sign up for any all-you-can-eat plan, do some reading about the service providers. Some of them are real scam artists with backbilling and all sorts of unconscionable restrictions. You need to be careful. Our cardinal rule in the VoIP Wild West is never, ever entrust your entire PBX to a single hosting provider. As Forrest Gump would say, "Stuff happens!" And life's too short to have dead telephones, even if it's a rarity.

Setting Up FreePBX to Make Your First Call. There are four components in FreePBX that need to be configured before you can place a call or receive one from outside your PBX in a Flash system. So here's FreePBX for Dummies in less than 50 words. You need to configure Trunks, Extensions, Outbound Routes, and Inbound Routes. Trunks are hosting provider specifications that get calls delivered to and transported from your PBX to the rest of the world. Extensions are internal numbers on your PBX that connect your PBX to telephone hardware or softphones. Inbound Routes specify what should be done with calls coming in on a Trunk. Outbound Routes specify what should be done with calls going out to a Trunk. Everything else is bells and whistles.

Trunks. When you sign up with most of the better ITHP's that support Asterisk, they will provide documentation on how to connect their service with your Asterisk system. If they have a trixbox tutorial, use that since it also uses FreePBX as the web front end to Asterisk. Here's an example from les.net. And here's the Vitelity support page although you will need to set up an account before you can access it. We also have covered the setups for a number of providers in previous articles. Just search the Nerd Vittles site for the name of the provider you wish to use. You'll also find many Trunk setups in the trixbox Trunk Forum. Once you find the setup for your provider, add it in FreePBX by going to Setup, Trunks, Add SIP Trunk. Our AxVoice setup (which is all entered in the Outgoing section with a label of axvoice) looks like this with a Registration String of yourusername:yourpassword@sip.axvoice.com:

allow=ulaw
authname=yourusername
canreinvite=no
context=all-incoming
defaultip=sip.axvoice.com
disallow=all
dtmfmode=inband
fromdomain=sip.axvoice.com
fromuser=yourusername
host=sip.axvoice.com
insecure=very
nat=yes
secret=yourpassword
type=friend
user=phone
username=yourusername

And our Vitelity Outbound Trunk looks like the following (labeled vitel-outbound) with no registration string:

allow=ulaw&gsm
canreinvite=no
context=from-pstn
disallow=all
fromuser=yourusername
host=outbound1.vitelity.net
secret=yourpassword
sendrpid=yes
trustrpid=yes
type=friend
username=yourusername

Extensions. Now let's set up a couple of Extensions to get you started. A good rule of thumb for systems with less than 50 extensions is to reserve the IP addresses from 192.x.x.201 to 192.x.x.250 for your phones. Then you can create extension numbers in FreePBX to match those IP addresses. This makes it easy to identify which phone on your system goes with which IP address and makes it easy for end-users to access the phone's GUI to add bells and whistles. To create extension 201 (don't start with 200), click Setup, Extensions, Generic SIP Device, Submit. Then fill in the following blanks leaving the defaults in the other fields for the time being.

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

Now create several more extensions using the template above: 202, 203, 204, and 205 would be a good start. Keep the passwords simple. You'll need them whenever you configure your phone instruments.

Outbound Routes. The idea behind multiple outbound routes is to save money. Some providers are cheaper to some places than others. We're going to skip that tutorial today. You can search the site for lots of information on choosing providers. Assuming you have only one or two for starters, let's just set up a default outbound route for all your calls. Using your web browser, access FreePBX on your server and click Setup, Outbound Routes. Enter a route name of Everything. Enter the dial patterns for your outbound calls. In the U.S., you'd enter something like the following:

1NXXNXXXXXX
NXXNXXXXXX

Click on the Trunk Sequence pull-down and choose your providers in the order you'd like them to be used for outbound calls.Click Submit Changes and then save your changes. Note that a second choice in trunk sequence only gets used if the calls fail to go through using your first choice. You'll notice there's already a 9_outside route which we don't need. Click on it and then choose Delete Route 9_outside. Save your changes.

Inbound Routes. We're also going to abbreviate the inbound routes tutorial just to get you going quickly today. The idea here is that you can have multiple DIDs (phone numbers) that get routed to different extensions or ring groups or departments. For today, we recommend you first build a Ring Group with all of the extension numbers you have created. Once you've done that, choose Inbound Routes, leave all of the settings at their default values and move to the Set Destination section and choose your Ring Group as the destination. Now click Submit and save your changes. That will set up a default incoming route for your calls. As you add bells and whistles to your system, you can move the Default Route down the list of priorities so that it only catches calls that aren't processed with other inbound routing rules.

General Settings. Last, but not least, we need to enter an email address for you so that you are notified when new FreePBX updates are released. Scroll to the bottom of the General Settings screen after selecting it from the left panel. Plug in your email address, click Submit, and save your changes. Done!

Adding Plain Old Phones. Before your new PBX will be of much use, you're going to need something to make and receive calls, i.e. a telephone. For today, you've got several choices: a POTS phone, a softphone, or a SIP phone. Option #1 and the best home solution is to use a Plain Old Telephone or your favorite cordless phone set (with 8-10 extensions) if you purchase a little device known as a Sipura SPA-3102. It's under $70. Be sure you specify that you want an unlocked device, meaning it doesn't force you to use a particular service provider. This device also supports connection of your PBX to a standard office or home phone line as well as a telephone.

Downloading a Free Softphone. Unless you already have an IP phone, the easiest way to get started and make sure everything is working is to install an IP softphone. You can download a softphone for Windows, Mac, or Linux from CounterPath. Or download the pulver.Communicator or the snom 360 Softphone which is a replica of perhaps the best IP phone on the planet. Here's another great SIP/IAX softphone for all platforms that's great, too, and it requires no installation: Zoiper 2.0 (formerly IDEfisk). All are free! Just install and then configure with the IP address of your PBX in a Flash server. For username and password, use one of the extension numbers and passwords which you set up with freePBX. Once you make a few test calls, don't waste any more time. Buy a decent SIP telephone. We think the best value in the marketplace with excellent build quality and feature set (but probably not the best sound quality) is the $79 GrandStream GXP-2000. It has support for four lines, speaks CallerID numbers, has a lighted display, and can be configured for autoanswer with a great speakerphone. Our personal favorite and the phone that PBX in a Flash officially supports is the Aastra 57i or 57iCT which also includes cordless DECT phone. Do some reading before you buy. The Voxilla forums are a good place to start.

A Word About Ports. For the techies out there that want "the rest of the story" to properly configure firewalls, here's a list of the ports available and used by PBX in a Flash:

TCP 80 - HTTP
TCP 9080 - Duplicate HTTP
TCP 22 - SSH
TCP 9022 - Duplicate SSH
TCP 9001 - WebMin
UDP 10000-20000 - RTP
UDP 5004-5082 - SIP
UDP 4569 - IAX2
UDP 2727 - Media Gateway

Where To Go From Here. The PBX in a Flash script repository at pbxinaflash.org also has gotten a facelift. That should be your next stop because it is the home of all the goodies that make PBX in a Flash shine. Tom King, the ultimate scripting guru, manages that site. So check it often. And now that PBX in a Flash 1.2 is out the door, we've been chomping at the bit to get all of our Nerd Vittles Goodies ported over. Most of our original collection work flawlessly with Asterisk 1.4 including AsteriDex, Yahoo News Headlines, Weather by Airport Code, Weather by Zip Code, Worldwide Weather Forecasts, Telephone Reminders, MailCall for Asterisk, and TeleYapper. We have not yet completed testing with Asterisk 1.6... which has a text-to-speech impairment at the moment. Complete documentation for each application also is provided at the link above. And, if you still have a DBT-120 Bluetooth adapter, you'll be happy to learn that it works out-of-the-box with PBX in a Flash on your new Everex Green PC. Dust off our recent article on Proximity Detection, and you should be in business in under 10 minutes. Enjoy!


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

blankBOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

blankThe lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

blankVitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

blankSpecial Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest...

  1. Join the following line to the original line of code whenever you encounter the ↩ character. []

SIP Proxies Make Asterisk Shine and Save You Money

We're going to take a break today and have a little fun by showing how to quickly connect to any other Asterisk® system to make free calls forever! It's been a long time since we discussed SIP proxies and some newer members of the Asterisk community may not appreciate what a cost-saving feature SIP proxies can be in your Asterisk system particularly if you, or your friends, or your business associates have other Asterisk systems in far away places. And, for the experts, yes, we're going to talk about Dundi soon. But, for today, we'll add a little FreePBX secret that wasn't even covered in the excellent FreePBX Training Seminar last week.

To get started, we're going to use dyndns.org as our dynamic SIP proxy server, i.e. to translate fully-qualified domain names (FQDNs) into IP addresses for Asterisk servers. In short, it works much like a DNS server. You type in a domain name, and the SIP proxy server looks up the IP address for you. Why does this all matter you might be asking? Well, when you have access to a "phone number" or account on a remote Asterisk server, you can reach that number through the Internet without paying any connection fees to any hosting provider. In fact, you don't even need a hosting provider to make today's exercise work. It's a pure point-to-point SIP connection from your Asterisk server to another Asterisk server. Think of it as a Skype-to-Skype call: connect for free, talk forever, pay nothing.

The Nerd Vittles Demo. Let's begin with a quick little demo to show how powerful the technology really is. We're going to assume you have an Asterisk system configured with FreePBX such as PBX in a Flash. If not, you'll have to do some reading between the lines. So we're going to add an entry to /etc/asterisk/extensions_custom.conf so that you can make a direct call to our demo hosted server at Aretta Communications in Atlanta by dialing D-E-M-O from any extension on your system. This demo also will give you a good idea why hosted service rocks since our Aretta-hosted PBX in a Flash server is sitting one millisecond off the Internet backbone.

To set this up at your end, log into your Asterisk server as root and issue the following commands only if you don't already have an extension 3366 (demo) on your system. Otherwise, edit the script and change 3366 to an available extension on your PBX.

cd /root
wget http://pbxinaflash.net/scripts/demo.pbx
chmod +x demo.pbx
./demo.pbx

Now go to any phone connected to your Asterisk server and dial D-E-M-O. NOTE: For those using FreePBX 2.4, you may need to add a Misc Destination. If so, call it Demo and enter 3366 as the number to dial. Reload the dialplan when prompted and try the call again. None of the demo apps require a password except for MailCall, option 1. The password is 1234.

Rolling Your Own on the Server-Side Now that you've seen how this works, you're probably wondering how to roll your own. This could be used for dialing into your Asterisk server from any other Asterisk server on the planet. So here's how to set up the server-side of a Poor Man's SIP server:

First, we'd recommend you obtain a fully-qualified domain name from dyndns.org and point it to the IP address of your Asterisk server. This isn't absolutely necessary provided your Asterisk server doesn't have a dynamic IP address. Obviously, if it has a dynamic IP address and your provider changes your IP address, then the SIP route must be adjusted at the client ends that will be making calls to your system.

Second, if you have a default incoming route, do NOT change the No setting for Allow Anonymous Inbound SIP Calls in the General Setting section of FreePBX. Otherwise, anyone can access your PBX from anywhere.

What we want to do instead of opening your system up to total anonymous SIP access is open a small hole for access to a specific extension or IVR (in the case of the demo). So here's how we did it for the demo above on the host system. This hole would normally be added in /etc/asterisk/extensions.conf; however, FreePBX "owns" that file and rewrites it periodically so we don't want to put our new code there. Instead, we will copy the code block from extensions.conf that we want to modify to /etc/asterisk/extensions_override_freepbx.conf. And then we'll add our changes there. Then our modifications won't get stepped on by the next FreePBX reload. The piece we want including our changes (in bold) is shown below so just cut-and-paste it into extensions_override_freepbx.conf. Be sure to examine the quotation marks to be sure WordPress hasn't converted anything to fancy quotes!!

[from-sip-external]
exten => _.,1,NoOp(Received incoming SIP connection from unknown peer to ${EXTEN})
exten => _.,n,Set(DID=${IF($["${EXTEN:1:2}"=""]?s:${EXTEN})})
exten => _.,n,Goto(s,1)
exten => s,1,GotoIf($["${ALLOW_SIP_ANON}"="yes"]?from-trunk,${DID},1)
exten => 3366,1,Goto(from-trunk,${DID},1)
exten => demo,1,Goto(from-trunk,3366,1)

exten => s,n,Set(TIMEOUT(absolute)=15)
exten => s,n,Answer
exten => s,n,Wait(2)
exten => s,n,Playback(ss-noservice)
exten => s,n,Playtones(congestion)
exten => s,n,Congestion(5)
exten => h,1,NoOp(Hangup)
exten => i,1,NoOp(Invalid)
exten => t,1,NoOp(Timeout)

Once you've saved the new code, reload your dialplan: asterisk -rx "dialplan reload". Now all we have to do is add an Inbound Route in FreePBX to handle incoming SIP calls to 3366. Click Setup, then Inbound Routes, then Add Incoming Route. For the DID, enter 3366. For the destination, choose an extension, ring group, or IVR to which you want to pass these calls. Submit your change and reload the dialplan when prompted to do so. Your new demo and 3366 anonymous SIP calls are now locked down so that the bad guys can't get into mischief. Remember, no one has to dial a DID (revealing their identity) with anonymous SIP calls... hence the name. All they need is an Internet connection.

Limiting Access By IP Address. In a business environment between branch offices, for example, you might want to further restrict access through direct SIP connections. There's an easy way to do it. Simply replace the 3366 and demo lines of code above with the following using the correct IP address from which you want to permit access. Fancy quote alert applies here, too. All the quotes must look like plain old quotes, not magazine quotes!1

exten => 3366,n,GotoIf($["${SIPCHANINFO(peerip)}"=↩
"69.59.142.143"]?from-trunk,${DID},1)
exten => demo,n,GotoIf($["${SIPCHANINFO(peerip)}"=↩
"69.59.142.143"]?from-trunk,3366,1)

Avoiding NAT Problems. If you get failed calls after setting up both ends, then you may have NAT issues with your router. Add the following code to /etc/asterisk/sip_additional_custom.conf and reload your dialplan:

[from-trunk]
type=user
nat=yes
insecure=very
dtmfmode=rfc2833
context=from-trunk
canreinvite=no
disallow=all
allow=ulaw
allow=gsm

Rolling Your Own on the Client-Side. For anyone that wants to call "SIP direct" to your system, they would simply add an entry in the [from-internal-custom] context of /etc/asterisk/extensions_custom.conf that looks like either one of the following. Either syntax works for the SIP call to the host server since we inserted entries for both 3366 and demo in the from-sip-external context on the host server. Substitute the FQDN or IP address of your own host server for our extra special one (nerdvittles.kicks-ass.net) unless you want to call our demo, of course.

exten => 3366,1,Dial(SIP/3366@nerdvittles.kicks-ass.net) ; demo from Nerd Vittles

or...

exten => 3366,1,Dial(SIP/demo@nerdvittles.kicks-ass.net) ; demo from Nerd Vittles

Now users on the client-side PBX can dial 3366 from any attached phone to reach the destination you set up on the host server. Enjoy!

Free DID and Free Incoming Calls with IPkall. There's one more really cool thing you can do now that you've mastered setting up SIP proxies with Asterisk. You can sign up for a free DID with free incoming calls to your very own Seattle phone number just like Bill Gates. Here's how:

First, in your extensions_override_freepbx.conf file that we created above, add another line that looks like the following and place it just under the demo line in bold. Change the 701 extension to match an actual ring group or extension number on your system and then reload your dialplan: asterisk -rx "dialplan reload".

exten => ipkall,1,Goto(from-trunk,701,1)

Second, go to dyndns.org and sign up for a dynamic host name with the external IP address of your Asterisk system. You can use any name you like... except nerdvittles.kicks-ass.net. That's already taken.

Third, go to IPkall's web site and fill out the form to get your free DID in Seattle. Choose SIP. Choose an area code for your free phone number. For your SIP phone number, enter ipkall. For your SIP proxy, insert the fully-qualified domain name that you chose from dyndns.org. Or you can just use the public IP address of your Asterisk server. Insert your real email address (or you'll never get your phone number) and create a password. Then wait for your email message with your new telephone number. Now call yourself on the number you just received. It doesn't get much easier than that.

Telephone Reminders Update. In case you missed the fun last month, be sure to read all about our new Telephone Reminders System for Asterisk 1.4 that provides phone and web access to schedule reminders. And, we've now added a few more requested features. First, you now can not only review reminders that have been scheduled, but you also can delete those you no longer want. And all of this still is done from the convenience of your web browser. Now you also can send reminders straight to an intercom/paging device on your system as well as directly to voicemail. For details, visit the PBX in a Flash Forum.


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

blankBOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

blankThe lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

blankVitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

blankSpecial Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest...

  1. Join the following line to the original line of code whenever you encounter the ↩ character. []

Build a $199 Turnkey (Green!) Asterisk 1.4 System in Less Than An Hour

blankIt takes a lot to get our attention on the Asterisk® hardware front these days, but this one’s a genuine eyepopper in our book. For $199 (actually $223.89 including shipping and tax), WalMart delivers a brand new Everex Green gPC to your door with a 1.5GHz VIA C7-D Energy Efficient Processor, 512MB of DDR2 533MHz SDRAM, an 80GB, 7200 RPM PATA drive, DVD/CD-RW drive, 10/100 Ethernet adapter, 6 USB ports, keyboard, mouse, speakers, and one year warranty. While the machine ships with Linux preinstalled, we chose to spend 33 minutes installing the latest version of PBX in a Flash which provides CentOS 5, Asterisk 1.4, FreePBX 2.3, and the usual assortment of Linux tools: Apache, SendMail, PHP 5, phpMyAdmin, MySQL 5… and No Bugs! You can order the PC on line at this link, or you may get lucky and find one sitting in your neighborhood WalMart store. Just click on the Find in Store link on the link above. Tiger Direct and zareason.com also have the same unit, and currently it’s at the same price. For other locations, check this thread on the PBX in a Flash Forum. To say Everex can’t make these machines fast enough is really an understatement. All we can suggest is check the web sites daily. They get new shipments regularly, and they sell out just as fast. If you’re unfamiliar with the Everex brand, don’t worry. They’ve been in the PC business for decades, and their machines are built with industry-standard components. And, finally, for those of you that depend upon Asterisk systems for a living, why not build up a few of these babies as spares to have on hand. It’s the cheapest insurance you can buy!

Now that PBX in a Flash has been around for 9 whole weeks, we thought it might be helpful to walk you through the typical installation scenario that we use to bring up new systems. This gets you the latest code, all the patches, and a rock-solid system to begin your Asterisk adventure. What’s the difference in PBX in a Flash and other Asterisk 1.4 aggregations? Well, we’ll let you be the judge. Compare the Help message threads here and then here, and you’ll get the idea. So let’s get started.

Getting Started with PBX in a Flash. Just like all the other offerings, you need to begin by downloading the ISO image for PBX in a Flash (646.96 MB). As new locations for ISO downloads come on line, we will add them to the download list. Just click on the location nearest to you. Once you’ve got the image in hand, use your favorite tool to burn it to a bootable CD. Remember, your hard disk will first be erased by this install.

On the new Everex machine, insert the CD containing the pbxinaflash.iso and then reboot. After reading the initial prompts and warnings, press the Enter key to begin the installation. Or, if you want to first check the media for corruption, type linux mediacheck and then press the <Enter> key. When prompted, be sure to choose the option that erases all existing partitions and uses the default partition layout. Then choose your time zone and leave the UTC system clock option unchecked. Next choose a root password for your new system. Make it secure, and write it down. We plan to use this password for virtually everything on your new system. The install process begins. This includes MySQL, Apache, PHP, CUPS, Samba, WebMin, Subversion, SendMail, Yum, Bluetooth support, SSL, Perl, Python, the kernel development package, and much more. In about 15 minutes depending upon the speed of your PC, the install will pause to allow you to eject the CD. Click the Proceed button to continue after removing the CD. You must have an Internet connection now to complete the install so plug in a 10/100 cable if you haven’t done so already. After reboot, the system will start up with CentOS 5, then download and install Asterisk and FreePBX, and search for the necessary installation script and payload file on pbxinaflash.net. Just to repeat, If you don’t have Internet connectivity, then the installation cannot complete. When the installation finishes, reboot your system and log in as root. The IP address of your PBX in a Flash system will be displayed once you log in. If it’s blank, type service network restart after assuring that you have Internet connectivity and access to a DHCP server that hands out IP addresses. Typing ifconfig should display your IP address on the eth0 port. Write it down. We’ll need it in a minute.

Now that you’ve logged in as root, you should see the IP address displayed with the following command prompt: root@pbx:~/. If instead you see bash displayed as the command prompt and it’s not green, then the installation has not completed successfully. This is probably due to network problems but also could be caused by the time being set incorrectly on your server. You can’t compile Asterisk if the time on your computer is a date in the past! For this glitch you have to start over. If it’s a network issue, fix it and then reboot and watch for the eth0 connection to complete. Assuming it doesn’t fail the second time around, the installation will continue. Likewise, if you do not have DHCP on your network, the installation will fail because the PBX will not be given an IP address. Simply type netconfig, fill in the blanks and reboot. The install will recommence.

Required Steps to Complete the Install. There are three important things to do to complete the installation. First, from the command prompt, run genzaptelconf. This sets up your ZAP hardware as well as a timing source for conferencing. If you’re using additional hardware for your Asterisk system, we recomend removing the 56K modem when you install the cards. This will help avoid interrupt conflicts. Second, decide how to handle the IP address for your PBX in a Flash server. The default is DHCP, but you don’t want the IP address of your PBX changing. Phones and phone calls need to know how to find your PBX, and if your internal IP address changes because of DHCP, that’s a problem. You have two choices. Either set your router to always hand out the same DHCP address to your PBX in a Flash server by specifying its MAC address in the reserved IP address table of your router, or run netconfig at the command prompt and assign a permanent IP address to your server. If you experience problems with the process, see this message thread on the forum. The third configuration requirement probably accounts for more beginner problems with Asterisk systems than everything else combined. Read the next section carefully and do it now!

Getting Rid of One-Way Audio. There are some settings you’ll need to add to /etc/asterisk/sip_custom.conf if you want to have reliable, two-way communications with Asterisk: nano -w /etc/asterisk/sip_custom.conf. The entries depend upon whether your Internet connection has a fixed IP address or a DHCP address issued by your provider. In the latter case, you also need to configure your router to support Dynamic DNS (DDNS) using a service such as dyndns.org. If you have a fixed IP address, then enter settings like the following using your actual public IP address and your private IP subnet:

externip=180.12.12.12
localnet=192.168.1.0/255.255.255.0      (NOTE: The first 3 octets need to match your private IP addresses!)

If you have a public address that changes and you’re using DDNS, then the settings would look something like the following:

externhost=myserver.dyndns.org
localnet=192.168.0.0/255.255.255.0      (NOTE: The first 3 octets need to match your private IP addresses!)

Once you’ve made your entries, save the file: Ctrl-X, Y, then Enter. Reload Asterisk: amportal restart. If you assigned a permanent IP address, reboot your server: shutdown -r now.

Getting Your Machine Up to Date. Tom King, one of our lead developers, has gone to great pains to make it easy for you to always have a current system. All you have to do is type a few commands, but you do have to type them. So do it now! After logging in as root, type update-scripts to get the latest PBX in a Flash scripts installed on your system. This doesn’t run them, it merely makes them available for you to run them. Once you complete this step, you can always review the latest scripting options by typing help-pbx. Now run update-fixes to apply the latest patches to your PBX in a Flash system. When it completes, you’re up to date. If you want the latest version of Asterisk, it’s easy! Just run update-source.

Activating Email Delivery of Voicemail Messages. We’ve previously shown how to configure systems to reliably deliver email messages whenever a voicemail arrives unless your ISP happens to block downstream SMTP mail servers. Here’s the link in case you need it. As it happens, you really don’t have to use a real fully-qualified domain name to get this working. So long as the entry (such as pbx.dyndns.org) is inserted in both the /etc/hosts file and /etc/asterisk/vm_general.inc with a matching servermail entry of vm@pbx.dyndns.org (as explained in the link above), your system will reliably send emails to you whenever you get a voicemail if you configure your extensions in freePBX to support this capability. You can, of course, put in real host entries if you prefer. For 90% of the systems around the world, if you just want your server to reliably e-mail you your voicemail messages, make line 3 of /etc/hosts look like this with a tab after 127.0.0.1 and spaces between the domain names:

127.0.0.1     pbx.dyndns.org pbx.local pbx localhost.localdomain localhost

And then make line 6 of /etc/asterisk/vm_general.inc look like the following:

serveremail=voicemail@pbx.dyndns.org

Now issue the following two commands to make the changes take effect:

service network restart
amportal restart

The command "setup-mail" can be used from the Linux prompt to set the fully-qualified domain name (FQDN) of the mail that is sent out from your server. This may help mail to be delivered from the PBX. One of things mail servers do to reduce spam is to do a reverse lookup on where the mail has come from, checking that there is actually a mailserver at the other end. You can only do this if you have set up dynamic DNS or if you have pointed a hostname at your fixed IP address. Once you have done this, and assuming your ISP is cooperative, then you will receive your voicemails via email if you wish (this is set within FreePBX),and your PBX will email you when FreePBX needs an update. You set this feature in FreePBX General Settings.

If your hosting provider blocks downstream SMTP servers to reduce spam, here’s a link on the PBX in a Flash forum to get you squared away.

Setting Passwords and Other Stuff. While logged into your server as root, you can configure many of the ‘lesser’ passwords on your system (i.e. those passwords with less than root privileges) as well as phones, ZAP hardware, and other goodies. The only command you have to remember is help-pbx. Be aware that there are four different usernames and passwords that are enforced in the web interface to your PBX:

maint... to go everywhere
wwwadmin... for users needing FOP and MeetMe access
meetme... for users needing only MeetMe access
FreePBX... default username:password for admin access is admin:admin

There also is an Administration password you can set in the KennonSoft UI that displays when you point a browser to the IP address of your server. Do NOT use the same password here as it is not overly secure.

Configuring WebMin. WebMin is the Swiss Army Knife of Linux. It provides TOTAL access to your system through a web interface. Search Nerd Vittles for webmin if you want more information. Be very careful if you decide to enable it on the public Internet. You do this by opening port 9001 on your router and pointing it to the private IP address of your PBX in a Flash server. Before using WebMin, you need to set up a username and password for access. From the Linux prompt while logged in as root, type the following command where admin is the username you wish to set up and foo is the password you’ve chosen for the admininstrator account. HINT: Don’t use admin and foo as your username and password for WebMin unless you want your server trashed!

/usr/libexec/webmin/changepass.pl /etc/webmin root password

To access WebMin on your private network, go to http://192.168.0.123:9001 where 192.168.0.123 is the private IP address of your PBX in a Flash server. Then type the username and password you assigned above to gain entry. To stop WebMin: /etc/webmin/stop. To start WebMin: /etc/webmin/start. For complete documentation, go here.

Updating and Configuring FreePBX. FreePBX is installed as part of the PBX in a Flash implementation. This incredible, web-based tool provides a complete menu-driven user interface to Asterisk. The entire FreePBX project is a model of how open source development projects ought to work. And having Philippe Lindheimer’s as the Captain of the Ship is just icing on the cake. All it takes to get started with FreePBX is a few minutes of configuration, and you’ll have a functioning Asterisk PBX complete with voicemail, music on hold, call forwarding, and a powerful interactive voice response (IVR) system. There is excellent documentation for FreePBX which you should read at your earliest convenience. It will answer 99% of your questions about how to use and configure FreePBX. For the one percent that is not covered in the Guide, visit the FreePBX Forums which are frequented regularly by the FreePBX developers. Kindly post FreePBX questions on their forum rather than the PBX-in-a-Flash Forum. This helps everybody. Now let’s get started.

NOTE: PBX in a Flash comes with the IPtables firewall enabled on your system. If this causes problems with access to the FreePBX repository (for loading the FreePBX updates below), you can easily (and temporarily) turn off the firewall. Type help-pbx for assistance. Don’t forget to restart the firewall especially if your system has any Internet exposure!

Now move to a PC or Mac and, using your favorite web browser, go to the IP address you deciphered above for your new server. Be aware that FreePBX has a difficult time displaying properly with IE6 and IE7 and regularly blows up with older versions of Safari. Be safe. Use Firefox. From the PBX in a Flash Main Menu in your web browser, click on the Administration link and then click the FreePBX button. The username and password both default to admin. Click Apply Configuration Changes, Continue with Reload, and then Refresh your browser screen. Now click the Module Administration option in the left frame once FreePBX loads. Now click Check for Updates online in the upper right panel. Next, click Download All which will select every module for download and install. The important step here is to move down the list and Deselect Speed Dials and PHPAGI from the download and install options. You may also want to deselect Zork. Once these apps have been deselected, scroll to the bottom of the page and click Process, then Confirm, then Return once the apps are downloaded and installed, then Apply, then Continue with Reload. Now repeat the process once more and do not deselect the two applications, then Process, Confirm, Return, Apply Config Changes, and Continue with Reload. Finally, scroll down the Modules listing until you get to the Maintenance section. Click on each of the following and choose Install: ConfigEdit, Sys Info, and phpMyAdmin. Then click Process, then Confirm, then Return once the apps are downloaded and installed, then Apply, then Continue with Reload. All three of these tools now are installed in the Maintenance section of the Tools tab of FreePBX. One final step, and you’re good to go. An update of FreePBX has been released. Click Check for Updates online. Then choose Download and Upgrade for the Core, FreePBX Framework, and System Dashboard modules. Then click Process, then Confirm, then Return once the apps are downloaded and installed, then Apply, then Continue with Reload. You now have an up-to-date version of FreePBX. You’ll need to repeat the drill every few weeks as new updates are released. This will assure that you have all of the latest and greatest software. To change your Admin password, click on the Setup tab in the left frame, then click Administrators, then Admin in the far right column, enter a new password, and click Submit Changes, Apply Configuration Changes, and Continue with reload. We’re going to be repeating this process a number of times in the next section so… when instructed to Save Your Changes, that means "click Submit Changes, Apply Configuration Changes, and Continue with reload."

Choosing Internet Telephony Hosting Providers for Your System. Before you can place calls to users outside your system or to receive incoming calls, you’ll need at least one provider (each) for your incoming phone number (DID) and incoming calls as well as a provider for your outbound calls (terminations). We have a list of some of our favorites here, and there are many, many others. Within a few weeks, we also will have some providers that will offer you some free minutes for trying their service with PBX in a Flash. You basically have two choices with most providers. You can either pay as you go or sign up for an all-you-can-eat plan. Most of the latter plans also have caps on minutes, and there are none of the latter plans for business service. In the U.S. market, the going rate for pay as you go service is about 1.5¢ per minute rounded to the tenth of a minute. The best deal on DIDs is from les.net. They charge $3.99 a month for a DID with unlimited, free incoming calls. We will have a free offer from les.net for PBX in a Flash users shortly. Another new provider with excellent service and per minute rates is Aretta Communications out of Atlanta. They also have agreed to co-host our ISO downloads for the U.S. East Coast. Thanks, Aretta! WARNING: Before you sign up for any all-you-can-eat plan, do some reading about the service providers. Some of them are real scam artists with backbilling and all sorts of unconscionable restrictions. You need to be careful. Our cardinal rule in the VoIP Wild West is never, ever entrust your entire PBX to a single hosting provider. As Forrest Gump would say, "Stuff happens!" And life’s too short to have dead telephones, even if it’s a rarity.

Setting Up FreePBX to Make Your First Call. There are four components in FreePBX that need to be configured before you can place a call or receive one from outside your PBX in a Flash system. So here’s FreePBX for Dummies in less than 50 words. You need to configure Trunks, Extensions, Outbound Routes, and Inbound Routes. Trunks are hosting provider specifications that get calls delivered to and transported from your PBX to the rest of the world. Extensions are internal numbers on your PBX that connect your PBX to telephone hardware or softphones. Inbound Routes specify what should be done with calls coming in on a Trunk. Outbound Routes specify what should be done with calls going out to a Trunk. Everything else is basically fluff.

Trunks. When you sign up with most of the better ITHP’s that support Asterisk, they will provide documentation on how to connect their service with your Asterisk system. If they have a trixbox tutorial, use that since it also used FreePBX as the web front end to Asterisk. Here’s an example from les.net. And here’s the Vitelity support page although you will need to set up an account before you can access it. We also have covered the setups for a number of providers in previous articles. Just search the Nerd Vittles site for the name of the provider you wish to use. You’ll also find many Trunk setups in the trixbox Trunk Forum. Once you find the setup for your provider, add it in FreePBX by going to Setup, Trunks, Add SIP Trunk. Our AxVoice setup (which is all entered in the Outgoing section with a label of axvoice) looks like this with a Registration String of yourusername:yourpassword@sip.axvoice.com:

allow=ulaw
authname=yourusername
canreinvite=no
context=all-incoming
defaultip=sip.axvoice.com
disallow=all
dtmfmode=inband
fromdomain=sip.axvoice.com
fromuser=yourusername
host=sip.axvoice.com
insecure=very
nat=yes
secret=yourpassword
type=friend
user=phone
username=yourusername

And our Vitelity Outbound Trunk looks like the following (labeled vitel-outbound) with no registration string:

allow=ulaw&gsm
canreinvite=no
context=from-pstn
disallow=all
fromuser=yourusername
host=outbound1.vitelity.net
secret=yourpassword
sendrpid=yes
trustrpid=yes
type=friend
username=yourusername

Extensions. Now let’s set up a couple of Extensions to get you started. A good rule of thumb for systems with less than 50 extensions is to reserve the IP addresses from 192.x.x.201 to 192.x.x.250 for your phones. Then you can create extension numbers in FreePBX to match those IP addresses. This makes it easy to identify which phone on your system goes with which IP address and makes it easy for end-users to access the phone’s GUI to add bells and whistles. To create extension 201 (don’t start with 200), click Setup, Extensions, Generic SIP Device, Submit. Then fill in the following blanks leaving the defaults in the other fields for the time being.

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

Now create several more extensions using the template above: 202, 203, 204, and 205 would be a good start. Keep the passwords simple, but secure! You’ll need them whenever you configure your phone instruments.

Outbound Routes. The idea behind multiple outbound routes is to save money. Some providers are cheaper to some places than others. We’re going to skip that tutorial today. You can search the site for lots of information on choosing providers. Assuming you have only one or two for starters, let’s just set up a default outbound route for all your calls. Using your web browser, access FreePBX on your server and click Setup, Outbound Routes. Enter a route name of Everything. Enter the dial patterns for your outbound calls. In the U.S., you’d enter something like the following:

1NXXNXXXXXX
NXXNXXXXXX

Click on the Trunk Sequence pull-down and choose your providers in the order you’d like them to be used for outbound calls.Click Submit Changes and then save your changes. Note that a second choice in trunk sequence only gets used if the calls fails to go through using your first choice. You’ll notice there’s already a 9_outside route which we don’t need. Click on it and then choose Delete Route 9_outside. Save your changes.

Inbound Routes. We’re also going to abbreviate the inbound routes tutorial just to get you going quickly today. The idea here is that you can have multiple DIDs (phone numbers) that get routed to different extensions or ring groups or departments. For today, we recommend you first build a Ring Group with all of the extension numbers you have created. Once you’ve done that, choose Inbound Routes, leave all of the settings at their default values and move to the Set Destination section and choose your Ring Group as the destination. Now click Submit and save your changes. That will set up a default incoming route for your calls. As you add bells and whistles to your system, you can move the Default Route down the list of priorities so that it only catches calls that aren’t processed with other inbound routing rules.

General Settings. Last, but not least, we need to enter an email address for you so that you are notified when new FreePBX updates are released. Scroll to the bottom of the General Settings screen after selecting it from the left panel. Plug in your email address, click Submit, and save your changes. Done!

Tom King now has put together a detailed tutorial complete with screenshots to get you started with PBX in a Flash. If you are installation-challenged, have a look at the pretty pictures.

Adding Plain Old Phones. Before your new PBX will be of much use, you’re going to need something to make and receive calls, i.e. a telephone. For today, you’ve got several choices: a POTS phone, a softphone, or a SIP phone. Option #1 and the best home solution is to use a Plain Old Telephone or your favorite cordless phone set (with 8-10 extensions) if you purchase a little device (the size of a pack if cigs) known as a Sipura SPA-1001. It’s under $60. Be sure you specify that you want an unlocked device, meaning it doesn’t force you to use a particular service provider. Once you get it, plug the SPA-1001 into your LAN, and then plug your phone instrument into the SPA-1001. Your router will hand out a private IP address for the SPA-1001 to talk on your network. You’ll need the IP address of the SPA-1001 in order to configure it to work with Asterisk. After you connect the device to your network and a phone to the device, pick up the phone and dial ****. At the voice prompt, dial 110#. The Sipura will tell you its DHCP-assigned IP address. Write it down and then access the configuration utility by pointing your web browser to that IP address.

Once the configuration utility displays in your web browser, click Admin Login and then Advanced in the upper right corner of the web page. When the page reloads, click the Line1 tab. Scroll down the screen to the Proxy field in the Proxy and Registration section of the form. Type in the private IP address of your Asterisk system which you wrote down previously. Be sure the Register field is set to Yes and then move to the Subscriber Information section of the form. Assuming your extensions were set up starting with 201, do the following. Enter House Phone as the Display Name. Enter 201 as the User ID. Enter 1234 as the Password, and set Use Auth ID to No. Click the Submit All Changes button and wait for your Sipura to reset. In the Line 1 Status section of the Info tab, your device should show that it’s Registered. You’re done. Pick up the phone and dial 1234# to test it out.

Downloading a Free Softphone. Unless you already have an IP phone, the easiest way to get started and make sure everything is working is to install an IP softphone. You can download a softphone for Windows, Mac, or Linux from CounterPath. Or download the pulver.Communicator or the snom 360 Softphone which is a replica of perhaps the best IP phone on the planet. Here’s another great SIP/IAX softphone for all platforms that’s great, too, and it requires no installation: Zoiper 2.0 (formerly IDEfisk). All are free! Just install and then configure with the IP address of your PBX in a Flash server. For username and password, use one of the extension numbers and passwords which you set up with freePBX. Once you make a few test calls, don’t waste any more time. Buy a decent SIP telephone. We think the best value in the marketplace with excellent build quality and feature set (but probably not the best sound quality) is the $79 GrandStream GXP-2000. It has support for four lines, speaks CallerID numbers, has a lighted display, and can be configured for autoanswer with a great speakerphone. Some other great choices are the Aastra 9133i and the Siemans Cordless Dect phone. Do some reading before you buy. The Voxilla forums are a good place to start.

A Word About Ports. For the techies out there that want "the rest of the story" to properly configure firewalls, here’s a list of the ports available and used by PBX in a Flash:

TCP 80 - HTTP
TCP 9080 - Duplicate HTTP
TCP 22 - SSH
TCP 9022 - Duplicate SSH
TCP 9001 - WebMin
UDP 10000-20000 - RTP
UDP 5004-5082 - SIP
UDP 4569 - IAX2
UDP 2727 - Media Gateway

A2Billing Installation. Our first example of how we plan to build up PBX in a Flash systems is the installation script for A2Billing. If you want A2Billing installed on your system, then log in as root and type install-a2billing. If you don’t want A2Billing, then you don’t download or run the script. When you return to the main web page for your server after installing A2Billing, you will have two new links for A2Billing customers and A2Billing admin. You will have to install the callback funtionality manually from the docs supplied in the install. A2Billing was created by Areski, who some of you may know was responsible for Web MeetMe, ConfigEdit, and the CDR reports included with FreePBX. A2Billing is sufficiently comprehensive that it warrants an article on its own, so we will save that for another day. Some of the projects we will be looking into are how to pass calls from FreePBX to A2Billing for least-cost routing, departmental billing services, building a calling card server, and a VoIP termination platform. Then you can change your name to Ma Bell and start selling minutes to all the people for whom you have installed PBX-in-a-Flash. If you can’t wait, visit asterisk2billing.org.

Where To Go From Here. Our new script repository is now up and running at pbxinaflash.org. Tom King, the ultimate scripting guru is managing that site. So check it often. And now that PBX in a Flash 1.1 is out the door, we’ve been chomping at the bit to get all of our Nerd Vittles Goodies ported over. If you want to try them for yourself, seven are ready today at this link, and each installs in under 15 seconds: AsteriDex, Yahoo News Headlines, Weather by Airport Code, Weather by Zip Code, Worldwide Weather Forecasts, Telephone Reminders, and MailCall for Asterisk. Complete documentation for each application also is provided at the link above. And, if you still have a DBT-120 Bluetooth adapter, you’ll be happy to learn that it works out-of-the-box with PBX in a Flash on your new Everex Green PC. Dust off our recent article on Proximity Detection, and you should be in business in under 10 minutes.

For Those on the Bleeding Edge. Well, you heard it here first. As you may know, the new Asterisk 1.6 beta was released late last week on the heels of the FreePBX 2.4 beta which has been reworked to support it. Do you need to pull your hair out for days or wait months for a turnkey build? Well, no. You can download the new PBX in a Flash 1.6 Install Script today. Just don’t expect any tech support or assistance from the PBX in a Flash development team. Your dialogue on this project needs to be directly with the Asterisk 1.6 development team. What we are providing is a turnkey solution for those that are eager to experiment. Enjoy!


blankFreePBX Training Almost Sold Out! We’re excited about the upcoming FreePBX Training Seminar, and today we want to remind the foot-draggers that you’ve almost missed the boat. And, yes, in addition to some fantastic training and the fine cuisine of Charleston, you’re going to be treated to some once-in-a-lifetime hardware deals on the very finest Asterisk-compatible hardware cards and servers for your business. So sign up today and join the fun. This will be the hands-down very best Asterisk and FreePBX training course that money can buy.

This is a DON’T MISS opportunity to learn everything you ever wanted to know about FreePBX, Asterisk, and Linux. The course will cover IVRs, ACDs, IRQs, E911, and the rest of the alphabet as well as routing, trunking, dialplan integration, remote office configuration, echo cancellation, TDM hardware, gateways, IP phones. It’s a very full, three-day course with a half day devoted to branding and selling Asterisk systems. The seminar is being held at one of Charleston’s premier hotels, the Embassy Suites Historic Charleston, with gorgeous suites, swimming pool and exercise room, free WiFi, free breakfasts, and free cocktails every evening. There also will be evening sessions to sit down one-on-one with the FreePBX and PBX in a Flash developers with ample assistance from the quintessential Asterisk development tools: beer and whiskey!


Some Recent Nerd Vittles Articles of Interest…