Home » Technology » Telephony (Page 72)

Category Archives: Telephony

The Most Versatile VoIP Provider: FREE PORTING

Adding Post-Dial Processing to Asterisk and FreePBX Dialplans

Last week we introduced a couple of new free calling options for Asterisk®: ENUM and Gizmo5's Backdoor Dialing. But one of the limitations of the Gizmo5 service in particular was the need for a 0101 prefix in order to trigger a free call as opposed to a pay per minute call to the same number. This highlighted a pretty serious limitation in the way FreePBX processes most outbound calls. As we indicated, the process goes something like this. After a caller dials a number, FreePBX searches through its Outbound Routes (from top to bottom) looking for a match on the dial string. Once it finds one, FreePBX then initiates calls beginning with the first trunk in the trunk priorities list for that outbound route. If the call is completed, no further call processing takes place. And a completed call includes a call that is either answered or rings busy. If a call is not completed, FreePBX continues to drop down the available trunks list and repeats the process until a call is either completed or the trunk list is exhausted. The one exception to this scenario was support for ENUM. In that situation, a lookup occurs after a call is dialed to see if it can be placed as a free SIP call. We'd like to do the same thing with Gizmo5's Backdoor Dialing. What we want to do is query the Gizmo5 database to determine whether a number to be called is a free call. If it is, then we want to modify the route for processing the outbound call to take advantage of Gizmo5's free calling option. And we'll also need to change the phone number by adding a 0101 prefix.

Since our last column, another serious limitation in FreePBX post-call processing was mentioned on the PBX in a Flash Forums. With a number of commercial PBXs, it's possible to specify post-dial processing for emergency calls. For example, in an office environment, if an employee dialed 911, it would be helpful to alert a receptionist in some way so that immediate first aid could be attempted and also to give the receptionist a heads up so that he or she could direct emergency responders to the appropriate location in a building. As written, FreePBX doesn't provide an easy way to handle this.

So our objective today is to provide a couple applications which address these limitations. And the apps also will document a methodology for overcoming other post-dial processing issues which may arise using the existing FreePBX framework.

The trick to adding today's hooks into the Asterisk dialplan is to understand that Asterisk loads identically named dialplan contexts only once. Taking advantage of this, FreePBX provides a mechanism for users to insert custom code to replace default FreePBX contexts. All of these configuration files are stored in /etc/asterisk. For today, the context we want to modify is [macro-dialout-trunk]. This is the FreePBX macro that does the heavy lifting once a call has been placed and a trunk route has been selected to handle the call. With FreePBX 2.3, the macro is in extensions.conf. In FreePBX 2.4 and 2.5, the context is in extensions_additional.conf. In both cases, what we want to do is copy the entire contents of the existing context into the bottom of extensions_override_freepbx.conf. If you're using an editor to cut-and-paste the code, be sure you get the code that is located outside the left and right margins of your editor. And the context ends on the line before the next context begins. In the case of FreePBX 2.3, the next context is [macro-agent-add]. In the case of FreePBX 2.4, the next context is [macro-dialout-dundi]. And, in 2.4, there is now a comment which indicates where each context ends: ; end of [macro-dialout-trunk].

What we want to do is insert a line or two of custom code in this context which you've copied into extensions_override_freepbx.conf. The purpose is to run our custom code after the number to dial and trunk ID have been passed to this macro. Then, in the case of the Gizmo5 application, we'll run out to the Internet to determine if this call should be handled as a free call. If so, we'll change the trunk ID number to match your Gizmo5 trunk, and we'll change the number to dial by prefixing the existing number with 0101. The only gotcha with the Gizmo5 Backdoor Dialing is that every number must be tested at least once by someone (not necessarily you) in order to populate the Gizmo5 free calling database. You can check as many numbers as you like at this link. In the case of our 911 emergency application, we'll check to see if the number being dialed is 911. If so, we'll send an email or text message to an address that you define with an alert that extension 1234 just placed a call for emergency assistance to 911.

If you're using FreePBX 2.3, the custom code below should be inserted after the third "exten" line in the context, i.e. after the following line of code:

exten => s,n,Set(ROUTE_PASSWD=${ARG3})

If you're using FreePBX 2.4, the custom code below should be inserted after the first "exten" line, i.e. after the following code:

exten => s,1,Set(DIAL_TRUNK=${ARG1})

And the code to be inserted looks like this for Asterisk 1.4:

exten => s,n,AGI(nv-outbound.php|${ARG2}|${ARG1})
exten => s,n,AGI(nv-gizmo.php|${ARG2}|${ARG1})

For Asterisk 1.6, it should look like this:

exten => s,n,AGI(nv-outbound.php,${ARG2},${ARG1})
exten => s,n,AGI(nv-gizmo.php,${ARG2},${ARG1})

Now we need to add a couple of PHP scripts to your system and set a few configuration options, and you'll be ready to go. While logged into your server as root, issue the following commands:

cd /var/lib/asterisk/agi-bin
wget http://pbxinaflash.net/source/gizmo/nv-gizmo.zip
unzip nv-gizmo.zip
rm nv-gizmo.zip
wget http://pbxinaflash.net/source/gizmo/nv-outbound.zip
unzip nv-outbound.zip
rm nv-outbound.zip
chown asterisk:asterisk *.php
chmod +x *.php
asterisk -rx "dialplan reload"
grep OUT_ /etc/asterisk/extensions_add* | awk '/ = / { print $0 }'

The last line of code above is used to decipher the trunk numbers associated with each of your trunks. What we need to know is the trunk number for the Gizmo5 trunk that you set up in last week's tutorial. Write it down and then edit nv-gizmo.php: nano -w nv-gizmo.php. Look down the screen about 5 or 6 lines for the line that reads $GIZMO_TRUNK = "21" ; and replace 21 with the number you wrote down for your actual Gizmo5 trunk. In the next two lines, insert your actual Gizmo5 username and password between the quotation marks. Don't change anything else. Save your changes: Ctrl-X, Y, and then press the Enter key.

With the other application, nv-outbound.php, we need to be sure it's working with your phone system before you actually need it. And we don't place test calls to 911. So here's the drill. Edit the file: nano -w nv-outbound.php and insert your email address or text message address in the $email variable between the quotes. Then move to the next line and insert a telephone number with the area code that you can dial from a phone on your system to test that the notification is working. For example, put in your cell phone number. Once you save your changes, pick up a phone on your system and call your cellphone. You should receive an email notification within a few seconds. Once it's working, edit the application again and change the $number2monitor to "911" and you're all set. Enjoy!


VPN in a Flash Update! We've had over 100 reservations for our new VPN in a Flash system. 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.

BOGO 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.

The 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.

VitalPBX 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!
 

Special 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...

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

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.

Add 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.

BOGO 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.

The 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.

VitalPBX 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!
 

Special 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…

VPN in a Flash: The Real Future of Internet Telephony

Whether it’s a satellite medical office, or a remote construction site, or a regional branch of your favorite bank, or a temporary broadcast studio in Beijing, or a home office or hotel room of an architect, lawyer, or candlestick maker, the little black box on the left is poised to revolutionize the way we all do business… securely. All you need is an Internet connection. Plug it in, turn it on, wait for the LCD to display the machine’s IP address, make a quick change of the IP address on your cordless or desktop phones to match the display, and presto. Instant telephony… to anywhere, from anywhere in the world! Total setup time until you make your first call: about a minute. And the system supports 25 extensions and 10 simultaneous IP calls assuming you have available bandwidth.

When the LCD illuminates and the little heart (lower left) starts blinking, you’ve also got a secure and free communications system back to the mothership through an encrypted VPN tunnel for all your calls. Your existing commercial phone numbers and extensions still work just as they always have except now they also ring in your hotel room. And when you move to a different town tomorrow night, nothing changes except your IP address. Your phones continue to ring just as if you were sitting in your home office. There’s one major difference with VPN in a Flash. You won’t be getting a phone bill or an astronomical installation charge from Ma Bell or Comcast. It really is plug-and-play.

So where can you get one? Well, at the moment, it’s in our breakfast room. And tomorrow it will be taking a last trip to the beach house. And next week, it’ll be at a show in Atlanta. But soon… you can order one from your friends at PBX in a Flash. We’re working very hard to keep the price under $500. And when you consider the cost of a night on the town, that’s pretty sweet. The current IP-only version of this super-quiet machine includes a travel-friendly, solid state drive instead of a hard disk, an Intel Atom motherboard with a gig of RAM, and a power brick. And on the software side, you get the full-blown CentOS 5.2 Linux operating system with the latest and greatest version of PBX in a Flash including Asterisk® and FreePBX. The system also includes a preconfigured firewall and VPN server. Customizations can be made using any web browser on the LAN… once you know your IP address. And, of course, you’ll get the entire suite of PBX in a Flash utilities: telephone reminders and wakeup calls, weather, news, and tide reports by phone, your complete Rolodex-like talking directory to make calls, and the rest of the Nerd Vittles goodie bag. In addition, this unit is an all-purpose fax machine. Inbound faxes are delivered to your email address or iPhone, and outbound faxes can be generated and sent using almost any PDF document. Simply stated, this hardware device is the PBX in a Flash interpretation of what an Office in a Box really should be!

If you’d like to get in the queue and place a reservation for a system, now’s the time. While it’s not likely to match the iPhone stampede, there undoubtedly will be delivery delays based upon our market surveys. 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. Stay tuned!


 

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.

BOGO 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.

The 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.

VitalPBX 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!
 

Special 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

It’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.

BOGO 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.

The 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.

VitalPBX 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!
 

Special 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…

Add SUSHI to Your Asterisk Server for Rock-Solid, Secure VoIP Telephony

When we began the PBX in a Flash project last November, one of our primary goals was to provide a LAMP (Linux, Apache, MySQL, PHP) and Asterisk®-based, open source telephony server which could be easily upgraded without starting all over each time a new release of CentOS, or Asterisk, or FreePBX hit the street. We think we got it about right with our three utility programs: update-scripts, update-fixes, and update-source.

Update-scripts provides a refresh of the current set of utility scripts on your server. Update-fixes patches every known bug in all of the applications on your server. And update-source does just that. It brings the Asterisk source code up to date and optionally does the same thing with the CentOS operating system.

In keeping with our "No Tricks" pledge, all three applications rely upon "pull" technology which means you run the apps whenever you decide that you wish to update your system. And our latest Kennonsoft User Interface provides an on-screen RSS Feed to alert you in the event of a serious security issue, something the trixbox team could/should have put to good use to address a serious root exploit on virtually all trixbox systems just last week.

As you can see from the screenshot to the left, PBX in a Flash 1.3 is just around the corner with support for lots of new hardware including Intel’s new Atom motherboard which looks to be a real winner as a platform for VoIP telephony in the small business space.

What we wanted to do today is lay out our new SUSHI (Software Update Service – Hyperlinked, Interactive) program for some feedback. Previously, we have written about the financial dilemma that plagues most open source projects. As much as we enjoy working for less than 5¢ per hour, there comes a time when a modest pay raise is necessary. And that certainly applies to my two partners, Joe Roper and Tom King, who have tirelessly worked to make PBX in a Flash the very best, most flexible VoIP telephony server out there.

So here’s the deal. PBX in a Flash is and will always be free, current, and a GPL2-compliant open source project. When you download and install PBX in a Flash from the ISO, you typically get a system which is within days of being up to date with the current version of Asterisk 1.4 or 1.6 in either 32-bit or 64-bit flavors. No one else provides that flexibility much less a weekly code refresh. None of that will change!

Beginning later this year, we will introduce SUSHI, a completely optional, commercial Software Update Service incorporating update-scripts, update-fixes, and update-source for those that wish to subscribe. Simply stated, a lot of work and technical expertise goes into these three applications, and we believe it is only fair that people that continue to take advantage of the Software Update Service should contribute to the project and reimburse the development team for the one component that really sets our existing installs apart from all of the other aggregations. It also brings some much needed revenue into the PBX in a Flash project to fund future research and development.

Here’s the plan I’d like to propose to my partners. For those wishing to use the SUSHI applications, there would be an annual license fee of $30 per server. That’s $2.50 a month, about the same as a cup of coffee at Starbucks. Of that $30 annual fee, the PBX in a Flash Development Team would retain half to meet project needs. The balance of the money would be evenly split between the CentOS, Asterisk, and FreePBX projects. Stated another way, $15 would go to the PBX in a Flash Development Team, and we would contribute on your behalf $5 each to the CentOS, Asterisk, and FreePBX projects for every server signed up for the Software Update Service.

We’d love some feedback from the user community before we move forward, but we do plan to implement something later this year. So save your breath if your current mindset is that everything should always be free. When groceries, gas, housing, and automobiles are all free, we’re willing to reconsider. In the meantime, help us make this as equitable as we can possibly make it. Here’s a link to the discussion on the PBX in a Flash Forum. Feel free to register and add your $.02. Or you can post a comment here.


Today’s Best Read: Open Source VoIP: Asterisk or FreeSwitch by David Greenfield


 

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.

BOGO 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.

The 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.

VitalPBX 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!
 

Special 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

For 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.

Design 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.

BOGO 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.

The 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.

VitalPBX 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!
 

Special 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

If 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.

BOGO 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.

The 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.

VitalPBX 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!
 

Special 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...

Roll Tide: Let Allison and Asterisk Plan Your Next Surfin’ Safari

The one thing that Mark Spencer and I totally agree upon is that neither one of us shouts "Roll Tide" very often. So... my apologies to all of my Auburn friends for the headline. I didn't really mean it! We'll have more to say about Digium®'s Pit Bull approach to software development in coming weeks. But today we're celebrating the arrival of summer and Joe Roper's safe passage through the Straits of Gibraltar. We'll leave Asterisk® politics for a gloomy, rainy day. From the Never to Be Outdone Department: If you need your weekly fix of The Worst of Asterisk, then here's a link to the FreePBX news item describing Fonality's latest shenanigans. You might want to start with the initial revelations and then hold your nose while reading the follow-up responses. Pretty sad stuff for an open source project or any other business for that matter. The Silver Lining: Could there be a better mousetrap looming on the horizon? Stay tuned!

Introducing xTide for Asterisk. Whether you're a beach bum or would just love to get a current surf report from the nearest telephone, then today's your lucky day! With xTide for Asterisk, you get the latest text-to-speech (TTS) tide predictions as well as solar and lunar forecasts for any port of call in the United States. To use the application, just dial T-I-D-E from any phone connected to your PBX in a Flash system and Allison or Egor will tell you everything you ever wanted to know about sunrise, sunset, moonrise, moonset, and today's and tomorrow's high and low tide predictions for almost any oceanfront location. And we'll also show you how to connect the system up to a phone number of your choice so that tide reports are as close as your cellphone. Of course, retrieving reports with Flite and Egor is free. Cepstral with Allison will set you back a meager $25. If you want a quick demo, dial 425-906-5918. Thanks, IPKall.

Overview. The xTide for Asterisk application is a little different than some of our other text-to-speech applications which rely upon servers hosted by other folks. With xTide for Asterisk, we're actually going to install the full xTide app (about 40MB of code) on your PBX in a Flash server. As configured, it's a very well-behaved application that uses virtually no system resources except when you retrieve a report. And, remember, xTide should not be used for navigation or anything else that really matters! It's a statistical application, not a weather expert nor a rocket scientist. But special thanks anyway to David Flater for his continuing development of xTide! With xTide for Asterisk, you can generate text-to-speech reports over the phone, and you also can access David's complete xTide application by pointing your web browser to the dedicated xTide web server to retrieve anything you ever wanted to know about solar, lunar, and tide forecasts for almost anywhere in the United States. There's even an x-Windows interface if you've installed it on your system. The complete list of locations supported by xTide is available here or you can retrieve the list from your own xTide server: http://serverIPaddress:88/index.html. And, yes, for our foreign friends, there's a worldwide version of the harmonics files which is available for non-commercial use only. You'll need to manually install it if you want to use it. Source RPMs also are available if you want them.

Prerequisites. We've tested this installation with PBX in a Flash 1.1 and 1.2 so it's a one-minute drill if you've already got one of those systems in place. You can download the current version of PBX in a Flash here. And complete documentation is available here. With other Asterisk-based aggregations, there may be some additional wrinkles, but we'll leave those for the pioneers to iron out. For PBX in a Flash users, you simply download our script, mark it as executable, and run it. A minute later, you're ready to begin your surfing career.

Setup Tips. Once you complete the installation, you'll have three separate xTide applications available. xtide is actually the x-Windows interface which we're not going to be using because of the x-Windows overhead on your server. tide is the command-line equivalent which we'll be using to create TTS reports for Asterisk. You also can use it interactively, and we'll show you how in a minute. There's also a a web server dedicated to serving up all sorts of xTide reports which can be retrieved with your favorite browser. While it is activated after the install completes, it won't automatically restart when you reboot your server unless you set it up to do so. We did this to minimize the load on your system if you only plan to retrieve reports using the TTS telephony interface. The only other setup step involves choosing your default location for the reports, and there are pages of locations from which to choose. We'll walk you through the location setup process momentarily, but first, let's install the application.

Installation on PBX in a Flash Systems. We've tested this installation on dedicated PBX in a Flash 1.1 and 1.2 servers. It does not run on hosted servers without satisfying additional dependencies which we'll leave to the hosted system providers to work out. To install, log into your server as root and issue the following commands:

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

If you plan to use the application with the Cepstral TTS engine, choose option 2 when prompted. Note: We recommend you first install Cepstral before proceeding. If you're not using Cepstral, choose option 1 for the default Flite TTS engine. But keep in mind that Flite does not work with Asterisk 1.6-beta while Cepstral does... if you follow our tutorial.

Choosing a Default Location. Tides, sunrise, and sunset obviously differ depending upon your coastal location. As installed, you'll get the information for Pawleys Island, South Carolina which is the site of our webcam. If you'd like to try out our system, just dial our free IPKall number for the Pawleys Island xTide report: 425-906-5918. To use another location on your own system, you first need to decipher whether it's in the list of supported locations. Once you have your location, test it using the following command: tide -l "sitename". For example, tide -l "pawleys" returns the tide information in the default setup. Once you get a report for the desired location, edit /etc/asterisk/xtide.conf and replace "pawleys" with the SITE location you've chosen. Then add a descriptive SITENAME. Do NOT add any blank lines to the config file, or nothing will work. Save your changes and run a simple test by dialing T-I-D-E from a telephone connected to your server.

Using the Web Interface. To use the web interface on your private network, go to the following link using the actual IP address of your Asterisk system: http://serverIPaddress:88/. Complete documentation and a FAQ are available. To access the web interface from the Internet, you'll need to redirect TCP port 88 to the private IP address of your Asterisk server. When you reboot your server, the dedicated web server for xTide will not start automatically. We set it up this way for those that don't want the overhead of a third web server. Remember Apache and WebMin already are running. If you don't plan to use the xTide web interface, then you're all set. If you want to permanently enable xttpd, then log into your server as root and issue the following command:

chkconfig --levels 2345 xttpd on

Creating an External Phone Number for xTide. In a previous column, we walked you through setting up a SIP proxy with PBX in a Flash. To expose xTide for Asterisk to the phones of the outside world, the cheapest approach is a free phone number from IPKall. Before obtaining one, you'll need a dyndns.org fully-qualified domain name that points to the public IP address of your server. Then set up your SIP proxy for xtide and create an Inbound Route in FreePBX for xtide that routes incoming calls to custom-xtide,s,1. Now insert the following code at the bottom of /etc/asterisk/extensions_custom.conf and reload your dialplan. Here's the code:

[custom-xtide]
exten => s,1,Answer
exten => s,2,Wait(1)
exten => s,3,Dial(local/8433@from-internal)
exten => s,4,Hangup

Now sign up for your phone number at IPKall and use a valid email address. Otherwise, you'll never receive your phone number! Your IPKall entries should look something like this:

Account Type: SIP
SIP Phone Number: xtide
SIP Proxy: yourdomain.dyndns.org
Email Address: yourname@gmail.com
Password: yourpassword
Seconds to Ring: 120

Programmer's Corner. Except for a few lines of dialplan code, xTide for Asterisk makes exclusive use of bash commands to manipulate the output of tide and turn it into speech. The results are stored in /tmp so Linux will handle file cleanup automatically. The application that does the heavy lifting is /var/lib/asterisk/agi-bin/xtide. You'll also find xtide.flite and xtide.cepstral in the same directory. Should you wish to change text-to-speech engines, just copy the appropriate file over to xtide. For the whiz kids, we're always open to suggestions on how to improve the code which makes extensive use of eval, sed, and cut to get the proper results from the xtide output. No need to elaborate on our crappy bash programming skills. We already know that!

One piece of code we've included to reduce the overhead on Cepstral usage is a test for the timestamp of /tmp/xtide.txt. If it matches today's date, then we simply skip processing of a new xtide request and play the previously generated xtide.wav file. This might matter if you decide to change TTS engines in the middle of the day. To force a regeneration of the xtide.wav file, just rm -f /tmp/xtide.* after making a change in your xTide TTS engine. One final tip... if you generate your own TTS files using tide, don't use our xtide.* and other temporary file names (which start with the name of your chosen port city) while logged in as root, or this application will be unable to delete or overwrite them. HINT: su asterisk before playing. Enjoy!

Other TTS Applications for Asterisk. xTide for Asterisk is the latest in our growing collection of text-to-speech applications for Asterisk:

  • AsteriDex RoboDialer
  • Asterisk Weather Station by Airport Code
  • Asterisk Weather Station by Zip Code
  • Worldwide Weather Forecasts
  • MailCall for Asterisk
  • NewsClips for Asterisk
  • TeleYapper
  • Telephone Reminders for Asterisk
  • CallWho for AsteriDex (beta)

To download the latest versions, visit our Best of Nerd Vittles site.


 

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.

BOGO 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.

The 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.

VitalPBX 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!
 

Special 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...