Home » Posts tagged 'IncrediblePBX' (Page 34)

Tag Archives: IncrediblePBX

The Most Versatile VoIP Provider: FREE PORTING

2016, Celebrating The Preakness: CallerID Superfecta Rides Again with XiVO


If you missed The Preakness Saturday, another Triple Crown bit the dust… or the mud in this case. But, if you had the winning Superfecta ticket, you made a $316 profit on your $1 bet. For the rest of us, there’s still a Superfecta win to celebrate, and this one’s free. We’ve begun porting CallerID Superfecta to the XiVO platform and today we’ll share that code with you together with lots of other goodies in our third roundup of Incredible PBX add-ons for the XiVO PBX. If you’re just joining the party, start with the first and second articles on XiVO, and then you’ll be ready to roll up your sleeves for Chapter 3.

UPDATE: The first release of Incredible PBX for XiVO is now available here. Please consider this article superseded by the new release.

Installing CallerID Superfecta for XiVO

As we mentioned in April, it’s always nice to see your baby grow up. Nearly a decade ago, we introduced an AGI script for Asterisk@Home known as CallerID Trifecta for FreePBX® 2.2.0. As sources of CNAM lookups expanded, a number of other individuals contributed code to support those lookups. When we added a fourth CNAM lookup source, the original application morphed into CallerID Superfecta. Then we gave up. The source lookups became too numerous to mention.

For today, we’ve changed the design a bit to better accommodate the XiVO platform. There’s a single AGI script that houses the various CNAM lookup sources and the code to extract CallerID names from those sources. And there’s a dialplan script that let’s you specify which CNAM sources to use and in which order. As with the original release, CallerID lookups take the phone number of the caller and walk through your CNAM lookup sources in the order you specify until a CallerID name match is found. Then the result is returned to the PBX for use with the incoming call. The reason for all of this is historical. The Bell Sisters decided it was more profitable to dump CallerID name information in the bit bucket rather than passing it along with incoming calls. In that way, they could charge folks for looking up the matching name in their proprietary databases. A few CallerID lookup sources remain free, but many now are pay-as-you-go platforms with a typical lookup costing about half a cent. Unfortunately, all providers consider "WIRELESS CALLER" a successful lookup. Ka-Ching! We’ve documented the procedure to add additional CNAM lookup sources on the PIAF Forum. Please share your work!

This release of CallerID Superfecta provides four lookup sources. That’s what a Superfecta is all about, picking four winners:

0 - AsteriDex SQLite3 database
1 - OpenCNAM (free from cache or commercial)
2 - BulkCNAM (commercial only with free trial)
3 - TelcoData (provider, city, and state of caller)

There are three simple steps to putting everything in place. First, run the scripted commands below. Second, specify which CNAM sources you wish to use and in what order. Third, register with the commercial providers you’d like to use and plug your credentials into the CallerID Superfecta script.

To install CallerID Superfecta, log into your server as root and issue the following commands:

cd /
apt-get -y install php5-xmlrpc
wget http://incrediblepbx.com/cid-superfecta.tar.gz
tar zxvf cid-superfecta.tar.gz
rm -f cid-superfecta.tar.gz
/etc/init.d/asterisk restart

By default, CallerID Superfecta will attempt to use all four of the providers in the order shown to retrieve a CNAM match. If you have migrated your AsteriDex database to XiVO as we covered in last week’s article, then CallerID names will be provided for your most frequent incoming calls without ever accessing external sources. You won’t break anything by leaving all four CNAM sources activated. But, without signing up for service with OpenCNAM or BulkCNAM, your CNAM results will be diminished considerably. And a result of "WIRELESS CHARLESTON SC" from TelcoData doesn’t provide much of a clue as to who is calling. But at least you don’t get charged for that one.

In the next release, we will add an optional feature that will populate entries in AsteriDex from CNAM data returned from OpenCNAM and BulkCNAM. The good news is, if you leave AsteriDex at the top of the CallerID Superfecta search list, you’ll never pay for the CNAM lookup of the same number twice. The bad news is, to keep the bad guys from self-populating your database with expensive phone numbers, you’ll need to password-protect the Voice Dialing application if it is part of your inbound IVR.

To change the source list or sequence of CNAM lookups, open the XiVO GUI and navigate to IPX configuration -> Configuration files. Then edit cid-superfecta.conf. Find the line that looks like the following and specify the sources you wish to use and the sequence in which they should be searched using the source numbers listed above to replace 0-1-2-3. Separate your entries with hyphens. Then SAVE the file.

same = n,AGI(nv-cid-superfecta.php,${XIVO_SRCNUM},0-1-2-3)

To use the commercial CNAM services of either OpenCNAM or BulkCNAM, you first must register with them and provide a credit card. You then will be provided credentials to use for your CNAM lookups. These need to be inserted at the top of /var/lib/asterisk/agi-bin/nv-cid-superfecta.php. Then SAVE the file.


blank

Activating Traditional Asterisk Call Detail Recordings

If you want to preserve the numbers AND names of those that call your PBX, you’ll need to activate the traditional CDR reporting mechanisms in Asterisk®.

To activate SQLite3 logging of calls:

cd /etc/asterisk
sed -i 's|no|yes|' cdr.conf
echo "[master]" >  cdr_sqlite3_custom.conf
echo "table = cdr" >>  cdr_sqlite3_custom.conf
echo "columns => calldate, clid, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield"  >>  cdr_sqlite3_custom.conf
echo "values => '${CDR(start)}','${CDR(clid)}','${CDR(dcontext)}','${CDR(channel)}', '${CDR(dstchannel)}','${CDR(lastapp)}','${CDR(lastdata)}','${CDR(duration)}', '${CDR(billsec)}','${CDR(disposition)}','${CDR(amaflags)}', '${CDR(accountcode)}','${CDR(uniqueid)}','${CDR(userfield)}'" >>  cdr_sqlite3_custom.conf
chown asterisk:www-data cdr_sqlite3_custom.conf
chmod 660 cdr_sqlite3_custom.conf
sed -i 's|noload => app_cdr.so|;noload => app_cdr.so|' modules.conf
sed -i 's|noload => cdr_sqlite3_custom.so|;noload => cdr_sqlite3_custom.so|' modules.conf
sed -i 's|noload => func_cdr.so|;noload => func_cdr.so.so|' modules.conf
touch /var/log/asterisk/master.db
chown asterisk:asterisk /var/log/asterisk/master.db
chmod 640 /var/log/asterisk/master.db
/etc/init.d/asterisk restart

To also activate CSV logging of calls:

cd /etc/asterisk
echo "[csv]" >> cdr.conf
echo "loguniqueid=yes" >> cdr.conf
echo "loguserfield=yes" >> cdr.conf
echo "accountlogs=yes" >> cdr.conf
sed -i 's|noload => cdr_csv.so|;noload => cdr_csv.so|' modules.conf
/etc/init.d/asterisk restart

To retrieve SQLite3 call log data, here are a few examples to get you started:

ALL: sqlite3 /var/log/asterisk/master.db "select * from cdr"
DATE: sqlite3 /var/log/asterisk/master.db "select * from cdr where calldate >= '2016-05-22'"
NPA: sqlite3 /var/log/asterisk/master.db "SELECT * from cdr WHERE clid LIKE '%<843%'"
DEST: sqlite3 /var/log/asterisk/master.db "SELECT * from cdr WHERE dstchannel LIKE '%411%'"
FLDS: sqlite3 /var/log/asterisk/master.db "PRAGMA table_info(cdr)"

To retrieve the CDR log in CSV format suitable for spreadsheets, download:

/var/log/asterisk/cdr-csv/Master.csv

Adding Asterisk ULAW Sound Files to Your XiVO PBX

At least for us, the default sound files distributed with XiVO didn’t work. Here’s how to add the ulaw versions of all the files to your server:

cd /usr/share/asterisk/sounds/en
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-ulaw-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-ulaw-current.tar.gz
tar zxvf asterisk-extra-sounds-en-ulaw-current.tar.gz
tar zxvf asterisk-core-sounds-en-ulaw-current.tar.gz
rm -f *.tar.gz
chown asterisk:asterisk *.ulaw

Adding DISA Support to Your XiVO PBX

If you’re new to PBX lingo, DISA stands for Direct Inward System Access. As the name implies, it lets you make calls from outside your PBX using the call resources inside your PBX. This gives anybody with your DISA credentials the ability to make calls through your PBX on your nickel. It probably ranks up there as the most abused and one of the most loved features of the modern PBX.

We use two-step authentication with DISA to make it harder for the bad guys. First, the outside phone number has to match the whitelist of numbers authorized to use your DISA service. And, second, you have to supply the DISA password for your server before you get dialtone to place an outbound call. Ultimately, of course, the monkey is on your back to create a very secure DISA password and to change it regularly. If all this sounds too scary, don’t install DISA on your PBX.

1. Download the DISA dialplan script into your /root folder where it can be edited:

cd /root
wget http://incrediblepbx.com/disa-xivo.tar.gz
tar zxvf disa-xivo.tar.gz
rm -f disa-xivo.tar.gz
nano -w disa-xivo.txt

2. When the editor opens the dialplan code, move the cursor down to the following line:

exten => 3472,n,GotoIf($["${CALLERID(number)}"="701"]?disago1)  ; Good guy

3. Clone the line by pressing Ctrl-K and then Ctrl-U. Add copies of the line by pressing Ctrl-U again for each phone number you’d like to whitelist so that the caller can access DISA on your server. Now edit each line and replace 701 with the 10-digit number to be whitelisted.

4. Move the cursor down to the following line and replace 12341234 with the 8-digit numeric password that callers will have to enter to access DISA on your server:

exten => 3472,n,GotoIf($["${MYCODE}" = "12341234"]?disago2:bad,1)

5. Save the dialplan changes by pressing Ctrl-X, then Y, then ENTER.

6. Now copy the dialplan code into your XiVO setup, remove any previous copies of the code, and restart Asterisk:

cd /root
sed -i '\:// BEGIN DISA:,\:// END DISA:d' /etc/asterisk/extensions_extra.d/xivo-extrafeatures.conf
cat disa-xivo.txt >> /etc/asterisk/extensions_extra.d/xivo-extrafeatures.conf
/etc/init.d/asterisk restart

7. The traditional way to access DISA is to add it as an undisclosed option in an IVR that is assigned to one of your inbound trunks (DIDs). For the demo IVR that we installed last week, edit the ivr-1.conf configuration file and change the "option 0″ line so that it looks like this. Then SAVE your changes.

exten => 0,1(ivrsel-0),Dial(Local/3472@default)

8. Adjust the inbound calls route of one of your DIDs to point to the demo IVR by changing the destination to Customized with the following Command:

Goto(ivr-1,s,1)

Here’s how ours looks for the Nerd Vittles XiVO Demo IVR:


blank

9. Now you should be able to call your DID and choose option 0 to access DISA assuming you have whitelisted the number from which you are calling. When prompted, enter the DISA password you assigned and press #. You then should be able to dial a 10-digit number to make an outside call from within your PBX.

SECURITY HINT: Whenever you implement a new IVR on your PBX, it’s always a good idea to call in from an outside number 13 TIMES and try every key from your phone to make sure there is no unanticipated hole in your setup. Be sure to also let the IVR timeout to see what result you get.

Adding Vitelity to XiVO for Flawless VoIP Calling

We already have shown you several ways to take advantage of free VoIP calling in the U.S. and Canada as well as internationally. But, the old adage still holds true. You get what you pay for. And, if you’re using XiVO for your business or if you like a good night’s sleep without worrying about whether your spouse is going to stab you because of lousy phone connections, then splurge and spend a penny and a half a minute for outbound calls while getting unlimited incoming calls (4 at a time!) for only $3.99 a month. You’re worth it. The signup link for Vitelity is at the end of today’s article. Once you have your credentials, create a subaccount on the Vitelity site and then you’re ready to set up your Vitelity trunks with XiVO. We’ll use one trunk for incoming calls and a second trunk for outbound calls. The setup procedure for both trunks is already documented on the PIAF Forum. Make that your next stop!


Simultaneous Cellphone Ringing for Inbound Calls with XiVO

Speaking of incoming calls, wouldn’t it be nice if your cellphone also rang when XiVO calls arrived on your main extension. Then you don’t have to worry about missing a call just because you stepped out of the office.

If you took our earlier advice and purchased a RingPlus phone with free monthly service, then you’re already covered. Setting up the RingPlus SIP trunk last week covered all the bases. And, there’s more good news from RingPlus. Now you can buy a phone in their Classifieds section without previously owning a phone. So you can hit the ground running with a phone AND a free calling plan. For example, $149 currently buys a brand new Moto E with 3,000 4G/LTE and SIP minutes, 3,000 SMS messages, and 3,000 MB of LTE data every month. And the monthly cost: ZERO!

But, let’s assume you’re not the sharpest tool in the shed, and you still want your cellphone to ring when extension 701 rings on your PBX. Here’s how.

In the User setup for your extension:

1. Enter your cellphone number in the Mobile Phone Number field. Be sure it includes any necessary dial prefix so that it’s routed out through the correct trunk.

2. On the same screen, you’ll find a Preprocess subroutine field. Enter the following there: pre-mobility

3. SAVE your changes.

Keep in mind that outbound calls in XiVO are routed out using dialing prefixes. If you have set up a trunk with a provider that allows CallerID spoofing such as Vitelity, Anveo Direct, or VoIP.ms, then you can preserve the caller’s original CallerID number on the forwarded call to your mobile phone provided the dial string for your cellphone number matches the format you set up for the trunk you wish to use. For example, if Exten for Vitelity is 8NXXNXXXXXX, then you would enter the number for your cellphone with an 8 prefix: 89991234567.

Munin Makes XiVO Shine

If you look under the Services tab and choose Graphics, the World of Munin will suddenly appear. There are literally dozens of gorgeous charts to tell you anything and everything you’d ever want to know about your server’s performance. Enjoy!


blank

Endpoint Management on Steroids… and It’s FREE

If you’ve longed for an endpoint manager that would automatically configure your phones, the wait is over. XiVO supports literally dozens of phones out of the box. And the setup is integrated into the setup procedure for the users and devices. To get started, choose the Configuration tab and click Plugins. Next click on the + icon to load the default endpoint config files. We couldn’t do justice to this topic in a blog. That’s what tutorials are for. And XiVO has a 700+ page reference guide that will tell you everything you ever wanted to know about endpoint management.


blank


Adding NeoRouter VPN to XiVO

We’ll finish up for this week by showing you how easy it is to add the NeoRouter Client to XiVO. In less than five minutes, you’ll be able to use XiVO’s NeoRouter private IP address to access your server securely from anywhere in the world. Start by reading our last introduction to NeoRouter. If you do not already have a NeoRouter Server, follow this tutorial to set one up before you begin.

If you’re running XiVO on a 64-bit platform, issue the following commands to install the free NeoRouter client:

cd /root
wget http://download.neorouter.com/Downloads/NRFree/Update_2.3.1.4360/Linux/Ubuntu/nrclient-2.3.1.4360-free-ubuntu-amd64.deb
dpkg -i nrclient-2.3.1.4360-free-ubuntu-amd64.deb

If you’re running XiVO on a 32-bit platform, do this instead:

cd /root
wget http://download.neorouter.com/Downloads/NRFree/Update_2.3.1.4360/Linux/Ubuntu/nrclient-2.3.1.4360-free-ubuntu-i386.deb
dpkg -i nrclient-2.3.1.4360-free-ubuntu-i386.deb

Unless you want your server identified in NeoRouter as localhost, we recommend changing your hostname and rebooting your server at this juncture. Just edit /etc/hostname and give it a name, e.g. xivo. Then reboot.

Now log back into your server as root and then log into your NeoRouter client. This will assign a private IP address to your XiVO server. The nrtap entry running ifconfig will tell you what that address actually is.

nrclientcmd
ifconfig

Taking Nerd Vittles’ XiVO IVR for a Test Drive

There’s a Demo IVR running at www.pacificnx.com on their XenServer virtualization platform. Scott McCarthy, a leading outside XiVO developer and a principal at PacificNX, tells us they soon will have a $20 a month platform specifically tailored to XiVO. And that’s what you’ll be hearing when you call the Nerd Vittles Demo IVR: blank

Nerd Vittles Demo IVR Options
1 – Call by Name (say "Delta Airlines" or "American Airlines" to try it out)
2 – MeetMe Conference
3 – Wolfram Alpha (Coming Soon!)
4 – Lenny (The Telemarketer’s Worst Nightmare)
5 – Today’s News Headlines
6 – Weather Forecast (enter a 5-digit ZIP code)
7 – Today in History (Coming Soon!)
8 – Speak to a Real Person (or maybe just Lenny if we’re out)

Published: Monday, May 23, 2016




blank
Need help with Asterisk? 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…

The XiVO Adventure Continues: Adding Incredible PBX Goodies to Your Sandbox

blank

We began our XiVO adventure last week by introducing a terrific new communications platform for both businesses and hobbyists. This week we begin the task of incorporating the Incredible PBX Goody Bag into an already amazing PBX, and we’ll cover about a dozen new topics. We’ll also address a few XiVO basics such as where to find and how to use the backups that XiVO makes every morning while many of us are still sleeping. Since a new XiVO release is imminent, we also want to show you how easy it is to upgrade your server. Before we get to the good stuff, we want to take a moment and document a fourth platform for XiVO that will appeal to many large organizations and perhaps some of our pioneers. It’s our platform of choice for development of new applications.

UPDATE: The first release of Incredible PBX for XiVO is now available here. Please consider this article superseded by the new release.

Installing XiVO as a VMware Virtual Machine

If your organization runs VMware, you may not need to worry about finding your own platform for XiVO. You can get your IT guys to build you a XiVO VM using XiVO’s Debian-based ISO. Then again, you might have followed our tutorial and chosen to run your own VMware ESXi server. In either case, a quick refresher on getting XiVO installed may be helpful. Begin by downloading XiVO to your Windows desktop. Then log into VMware vSphere Client on your Windows machine to access ESXi.

First, you’ll want to upload the XiVO ISO as a VMware guest operating system so that it can be used to create virtual machines at any time. From your inventory, click on the Configuration tab. Then click Storage under the Hardware listing. When your Datastore appears, right-click on datastore1 and choose Browse Datastore. Finally, click the Upload Files to this Datastore icon in your Datastore Browser and choose Upload File option. Choose the XiVO ISO from the Upload Items menu to upload it into your Datastore.

Now we’re ready to create a Virtual Machine. Right-click on the IP address of your VMware server and choose New Virtual Machine. Leave the Typical Configuration option selected and click Next. Give the virtual machine a name and click Next. Select the Destination Storage device and click Next. For the Operating System, choose Linux and pick Debian 8 (64-bit) then Next. Choose the NIC to use for the VM and click Next. Choose your Virtual Disk Size and Thin Provision option then Next. Check the box to Edit Virtual Machine Settings Before Completion and click Continue. Click the Options tab in Virtual Machine Properties and click Boot Options. Check the Force BIOS Setup option on next boot. Click Finish.

Starting your virtual machine the first time is not exactly intuitive so follow these steps carefully and in order. Keep in mind that, on the initial bootup of your virtual machine, what we want to do is run the XiVO ISO installer just as if we had booted a standalone machine using a CD on which we had burned the XiVO ISO. To begin the boot process correctly, first highlight your new VM by clicking on it and then choose Power on Virtual Machine. Next, click on the CD/DVD icon in the toolbar, choose CD/DVD Drive 1, choose connect to ISO image on Datastore. Double-click on datastore1 and then double-click on the XiVO ISO we uploaded previously. Now click on Launch Virtual Machine Console icon in the toolbar. When the BIOS setup utility appears, click in the window and use the Right Arrow key to move to the Boot tab. Move the CD-ROM option to the top of the list by highlighting it and pressing the + key to move it up. Press F10 to Save and Exit from the BIOS Setup and boot into your XiVO ISO. Click Install option to begin the regular XiVO installation procedure. When you finish the install, log into your server as root and obtain your IP address: ifconfig. You then can exit from the Console window by pressing Ctrl-Alt and use a browser to complete the install by pointing to the IP address of your virtual machine. Don’t forget that root SSH access is disabled by default. Our original tutorial will show you how to fix it AND install the Travelin’ Man 3 firewall whitelist to protect your server.

Adding a RingPlus SIP Trunk for Unified Communications with Sprint

Last week we began the XiVO adventure by turning on free Google Voice calling in the U.S. and Canada. Today we want to integrate smartphones into the mix by providing an incredibly simple and dirt cheap way to expand your XiVO communications platform while transparently meshing it with a RingPlus smartphone and the Sprint cellular network. When we’re finished, calls to your smartphone will also ring on one or more XiVO extensions. And designated users of your XiVO PBX will be able to place free calls to U.S. destinations using a SIP trunk tied directly to your RingPlus cellular account. These calls won’t be cellular. They’ll be pure VoIP calls using Sprint’s Internet backbone so listen for that pin to drop. If you have a (free) unlimited calling plan with RingPlus, then you’ll inherit a (free) unlimited calling plan for your XiVO PBX. Stated another way, whatever calling minutes you have with RingPlus can be shared on your XiVO PBX as inbound and outbound VoIP calls. The silver lining is that voicemails left on RingPlus get transcribed and delivered to your email address in seconds. So you get the best of both worlds. That’s what Unified Communications is all about!

blank

Don’t worry if you’re late to the party and not yet a RingPlus user. They announce new deals every week so just check every few days until you find a plan that meets your needs. You won’t have to wait long. Here’s a list of all the previously announced PROMOS to give you a good handle on the scope of the RingPlus offerings. Deals don’t last but a couple hours or days so check often or sign up for RingPlus Alerts on SlickDeals and you’ll be the first to know! There’s a terrific deal tonight only from 8 p.m. until midnight.



We’ve already documented the XiVO setup procedure on the PIAF Forum so hop over there to see how easy this is. Keep in mind that XiVO differs a bit from FreePBX® in the way Outbound Calls are managed. In FreePBX, you prioritized the routes by arranging them in a hierarchical list. In XiVO, you use unique dial strings, e.g. NXXNXXXXXX, for every Outbound Route. So, if you’re adding RingPlus to an existing XiVO server that already is using the NXXNXXXXXX dial string, then you’d need to use a different dial string to route calls out through the RingPlus trunk, e.g. 77NXXNXXXXXX with Stripnum=2. That tells XiVO that your users will dial calls to be handled by RingPlus with a prefix of 77 (RP), and then we want XiVO to strip off the first two digits before passing the call to the RingPlus SIP trunk for processing.

If you’re new to RingPlus, start with the original Nerd Vittles article for some background and then follow the RingPlus threads on the PIAF Forum and DSL Reports for the latest tips and tricks.

Adding a FreeVoipDeal (Betamax) SIP Trunk for Free International Calling

Before deploying a SIP trunk from one of the Betamax companies, read our latest article about Betamax for tips and tricks and land mines to watch out for. Then click the link below when you’re ready to deploy FreeVoipDeal as a trunk on your XiVO PBX:


Everything You Need to Know About XiVO Backups

Another feature of XiVO that separates the men from the boys is its documentation. In the case of backups, you’ll find everything you need to know here. All backups are stored on your XiVO server’s local drive in /var/backups/xivo. Be sure you have ample storage space available and, if you’re smart, you’ll copy both data.tgz and db.tgz from the local drive to a safe remote location periodically just in case disaster strikes. The documentation shows you how to quickly restore a backup should that ever become necessary.

Upgrading XiVO to the Latest Release

The XiVO development cycle is nothing short of miraculous. A new version is released every three weeks! The average time to close a bug has dropped from 315 days in 2009 to 28 days in 2012! You’ll probably want to keep your system current. 🙂

Upgrading XiVO is even easier than restoring a backup. Upgrade documentation is available here. Because we’ve added the Travelin’ Man 3 firewall, we recommend stopping IPtables during an upgrade and then restarting it when you’re finished. Your phone system is disabled during the upgrade. When upgrading XiVO, remember to also upgrade all associated XiVO Clients. Be sure to verify that things are back to normal once the upgrade procedure is completed: xivo-service status.

The commands to upgrade your XiVO PBX are as follows:

/etc/init.d/netfilter-persistent stop
xivo-upgrade
iptables-restart

Update: There’s a great tip from one of the XiVO developers on a better way to do this. See the first comment below.

Prerequisites for Today’s XiVO Adventure

If you’re just getting started with XiVO, DON’T START HERE. Read our first article. Be sure you have completed the following 8 steps before proceeding:

  1. Set Up Root SSH Access to Your XiVO PBX
  2. Set Up the Travelin’ Man 3 IPtables Firewall Using an SSH/Putty Connection
  3. Complete the XiVO Setup Using a Web Browser
  4. Create At Least One User with a 701 Extension
  5. Create At Least One SIP Trunk to Use for Outbound Calls
  6. Configure Outbound Call Settings for Your Trunk Using NXXNXXXXXX
  7. Configure an Inbound Route for Trunk Pointing to Your User Account
  8. If Behind NAT Firewall, Set externip and local network in General Settings -> SIP Protocol -> Network

Creating a MeetMe Conference Room for XiVO

There are just two steps to setting up a conference room. First, you need to add the extensions you will use for your conferences in the Default context. Then you add the Conference Room under IPBX Settings. Let’s set up a conference room extension 2663 (C-O-N-F). In your Default context, click on the Conference Rooms tab and enter an extension range of 2663-2664 and click Save. Then, in the Conference Rooms tab, click the + icon to add a new CONF conference room at extension 2663 in the Default context. You can experiment with the other settings when you have some spare time. The entries are pretty much self-explanatory. Click Save to activate your conference room. You won’t have music on hold for the first participant just yet. We’ll do that next.

blank

Adding Music on Hold to XiVO

By default, XiVO doesn’t come with any music on hold. Fortunately, Digium has negotiated a music on hold license that you can use to add it to your PBX at no cost. While logged into your XiVO PBX as root, issue the following commands:

cd /
wget http://incrediblepbx.com/moh-xivo.tar.gz
tar zxvf moh-xivo.tar.gz
/etc/init.d/asterisk restart

Asterisk Application Development with XiVO

For those coming from the FreePBX world, here’s a quick introduction to Asterisk application development on the XiVO platform. First and foremost, there are more similarities than differences. In the FreePBX environment, custom dialplan code was stored in /etc/asterisk/extensions_custom.conf. For custom extensions that you wanted to add, that code had to appear in the [from-internal-custom] context. For custom dialplan contexts, those appeared immediately below the last entry in the [from-internal-custom] context. If your custom code appeared anywhere else, there was always the risk that it might be overwritten with your next FreePBX reload.

The XiVO design is quite different. As we noted last week, it is not an Asterisk code generator at all, unlike FreePBX. Instead, it has a realtime interface to Asterisk using its PostGreSQL database engine. Updates are nearly instantaneous without reloading Asterisk modules from disk.


blank

The other advantage is you won’t have to worry about XiVO stepping on your custom code as long as you leave PostGreSQL alone. HINT! The good news is there still are hooks to add your own custom dialplan extensions and code as well as PHP/AGI scripts. And it’s easy. In XiVO, custom extensions are stored in xivo-extrafeatures.conf which you’ll find in the /etc/asterisk/extensions_extra.d directory. Don’t edit files in /etc/asterisk/extensions_extra.d from the Linux command prompt! Instead, use the editor built into the XiVO GUI by selecting Configuration Files under IPBX configuration. This will automatically assure that realtime updates are posted correctly. To add additional contexts to your dialplan, create separate files for each context and store them in this same directory. Again, the easy way to make certain that Asterisk is updated automatically when you add new code snippets is to create and edit them within the XiVO GUI. These files all will appear under IPBX Configuration -> Configuration Files as well.

blank

In order to better mimic the FreePBX way of doing things so that your PHP/AGI scripts work in either environment, we recommend issuing the following symlink while logged into XiVO. We’ll do it as part of the SQLite3 install below.

ln -s /var/lib/asterisk/agi-bin /usr/share/asterisk/agi-bin

Once you’ve established the symlink, PHP/AGI scripts can be migrated from FreePBX to XiVO directly using the same directory structure for storage: /var/lib/asterisk/agi-bin. As with FreePBX, all files in this directory should be owned by asterisk with 775 permissions:

chown asterisk:asterisk /var/lib/asterisk/agi-bin/*
chmod 775 /var/lib/asterisk/agi-bin/*

There are many other powerful features in XiVO that weren’t available at all in FreePBX. We’ll cover some of them in coming months. In the meantime, this brief overview of the dialplan environment should be sufficient to let you start building.

Installing SQLite3 to Support Incredible PBX Applications

There’s one other difference between XiVO and FreePBX that we’ve already touched upon. But it bears repeating here. XiVO doesn’t use MySQL or MariaDB for its database management tasks. Instead, the XiVO development team chose PostGreSQL which is equally powerful, but different. For the Incredible PBX application suite, we’ve chosen to rewrite the ones that depend upon MySQL so that they can run under SQLite3 which is considerably less processor intensive than running both PostGreSQL and MySQL 24/7. We also didn’t want to interfere with the PostGreSQL setup of XiVO since it is an integral component of the product and will get upgraded automatically as part of the regular XiVO upgrade cycle.

Here’s how to put the SQLite3 and corresponding ODBC components in place on your new server. While logged into your server as root, simply issue the following commands:

cd /
wget http://incrediblepbx.com/sqlite3-xivo.tar.gz
tar zxvf sqlite3-xivo*
rm -f sqlite3-xivo.tar.gz
cd /root
./sqlite3-xivo.sh

Running a couple SQLite3 queries using the ZIPCODES and ASTERIDEX databases will give you a feel for the performance you can expect from SQLite3. The queries might look like this:

sqlite3 /var/lib/asterisk/agi-bin/zipcodes.sqlite "select zip,city,state from zipcodes where zip=29401;"
sqlite3 /var/lib/asterisk/agi-bin/asteridex.sqlite 'select name,out from user1 where name LIKE "%Airlines%";'

And here are the results of the two queries:

29401|CHARLESTON|SC
--------------------------------
American Airlines|8004337300
Continental Airlines|8005250280
Delta AirLines|8002211212
Frontier Airlines|8004321359
Iberia AirLines|8007724642
Midway Airlines|8004464392
Northwest Airlines|8002252525
Southwest Airlines|8004359792
Ted Airlines|8002255833
United Airlines|8002416522
WestJet Airlines|8005385696
Yemen Airlines|8009368300

We’ve included a bonus script in /root that will let you convert existing MySQL databases to SQLite3. For example, if you’re currently using AsteriDex on another Incredible PBX platform, it only takes a couple seconds to convert your MySQL database to SQLite3. The syntax to run the script should look like this:

./mysql2sqlite3.sh -u root -ppassw0rd yourdatabase | sqlite3 yourdatabase.sqlite

You obviously cannot run the script on your XiVO server because your MySQL databases and MySQL itself are missing. So move the script to the server on which your MySQL databases are stored and run it there using the above syntax. Then copy the asteridex.sqlite file to your XiVO server and save it in /var/lib/asterisk/agi-bin.

Installing and Activating the Festival TTS Engine with Asterisk

We’ve got a couple more building blocks to put in place to support Incredible PBX applications. Then we’ll be ready to kick the tires with a few applications to get you started. In coming weeks, we’ll finish up the conversion of the remaining apps, and then we’ll publish an Incredible PBX installer for XiVO with all the pieces. But why wait? Finish up installing the remaining pieces today, and you’ll have something to play with. And, as we said, it will also provide you with simple scripts so you can actually see how Incredible PBX is put together.

Many of the Incredible PBX applications rely upon text-to-speech and/or voice recognition (speech-to-text) to work their magic. Neither comes installed with XiVO by default, but Asterisk was properly configured to support Festival so let’s work with that. Festival is the Big Brother of FLITE and includes some additional voices of fairly good quality. The XiVO Demo IVR will give you an idea of the TTS voice quality you can expect: blank

To get Festival installed and activated for use with Asterisk, issue these commands:

cd /
wget http://incrediblepbx.com/festival-xivo.tar.gz
tar zxvf festival-xivo.tar.gz
cd /root
./festival-xivo.sh

Installing Dial Plan Code for Sample Incredible PBX Applications

Now we’re ready to put today’s Dial Plan Code and IVR in place and load the PHP/AGI components necessary to make the sample applications work. Here’s how:

cd /
wget http://incrediblepbx.com/ivr-xivo.tar.gz
tar zxvf ivr-xivo.tar.gz
chown asterisk:www-data /etc/asterisk/extensions_extra.d
chmod 775 /etc/asterisk/extensions_extra.d
chmod g+s /etc/asterisk/extensions_extra.d
/etc/init.d/asterisk restart

Installing and Activating Voice Recognition for XiVO

Google has changed the licensing of their speech recognition engine about as many times as you change diapers on a newborn baby. Today’s rule restricts use to “personal and development use.” Assuming you qualify, the very first order of business is to enable speech recognition for your XiVO PBX. Once enabled, the Incredible PBX feature set grows exponentially. You’ll ultimately have access to the Voice Dialer for AsteriDex, Worldwide Weather Reports where you can say the name of a city and state or province to get a weather forecast for almost anywhere, Wolfram Alpha for a Siri-like encyclopedia for your PBX, and Lefteris Zafiris’ speech recognition software to build additional Asterisk apps limited only by your imagination. And, rumor has it, Google is about to announce new licensing terms, but we’re not there yet. To try out the Voice Dialer in today’s demo IVR, you’ll need to obtain a license key from Google. This Nerd Vittles tutorial will walk you through that process. Don’t forget to add your key to /var/lib/asterisk/agi-bin/speech-recog.agi on line 72.

Taking XiVO on a Test Drive with the Incredible PBX Apps

Now set up a softphone using the IP address of your XiVO server and the Line credentials for Extension 701. When you obtain your credentials, double-check to make sure all of the fields for the Line are filled in correctly as shown below:

blank

Once your softphone is registered, you can try out some of the sample applications:

  • 4871 (IVR1) – Allison’s Demo IVR
  • 411 (Voice Dialing) – Call by Name (try "Delta Airlines")
  • 2663 (CONF) – MeetMe Conference with Music on Hold
  • 951 – Yahoo! News Headlines (TTS)
  • 947 (ZIP) – NWS Weather by ZIP Code
  • 53669 (LENNY) – The Telemarketer’s Worst Nightmare

You can review the Dialplan code in the GUI by choosing Configuration Files and clicking xivo-extrafeatures.conf. The sample IVR code is in ivr-1.conf.

Taking Nerd Vittles’ XiVO IVR for a Test Drive

There’s also a new Demo IVR running at www.pacificnx.com on their XenServer virtualization platform. Scott McCarthy, a leading outside XiVO developer and a principal at PacificNX, tells us they soon will have a $20 a month platform specifically tailored to XiVO. And that’s what you’ll be hearing when you call the Nerd Vittles IVR: 1-843-606-0555. Setup at PacificNX took less than a minute. Enjoy!

Published: Thursday, May 12, 2016




blank
Need help with Asterisk? 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…

2016, The Year of (real) VoIP Choice: Meet XiVO, a UC Solution for Any Business

blank

We promised you that 2016 was going to be a year filled with surprises, and today we’re pleased to introduce another open source, pure GPL3 solution for any business. Whether your requirements are a call center or a versatile phone system for hundreds of employees, XiVO™ offers a compelling unified communications solution that checks all the boxes. Unlike some products that function merely as a code generator for Asterisk®, XiVO is in a league of its own. XiVO is actually an integral component of the Asterisk application itself. It manages your telephony server in realtime using its versatile PostGreSQL database platform. Did we mention it’s also a great playground for hobbyists and SOHO VoIP enthusiasts? Let’s get started.

UPDATE: The first release of Incredible PBX for XiVO is now available here. Please consider this article superseded by the new release.

There’s no way to do justice to a product like XiVO in a single article. So our plan is to introduce XiVO today and get your platform up and running where you can make and receive free calls throughout the United States and Canada. Then you can add Incredible PBX components and additional SIP providers as we continue to build them out. Just follow along with our Incredible PBX development for XiVO on the PIAF Forum, and you’ll get a first-hand look at how sausage is made. We already have text-to-speech applications for news and weather up and running. You can take them for a test drive by calling the XiVO demo: blank

And, of course, we’ve integrated the Travelin’ Man 3 IPtables firewall to provide rock-solid security for XiVO, and we’ll cover that today as well. As part of this development process, you’ll discover how easy it is to build Asterisk applications for XiVO on your own. And hopefully you’ll share some of your creations with the rest of us. That’s what open source development is all about.

Choosing an Experimental Platform for XiVO

We’re just getting started with XiVO development so, like us, we’re assuming you’ll want to kick the tires a bit before jumping into a new VoIP solution for the long haul. That means you first must choose a platform on which to install XiVO. We have several recommendations for you. If you have a robust desktop machine with lots of RAM and processing power, then installing XiVO under VirtualBox may be the way to go. We actually use an iMac with 16GB of RAM, and it provides plenty of horsepower to run VirtualBox and XiVO. With VirtualBox, we’ll start by downloading the XiVO ISO.

We didn’t mention that XiVO has been under development for over 10 years and is supported by the original developers with financial support from Avencall. Because of its Canadian roots, it seems only fitting that many may wish to consider CloudAtCost in Canada as an appropriate site to host your experimental XiVO server. A one-time payment of $10.50 still buys you a sandbox in the cloud for life with coupon code TAKE70, and XiVO installs on the CloudAtCost platform without a hiccup. For a CloudAtCost implementation, we’ll start by creating a Debian 8 server.1 And then we’ll download and run the XiVO installation script to build our XiVO server. Finally, we’ll walk you through setting up XiVO on a $5/month Digital Ocean Droplet which provides state-of-the-art performance at rock-bottom Cloud pricing. So begin by choosing your hardware platform from the three options below:

1. Installing XiVO as a VirtualBox Virtual Machine

For standalone implementations including VirtualBox, we’ll begin by downloading the 64-bit XiVO Server ISO to your desktop. Next, create a VirtualBox 64-bit Debian VM platform with 1024 MB RAM and at least a 10GB virtual drive. In System Settings, enable I/O APIC and disable the other options. Select a Sound Card to match your machine and configure Network Adapter 1 as a Bridged Network Device. In the Storage Settings (shown below) for your (1) Empty IDE Controller, (2) select the downloaded XiVO ISO as your installation media. Start the VM and proceed through the initial install.

blank

Click Install, choose your language, pick your time zone, choose your keyboard map, create a very secure root password, and choose a Debian mirror that’s close to your server. Choose /dev/sda as your bootloader assuming that’s the disk drive configured by VirtualBox. In less than 10 minutes, the install will complete and your VM will reboot. Log into your server as root and obtain your IP address: ifconfig. You’ll need it for the web configuration step that comes next.

2. Installing XiVO as a CloudAtCost Cloud-Based Server

You can’t use an ISO as the installation media at CloudAtCost so we have to start by building a 64-bit Debian 8 virtual machine with at least 512 MB RAM and a 10GB virtual drive. No need to choose a larger drive at the moment since there’s a bug in CloudAtCost’s installer for Debian 8. See the footnote for details. Once your virtual machine is built, log in as root and issue the following commands to kick off the XiVO install:

apt-get -y remove apache2*
apt-get update
apt-get -y upgrade
reboot
# log back in as root and...
wget http://mirror.xivo.io/fai/xivo-migration/xivo_install_current.sh
bash xivo_install_current.sh

3. Installing XiVO as a Digital Ocean Droplet

As with CloudAtCost, you’ll need to begin your XiVO adventure at Digital Ocean by first signing up for an account. With our referral code, you’ll get a $10 credit (and so will Nerd Vittles). That’s good for two full months of service to kick the tires of XiVO without ever spending a dime. Once your account is set up, create a $5/month Debian 8 (64-bit) Droplet. When you receive the email with your droplet credentials, log into your new server as root using SSH/Putty and issue the following commands to get Debian 8 squared away:

apt-get update
apt-get upgrade -y
dd if=/dev/zero of=/swapfile bs=1024 count=1024k
chown root:root /swapfile
chmod 0600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile          swap            swap    defaults        0 0" >> /etc/fstab
sysctl vm.swappiness=10
echo vm.swappiness=10 >> /etc/sysctl.conf
free
reboot

After the reboot, log into your server again with your new root password and kick off the XiVO install:

wget http://mirror.xivo.io/fai/xivo-migration/xivo_install_current.sh
bash xivo_install_current.sh

Enabling SSH Root Access with XiVO

If you installed XiVO using the XiVO ISO, then root logins via SSH are disabled by default. Only enable it if you plan to also implement the firewall in the next step! To enable root logins via SSH, log into the server console as root and edit the SSH config file: nano -w /etc/ssh/sshd_config. Find the line in the Authentication section that begins with PermitRootLogin and change it to: PermitRootLogin yes. Save your change (Ctrl-X, y, ENTER) and then restart SSH: /etc/init.d/ssh restart.

Setting Up a Firewall to Protect XiVO

We don’t build PBXs without a rock-solid firewall, but it’s your phone bill so the choice is all yours. The Travelin’ Man 3 implementation of the Linux IPtables firewall provides a safe computing platform using a WhiteList to only allow access by trusted users and providers. You can add additional users to the whitelist as desired using add-ip and add-fqdn in the /root folder. Restart your firewall using only this command: iptables-restart. If you’ll be using FQDNs in your WhiteList, then add the ipchecker script to your cron jobs. Then review Step #5 in the TM3 tutorial.

echo "*/10 5-22 * * * root /root/ipchecker > /dev/null 2>&1" >> /etc/crontab

It’s imperative that you set this up from a client workstation that’s running SSH or Putty. Otherwise, you may inadvertently lock yourself out from your own server. While logged into your server via SSH as root, issue the following commands:

cd /root
wget http://incrediblepbx.com/firewall-xivo.tar.gz
tar zxvf firewall-xivo.tar.gz
rm -f firewall-xivo.tar.gz
./tm3-xivo.sh

Configuring XiVO with a Web Browser

Once the basic install is completed, you use a web browser to actually configure and manage your XiVO server. To get things started, point your browser to the IP address of your XiVO server. Choose your Language. Accept the GPL3 license agreement. Then fill in the blanks to create a Hostname for your server (XiVO), a domain name (some domain that you own or one chosen from your favorite dynamic DNS provider), a very secure Web interface password (choose as if your phone bill depends upon it). The network interface and DNS server entries should already be correct. Click Next.

On the second configuration screen, choose an Entity (department/organization name or IncrediblePBX will suffice). Then set up the Contexts to manage calls on your PBX:

  • Internal Calls Context: manages extension numbers that can be reached internally
  • Incalls Context: manages calls coming from outside of your system
  • Outcalls Context: manages calls going from your system to the outside

Here’s what we’ll be using by way of example:

blank

Finally, validate your entries to complete the configuration. Now log into your XiVO server as root using your newly created web password. You should get a status screen that looks something like this. If you had any doubts about the quality of the XiVO product, this should put your mind at ease. 🙂

blank

Logging Into the XiVO Web Interface

To make changes in your XiVO setup, you’ll need to log into the web interface at the IP address of your XiVO PBX. Login with root as the username together with the Web Interface Password you set up above. You can change this password at any time under the Configuration tab by clicking on Users and editing your existing settings.

Creating Users and Lines with XiVO

For those migrating from the FreePBX® world, you’re probably most familiar with the procedure for creating extensions. More advanced administrators may have switched to device and user mode where users and devices are created separately. Phone numbers or extensions were associated with users while phone instruments were associated with devices. In the World of XiVO, we’ll start with the simplest configuration, and you can move on from there when you’re ready. In our scenario today, we’ll create a couple of users. Each user has a Name, Language, Time Zone, and other optional characteristics such as a Mobile Phone Number which can ring simultaneously whenever a user receives a call to his or her local XiVO phone number. By adding a Line (aka Phone Number) for the user as the user account is created, XiVO will automatically generate a separate Line with username and password credentials. This Line will be associated with the User during the initial user setup procedure, and this Line then can be registered to a SIP phone, softphone, or XiVO client (which we will cover separately down the road). In the example below, we’re using Nerd Uno’s extension 701 (associated with line 3jz8tsr0) to call Nerd Dos’ extension 702 (associated with line 8fmne2x4).

blank

XiVO has an excellent tutorial that covers creating Users with a SIP Line. So jump there and add a couple of Users following the steps in the tutorial. When you’re finished, you’ll have two Users and two associated Lines with credentials to set up SIP phones. Since you’re just getting your feet wet and will probably make some mistakes, it’s probably a good idea to turn off Fail2Ban while you’re experimenting. Otherwise, you may accidentally lock yourself out of your server (ask us how we know) and think it’s a problem with XiVO. Here’s how:

/etc/init.d/fail2ban stop

To set up your SIP phones, you’ll need the credentials for each of the two lines. Under the Lines tab, click on the Pencil icon to reveal the Username and Password. Fill in the missing pieces as shown below and make certain that your NAT entry is set to Yes.

blank

blank

With those credentials in hand, go ahead and configure a couple of SIP phones and make certain you can call between them with audio in both directions before proceeding. For those with a Mac, Telephone is perfect for experimentation because you can set up multiple softphones and place calls between them.

IMPORTANT: If your server is sitting behind a NAT-based firewall, you must set the external and local network IP addresses for XiVO in General Settings -> SIP Protocol. You’ll find the fields in the Network tab.

Configuring a SIP Trunk for Google Voice with XiVO

Now that you have internal calls working, let’s turn our attention to connecting your PBX to the rest of the world. We obviously can’t cover the setup for every SIP provider, but we can provide a good example that will get our U.S. friends free calling in the U.S. and Canada. We’ve chosen the Simonics SIP Gateway to Google Voice because a one-time payment of $5.99 gets you a traditional SIP trunk to interface with any existing Google Voice number. If you don’t have a Google Voice number, sign up here. In your Google Voice Settings, make sure Forward Calls to Google Chat is enabled and disable Call Screening in the Calls tab. Then, with your Google credentials and Google Voice number in hand, visit the Simonics web site to sign up for service. Sign in with your Google credentials and complete the registration process. Once you have your Simonics account name and password, log into your XiVO web portal.

With credentials in hand, on the XiVO side, start by choosing the SIP Protocol tab under Trunk Management. There are actually three tabs to configure for the SIP trunk. Begin in the General tab and make it look like this using your credentials. NOTE: The complete FQDN for the Simonics gateway should be gvgw.simonics.com:

blank

Next, click on the Register tab and reenter your credentials. Leave the empty fields exactly as shown. Be sure the Register box is checked.

blank

Next, in the Signaling tab, change the Monitoring option to Yes and then click Save. Monitoring is the XiVO equivalent of the SIP Qualify option.

blank

We also need to make one minor adjustment in the SIP Protocol Defaults in the General Settings. Just Save your settings after checking Match users with ‘username’ field.

blank

Next, we need to tell XiVO how to process Incoming and Outgoing Calls using the Google Voice SIP trunk. Under the Call Management section, let’s begin with the Incoming Calls setup by creating a new Incoming Calls DID for your 11-digit Google Voice number. To keep things simple, we’ll route the incoming calls to the User mapped to extension 701:

blank

For Outgoing Calls, we need to route calls with a specific dial string out the Simonics SIP trunk using the to-extern context. By way of example, we’ve set this up using a dialing prefix of 48 (GV) and a 10-digit number. We’re letting XiVO supply the missing 1 country code required by Google Voice, and we’ll let XiVO strip off the 48 prefix in processing the outbound calls. If this is your only outgoing trunk, you may prefer not to use a dial prefix at all. In that case, change the dial string to a 10-digit number (NXXNXXXXXX) and set Stripnum to 0.

blank

blank

Well, that’s enough for today. There’s complete XiVO PDF Documentation available here. We’ll have lots more to say about XiVO in coming weeks. Come join the party!

Continue reading Part 2.

Published: Thursday, May 5, 2016




blank
Need help with Asterisk? 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. There’s a glitch in the CloudAtCost builds for Debian8. Regardless of how much disk storage you allocate, CloudAtCost will only use 10GB. Moral: Don’t waste your resources by allocating more than 10GB of disk space. This is an experimental platform, and 10GB will suffice. If you really need more space, this thread on the PIAF Forum will walk you through expanding the storage allocation beyond the 10GB threshold. []

Sleep Well: Create a $10.50 Incredible Backup Server in the Cloud with WebDAV

With the impending demise of Copy.com, it seemed like a good time to revisit the subject of backups and to do a little advance preparation for that rainy day when your Incredible PBX™ server decides it’s taken its last breath. We recently documented how to build an Incredible PBX in the Cloud for a one-time cost of $10.50. And we showed you how to build a Linux Sandbox in the Cloud for the same bargain-basement price. Today, we’re adding a third way to spend one day’s lunch money with our new Backup Server in the Cloud at CloudAtCost. And, like the other two, a one-time investment of $10.50 gets you a 10GB cloud repository to store your most important Asterisk® files for life!1 If you’re feeling really adventurous, you can double or quadruple your resources and your storage capacity at the same great 70% off rates with CloudAtCost coupon code: TAKE70. Some have asked us for a referral code to give credit where credit is due. Thanks for thinking of us, but we already have all of the CloudAtCost resources we could ever use. So this one, like the two before it, is on us!


https://youtu.be/INVaNT1R_jE

We recommend you start by building an Incredible PBX platform at CloudAtCost using our previous tutorial. Is it production-ready? Probably not. Is it a good standby server which can swing into action when your primary server croaks? Absolutely. Can it be used for off-site storage of backups from your primary Incredible PBX server? You bet. And today we’ll show you how. It’s about a 10-minute process once you have Incredible PBX up and running in the Cloud. We’ll also provide an updated Incredible Backup script to transparently upload backup images to your new CloudAtCost backup server.

Got DAV?It’s been quite a while since we first explored WebDAV back in 2005. Today we’re going to bolt on WebDAV to your existing Incredible PBX platform so that some of that spare storage space in the Cloud can be used to house snapshot images of your Incredible PBX production server. Since this will be a fully-functioning Incredible PBX server in addition to serving as a backup server, it can perform double-duty as a hot standby on a moment’s notice. When disaster strikes, restore the latest backup which happens to be colocated on your Cloud server, and you’ll be back in business.

Overview. As you probably know, WebDAV is an acronym for Web-based Distributed Authoring and Versioning. Simply put, it is an HTTP protocol extension that allows people anywhere on the Internet to edit and manage documents and other files using the same protocol and port used for surfing the web. In the Mac and Linux worlds, WebDAV provides a Disk Volume that “looks and feels” like any other networked hard disk. In the Windows world, WebDAV is called Web Folders. They can be used like any other mapped drive in Network Neighborhood. If you’re still a little fuzzy about the WebDAV concept, think of how you link to another drive on your local area network. WebDAV gives you the same functionality across the entire Internet with virtually the same ease of use. Depending upon user privileges, of course, you can copy files to and from a WebDAV volume, and the protocol imposes versioning control through file locking to assure that multiple people with access rights don’t change the same file at the same time.

Initial Setup of WebDAV in the Cloud. For today, we’re assuming you already have a functioning Incredible PBX server at CloudAtCost running under CentOS 6.7. If not, start with our tutorial here. If you’d prefer to use the Linux Sandbox configuration for your WebDAV platform, skip down to the next section. To keep things simple, we’re going to set up a separate dav directory within your existing Incredible PBX cloud server to use for WebDAV storage. This means files and folders managed with WebDAV will appear in /var/www/html/dav on your server. We’ll password-protect the directory using Apache web credentials for the admin user. You first must set up these credentials by issuing the following command while logged into your server as root:

htpasswd /etc/pbx/wwwpasswd admin

To activate WebDAV on your Incredible PBX server at CloudAtCost, while still logged into your server as root, issue the following commands:

mkdir /var/www/html/dav
chown asterisk:asterisk /var/www/html/dav
chown asterisk:asterisk /var/lib/dav
cd /etc/pbx/httpdconf
wget http://incrediblepbx.com/dav.conf
service httpd restart

Keep in mind that WebDAV is running on an Incredible PBX server which means that remote HTTP access will require that your remote IP address be in the IPtables WhiteList. You can add it easily using the add-ip or add-fqdn utilities in /root. Don’t forget, or none of this will work.

Setting Up WebDAV on a CloudAtCost Linux Sandbox. If you’d prefer to set up WebDAV on a Linux Sandbox at CloudAtCost rather than the Incredible PBX platform, begin by installing the sandbox by following along in the Nerd Vittles tutorial. Once you’re up an running, issue the following commands to activate WebDAV:

mkdir /etc/pbx
htpasswd -c /etc/pbx/wwwpasswd admin
mkdir /var/www/html/dav
chown apache:apache /var/www/html/dav
cd /etc/httpd/conf.d
wget http://incrediblepbx.com/dav.conf
service httpd restart

You won’t have to whitelist the IP address of your local Incredible PBX server in the IPtables firewall running on your WebDAV server at CloudAtCost because port 80 already is whitelisted in the default Linux Sandbox setup.

Accessing WebDAV in the Cloud. As installed, you’ll need your username (admin) and your Apache password assigned above to access your WebDAV server in the Cloud. Use a browser for read only access to the dav directory at the IP address of your server, e.g. http://23.45.67.89/dav. Or establish a network share to the WebDAV resource for read and write access.

Configuring a Local CentOS/SL Server for WebDAV Access. Linux needs something special in order to treat remote WebDAV resources as part of your local file system. Fortunately, there is a packaged solution that does all the heavy lifting for you. On every CentOS/Scientific Linux server from which you want to access remote WebDAV resources, issue the following commands while logged into the server as root:

yum -y install davfs2
mkdir /dav
cd /root
wget http://incrediblepbx.com/incrediblebackup-dav
chmod +x incrediblebackup-dav

Configuring a Local Debian/Ubuntu/Raspbian Server for WebDAV Access. The setup drill is much the same as it is for CentOS except the package installation syntax needs to be adjusted. On every Debian, Ubuntu, or Raspbian (Raspberry Pi) server from which you want to access remote WebDAV resources, issue the following commands while logged into the server as root:

apt-get -y install davfs2
mkdir /dav
cd /root
wget http://incrediblepbx.com/incrediblebackup-dav
chmod +x incrediblebackup-dav

Connecting to Your WebDAV Server in the Cloud. The new Incredible Backup script, /root/incrediblebackup-dav, will automatically make a connection to your new WebDAV server in the Cloud once you’ve entered your admin credentials and the IP address of your WebDAV server. Do this by editing incrediblebackup-dav. Just plug in your admin password and the IP address of your WebDAV server in the Cloud. Then save the file.

In case you’re curious, here is the command to access WebDAV as a file system from your local server. Assuming admin:passwd555 were your remote Apache credentials and 23.45.67.89 was the IP address of your CloudAtCost server, the mount command would look like this:

echo passwd555 | mount.davfs http://23.45.67.89/dav /dav -o username=admin

All of the /dav files on the WebDAV server in the Cloud then would be accessible in the /dav directory on your local server until the WebDAV connection was closed/unmounted. You can add, edit, and delete files and directories. All of your local changes will automatically be synchronized with your WebDAV server in the Cloud.

To close the WebDAV connection, issue the following command:

umount.davfs /dav

Making a Backup to Your WebDAV Server in the Cloud. This is the easy part. Once everything is in place and you have configured the Incredible Backup script with your admin credentials and WebDAV server’s IP address, you’re ready to kick off a backup. Just issue the following command while logged into your server as root:

/root/incrediblebackup-dav

Restoring a Backup from Your WebDAV Server in the Cloud. There are two ways to do this. If your local server and Cloud-based server are running identical versions of Incredible PBX, then you can restore the backup image to your Cloud server and run Incredible PBX in the Cloud. Simply move the desired backup file from /var/www/html/dav on the Cloud server to /backup and then run incrediblerestore from the /root folder. Once the restore completes, reboot your Cloud server, reconfigure the IP addresses of your phones, and you’re back in business.

If you’d prefer to restore a backup from the Cloud to a local server, then you would first build a new server to match the one from which the backup was originally made. Next, configure the new server to support WebDAV access to your Cloud-based server following the tutorial above. Then execute the following commands after logging into your local server as root. Use the credentials, IP address, and actual backup filename saved on your Cloud server:

mkdir /backup
cd /root
echo passwd555 | mount.davfs http://23.45.67.89/dav /dav -o username=admin
cp /dav/backupfilename.tar.gz /backup/.
umount.davfs /dav
./incrediblerestore /backup/backupfilename.tar.gz
rm /backup/backupfilename.tar.gz

WebDAV Cautionary Notes and Gotchas. First, WebDAV does a lot of heavy lifting under the covers because its intended for use as a collaboration tool by multiple people accessing and updating the same resources. So synchronization is important. When we’re moving huge files from a local server to the WebDAV cloud, this synchronization activity can give the appearance that your server has hung either during the backup procedure or thereafter. It hasn’t. So, after you run the Incredible Backup script to upload a new backup image, leave your server alone for a while. On your local server, don’t attempt to list /dav or otherwise use it for about an hour to be safe. On a Raspberry Pi, just be patient while the backup procedure completes. After that, you should be good to go. Depending upon the Linux flavor of your local server, the Incredible Backup script may not dismount your WebDAV resource successfully. You can do this manually LATER although it won’t hurt anything to leave the connection in place. As noted above, the dismount command is umount.davfs /dav.

Second, be very careful in configuring Incredible Backup to make certain that you specify the correct IP address for your WebDAV server in the Cloud. WebDAV will try to connect to any IP address, and you don’t want to inadvertently upload your backup files to someone else’s server. Third, ALWAYS use a web browser to access your WebDAV server in the Cloud after your backup completes to make certain that a backup with the current date and time is shown in the directory listing. Particularly with RedHat OS flavors, it may take some time for the entire tarball upload to complete even though the script will indicate it has finished. Again, patience is a virtue. Don’t reboot. Things will get sorted out in due course.

Finally, as with other network connections, if the WebDAV connection fails for some reason, your backup would be stored locally in the /dav folder rather than on WebDAV in the Cloud. That’s obviously not too helpful in the event of a local disk crash. So don’t forget to check your WebDAV server in the Cloud to verify successful completion of the backup.

Enjoy!

Republished: Monday, April 25, 2016




blank
Need help with Asterisk? 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. The lifetime promise is, of course, in the eye of the beholder. It may be your lifetime but, more than likely, it’s the lifetime of CloudAtCost. The two are not necessarily the same so plan accordingly. 🙂 []

No Brainer: Free Cell Service, Free Texting, Free Data Plan + Free SIP Trunk

blank

Suppose we told you there was a cellular reseller in the United States that would give you 3,250 minutes of free calling every month with a free Sprint phone. And, to sweeten the pot, you could also use those minutes as a SIP trunk on any Asterisk® server to make 3,250 minutes of free calls in the United States every month. Let’s not stop there. Suppose the provider would also throw in 3,250 SMS messages as well as 3,250 megs of data each month so you could surf the web, read your emails, and watch movies on your new smartphone. Crazy, huh? Too good to be true? Suppose we told you our family has been using this service since February with crystal-clear calling, zero outages, and flawless texting and Internet service on four phones! Suppose we told you we were using these same four lines to provide free calling on four different Incredible PBX servers scattered across the United States.

Well, folks, it’s all true and today only starting at 5 p.m. Eastern daylight time until midnight, it’s your lucky day! What’s the catch? There’s a one-time, $32.50 non-refundable deposit to cover overages in minutes, messages, and data. If you’d prefer to borrow a Sprint-compatible phone from the company, there’s a deposit on the loaner phone. The cost ranges from $30 to $140 which is refunded when you return the phone in good condition. Complete plan details are available here.


blank

We’ve had running discussions about RingPlus on both the PIAF Forum and DSL Reports for a couple months so you can read all the history and comments if you’re interested. Our bottom line goes like this. What if RingPlus goes out of business? What’s my Breakeven Date, i.e. the day on which I will recover my initial deposit on the phone service plus the cost of the phone versus the cost of comparable service with a competitor? Frankly, that’s all you should care about. And, for today’s deal, that works out to less than two months regardless of which other provider you choose. Any free service after that date is pure gravy. RingPlus may last an extra month, or it still may be going five years from now. Either way, you win. And we’ll be looking forward to your Nerd Vittles donation on June 24 when you reach your Breakeven Date. Just click Help the Nerdy in the upper right corner of our site. 😉

If you really believe in CYA and need a new smartphone anyway, then trot down to your local Apple Store today and purchase an unlocked iPhone SE for $399. Be sure to specify the Sprint model. It can be used to sign up with RingPlus at 5 p.m. And, if RingPlus croaks, this Sprint-model phone still will work with AT&T, T-Mobile, Sprint, or any Sprint MVNO. You also have 14 days to return it for a full refund!

Today’s To-Do List. So you want to take the plunge. Here’s how to get started. First, go to RingPlus.net and click the Sign Up button promptly at 5 p.m. This plan is advertised on SlickDeals so the loaner phones will go quickly. Click Select Plan under the Elevator free plan description. When the Sign Up page appears, click Purchase a Phone at the RingPlus Store. Click on the Phones tab and choose Loaner Phones. If you prefer, you can also purchase a smartphone from about two dozen choices with prices starting at $65. Choose your phone and click Add to Cart. Then complete the rest of the checkout procedure to order your phone. When your phone arrives in a couple of weeks, you’ll receive instructions to sign up for the Elevator Free Plan. Our previous article on RingPlus will guide you through the rest of the activation process. Enjoy!

Originally published: Sunday, April 24, 2016




blank
Need help with Asterisk? 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…

Taking a Fresh Look at the Asterisk, FreePBX, and Incredible PBX Security Models

About once a year, we try to shine the spotlight on Asterisk® security in hopes of saving lots of organizations and individuals a little bit (or a lot) of money. In light of last week’s major security lapse in the Asterisk® dialplan of those using FreePBX® since the Asterisk@Home days, now seemed like a good time for a review. As we’ve noted before, the problem with open source phone systems is they’re open source phone systems. So the bad guys can figure out how they work just like the good guys. Unfortunately, some of the bad guys are paying particular attention to Asterisk and FreePBX so it behooves all of us to remain vigilant and patch vulnerabilities quickly. The FreePBX Devs have done an admirable job in responding quickly to this issue.

Last week’s vulnerability involves the call transfer methodology that has been incorporated into FreePBX-based Asterisk servers for at least a decade. In a nutshell, it allows an internal or outside caller or called party to transfer a call using touchtones instead of a dedicated transfer button or hook flash. ## performs a blind transfer while *2 sets up an attended transfer where the person transferring the call can actually talk to the transfer recipient before executing the call transfer. Some of our foreign friends used this *2 methodology to initiate calls to Asterisk servers and then to transfer those calls to expensive destinations while the other party to the call listened to music on hold. Worse yet, it could be performed within an answering IVR on some servers so the administrator never knew the call transfer took place other than reviewing the call detail records. As with some previous vulnerabilities, this one had lain dormant since the inception of call transfer technology in Asterisk. The default settings in FreePBX permitted outside calling or called parties to initiate transfers using these feature codes. We’re reminded of a similar vulnerability that used to exist in many Asterisk voicemail systems that allowed callers to dialout to another number from within the voicemail system.

We hope to persuade you today that allowing transfer of calls using touch tones is a very bad idea to begin with. Even when you don’t get a surprise phone bill, it often results in unanticipated consequences such as depicted in this video shared on DSL Reports:


https://youtu.be/bnMVebywX6Y

Here’s how you can protect any server that uses all or some of the FreePBX GUI. First, be aware that the FreePBX developers are working on a rewrite of the Core component in versions 13 and 12. The fix would limit use of this technology to those on the internal side of a PBX. In other words, remote callers would be blocked from calling into an Asterisk server and transferring themselves to a phone on a cruise ship sailing in the Indian Ocean. In the meantime, issuing the following commands will patch things up:

mysql -uroot -ppassw0rd asterisk -e "update freepbx_settings set value = 'tr' where keyword = 'DIAL_OPTIONS' limit 1"
mysql -uroot -ppassw0rd asterisk -e "update freepbx_settings set value = '' where keyword = 'TRUNK_OPTIONS' limit 1"
amportal a r

For those using Incredible PBX™, the Automatic Update Utility will patch your server the next time you log in as root.

Olle Johansson has been one of the primary shakers and movers when it comes to educating folks on Asterisk security and inspiring developers to do a better job designing these systems. If you didn’t attend AstriCon 2013 and haven’t watched the Security Master Class, put these videos on your Bucket List. They’re all free and well worth your time.

When we began building out Incredible PBX on other platforms several years ago, we decided it was an opportune time to revisit our Asterisk security model and make it as bullet-proof as possible given the number of people now deploying Asterisk servers in the cloud. As a practical matter, there are no hardware-based firewalls to protect you with many of the cloud-based systems. So you literally live or die based upon the strength of your own software-based security model.

As in the past, security is all about layers of protection. A bundle of sticks is harder to break than a single stick. There now are Incredible PBX builds for CentOS, Scientific Linux, Ubuntu 14, and the latest Raspbian 8 for the Raspberry Pi 2 and 3. All of these releases include the new Incredible PBX security model. Here’s how it works…

The 7 Security Layers include the following, and we will go into the details below:

  1. Preconfigured IPtables Linux Firewall
  2. Preconfigured Travelin’ Man 3 WhiteLists
  3. Randomized Port Knocker for Remote Access
  4. TM4 WhiteListing by Telephone (optional)
  5. Fail2Ban
  6. Randomized Ultra-Secure Passwords
  7. Automatic Security Updates & Bug Fixes

1. IPtables Linux Firewall. Yes, we’ve had IPtables in place with PBX in a Flash for many years. And, yes, it was partially locked down in previous Incredible PBX releases if you chose to deploy Travelin’ Man 3. Now it’s automatically installed AND locked down, period. As installed, the new Incredible PBX limits login access to your server to those on your private LAN (if any) and anyone logging in from the server’s public or private IP address and the public IP address of the desktop machine used to install the Incredible PBX software. If you or your users need access from other computers or phones, those addresses can be added quickly using either the Travelin’ Man 3 tools (add-ip and add-fqdn) or using the Port Knocker application running on your desktop or smartphone. All you need is your randomized 3 codes for the knock. You can also enable a remote IP address by telephone. Keep reading!

blank

2. Travelin’ Man 3 WhiteLists. As in the past, many of the major SIP providers have been whitelisted in the default setup so that you can quickly add new service without worrying about firewall access. These are providers that we’ve used over the years. The preconfigured providers include Vitelity (outbound1.vitelity.net and inbound1.vitelity.net), Google Voice (talk.google.com), VoIP.ms (city.voip.ms), DIDforsale (209.216.2.211), CallCentric (callcentric.com), and also VoIPStreet.com (chi-out.voipstreet.com plus chi-in.voipstreet.com), Les.net (did.voip.les.net), Future-Nine, AxVoice (magnum.axvoice.com), SIP2SIP (proxy.sipthor.net), VoIPMyWay (sip.voipwelcome.com), Obivoice/Vestalink (sms.intelafone.com), Teliax, and IPkall. You are, of course, free to add other providers or users using the whitelist tools being provided. add-ip lets you add an IP address to your whitelist. add-fqdn lets you add a fully-qualified domain name to your whitelist. del-acct lets you remove an entry from your whitelist. Because FQDNs cause problems with IPtables if the FQDN happens to be invalid or non-functional, we’ve provided a customized iptables-restart tool which will filter out bad FQDNs and start up IPtables without the problematic entries.

Be advised that whitelist entries created with PortKnocker are stored in RAM, not in your IPtables file. These RAM entries will get blown out of the water whenever your system is restarted OR if IPtables is restarted. Stated another way, PortKnocker should be used as a stopgap tool to get new IP addresses qualified quickly. If these addresses need access for more than a few hours, then the Travelin’ Man 3 tools should be used to add them to your IPtables whitelist. If your whitelist setup includes dynamic IP addresses, be aware that using ipchecker in a cron job to test for changing dynamic IP addresses will remove PortKnocker whitelist RAM entries whenever an IP address change triggers an iptables-restart.

For more detail on Travelin’ Man 3, review our original tutorial.

blank

3. PortKnocker WhiteListing. We’ve previously written about PortKnocker so we won’t repeat the article here. Simply stated, it lets you knock on three ports on a host machine in the proper order to gain access. If you get the timing and sequence right, the IP address from which you knocked gets whitelisted for access to the server… with appropriate admin or root passwords, of course. The knocking can be accomplished with either a command line tool or an iOS or Android app using your smartphone or tablet. As noted above, it’s a terrific stopgap tool to let you or your users gain quick access to your server. For the reasons we’ve documented, don’t forget that it’s a stopgap tool. Don’t use it as a replacement for Travelin’ Man 3 whitelists unless you don’t plan to deploy dynamic IP address automatic updating. Just to repeat, PortKnocker whitelists get destroyed whenever IPtables is restarted or your server is rebooted. You’ve been warned.

4. TM4 WhiteListing by Telephone. Newer releases of Incredible PBX are preconfigured with ODBC support for telephony applications. One worth mentioning is our new Travelin’ Man 4 utility which lets a remote user dial into a dedicated DID and register an IP address to be whitelisted on the server. Within a couple minutes, the user will be sent an email confirming that the IP address has been whitelisted and remote access is now enabled. For phone systems and administrators supporting hundreds of remote users, this new feature will be a welcome addition. It can be configured in a couple minutes by following the Installation instructions in the Travelin’ Man 4 tutorial. Unlike PortKnocker, whitelisted IP addresses added with TM4 are permanent until modified by the remote user or deleted by the administrator.

blank

5. Fail2Ban. We’ve never been a big fan of Fail2Ban which scans your logs and blacklists IP addresses after several failed attempts to log in or register with SSH or Apache or Asterisk. The reason is because of documented cases where attacks from powerful servers (think: Amazon) completely overpower a machine and delay execution of Fail2Ban log scanning until tens of thousands of registration attempts have been launched. The FreePBX folks are working on a methodology to move failed login attempts to a separate (smaller) log which would go a long way toward eliminating the log scanning bottleneck. In the the meantime, Fail2Ban is included, and it works when it works. But don’t count on it as your only security layer.

blank

6. Randomized Passwords. With the new security model described above, we’ve dispensed with Apache security to protect FreePBX® access. These new Incredible PBX releases rely upon the FreePBX security model which uses encrypted passwords stored in MySQL or MariaDB. As part of the installation process, Incredible PBX randomizes ALL FreePBX passwords including those for the default 701 extension as well as the admin password. When your new Incredible PBX install completes, the most important things to remember are your (randomized) FreePBX admin password AND the (randomized) 3 ports required for Port Knocker access. Put them in a safe place. Sooner or later, you’ll need them. You can review your PortKnocker settings in /root/knock.FAQ. We’ve also included admin-pw-change in the /root folder for those that are too lazy to heed our advice. With the new security model, there is no way to look up your admin password. All you can do is change it… assuming you haven’t also forgotten your root password. 😉

7. Automatic Update Service. All new Incredible PBX builds include an automatic update service to provide security patches and bug fixes whenever you log into your server as root. It saved you just last week! If you don’t want the updates for some reason, you can delete the /root/update* file from your server. If the cost of maintaining this service becomes prohibitive, we may implement a pay-for-service fee, but it presently is supported by voluntary contributions from our users. It has worked extremely well and provided a vehicle for pushing out updates that affect the reliability and security of your server.

A Word About IPv6. Sooner or later Internet Protocol version 6 will be upon us because of the exhaustion of IPv4 IP addresses. Incredible PBX is IPv6-aware and IPtables has been configured to support it as well. As deployed, outbound IPv6 is not restricted. Inbound access is limited to localhost. You, of course, are free to modify it in any way desired. Be advised that disabling IPv6 localhost inbound access will block access to the FreePBX GUI. Don’t ask us how we know. 🙂

Originally published: Monday, April 18, 2016




blank
Need help with Asterisk? 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…

Chasing the Asterisk Rainbow: An Incredible PBX for Everyman… and Woman

The one thing we’ve learned over the past decade is that everyone’s telecommunications needs are different. We began the Incredible PBX™ project by offering a script for PBX in a Flash™ that enhanced its functionality by adding three dozen applications for Asterisk® plus a rock-solid, preconfigured firewall. We expanded on that initial design by offering installers to support both Elastix® 4.0 and even the FreePBX® Distro and AsteriskNOW. But many asked for something more. Some wanted a turnkey install on inexpensive hardware so we now have a Raspberry Pi® 3 image that configures itself in under a minute. Others wanted and we provided an ISO image that could be loaded onto a USB thumb drive and used to install Incredible PBX on virtually any standalone hardware platform including the $200 Intel NUC. Then there were the enthusiasts that insisted upon virtual machines for virtually everything. So we built Incredible PBX images for Proxmox, and VirtualBox, and VMware. All of these builds could be set up about as quick as you can snap your fingers. Still others believed that all computing should be handled with Cloud-based servers. So we created a $10.50 solution for lifetime Cloud computing with CloudAtCost, a $5/month solution with Digital Ocean, and a $15/month rock-solid reliable PBX with RentPBX. Finally, there were operating system purists. Some preferred RedHat/CentOS/Scientific Linux while others swore by Debian or Ubuntu or Raspbian 8. So we added Incredible PBX builds for every conceivable operating system.

What remained consistent through all of these Incredible PBX iterations was our absolute commitment to providing a secure computing environment out of the box with a feature set unmatched in both the open source and commercial PBX communities. But, of course, there is always someone that doesn’t want features and prefers a secure platform on which to build their own servers. We’ve even accommodated that request with the Lean, Mean Edition of Incredible PBX.

So, today while we work on taxes, you can take a leisurely stroll through all of the available Incredible PBX links above and choose a platform that best meets your needs. Our other uncompromising feature is price. Incredible PBX is and always will be free with NoGotchas. If you’re still confused about choosing a favorite build, try our Decision Tree below. It’ll give you suggestions in less than a minute. Come join the party!

Originally published: Monday, April 11, 2016




blank
Need help with Asterisk? 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…

TrueCNAM: A Breath of Fresh Air for CNAM Lookups and CallerID Superfecta


blank

It’s always nice to see your baby grow up. Nearly a decade ago, we introduced an AGI script for Asterisk@Home known as CallerID Trifecta for FreePBX® 2.2.0. As sources of CNAM lookups expanded, a number of other individuals contributed code to support those lookups. When we added a fourth CNAM lookup source, the original application morphed into CallerID Superfecta. Then we gave up. The source lookups became too numerous to mention much less name. But all of the original code still resided in a difficult-to-maintain PHP/AGI script.

Tony Shiffer picked up the ball and converted the application into a FreePBX module which made it incredibly easy to add new providers and to configure the ones you wished to use. Then Jeremy Jacobs with help from other members of the PBX in a Flash™ Forum community released a real masterpiece, CallerID Superfecta 2.0. Thanks to the efforts of Lorne Gaetz and POSSA, CallerID Superfecta became a truly collaborative, open source project. The number of CNAM sources continued to expand with support for international sources around the world. Then came additional functionality to allow Asterisk® interfaces to XBMC, SqueezeBox, MythTV, and Growl among others. Finally, additions were added to assist in dealing with annoying SPAM calls. Even though CallerID Superfecta has continued to flourish, the number of free and almost free lookup sources particularly in the United States has dwindled as more and more providers cashed in to make their VoIP fortunes.

blank

Introducing TrueCNAM: The Spammer’s Worst Nightmare

Today, we’re pleased to introduce a new CNAM service, TrueCNAM, that strikes what we believe is a fair balance between free and incredibly affordable commercial tiers with appeal to a broad cross-section of the VoIP community. In addition, James Finstrom has introduced a CallerID Superfecta module for TrueCNAM making it easy to implement and configure.

What Do It Do? Let’s start with the basics for those just learning about CallerID. Ma Bell in her infinite wisdom designed a scheme for looking up a Caller Name (CNAM) to match a phone number whenever an incoming call arrived at your home or office. Instead of sending both the phone number and the CNAM down the wire, virtually all providers throw the CNAM portion of the CallerID sent by the calling party in the bit bucket. On the receiving end, the CallerID number is looked up in a proprietary directory to retrieve the matching CallerID name. The problem, of course, is gaining access to these proprietary directories which are maintained by various providers that make a tidy sum charging fees for access. What TrueCNAM does is to access data from carriers and service providers to retrieve a best match for the phone number that is presented. In addition, TrueCNAM has developed its own CNAM repository so that customers can enter names for unpublished numbers such as cellphones.

In addition to CNAM lookups, TrueCNAM has another awesome feature. TrueCNAM adds a SPAM scoring mechanism called TrueSpam which assigns a numerical score (0-100%) assessing the likelihood that the incoming caller is a spammer. We’re not huge fans of blacklists because typically the bad guys are smarter than those managing the blacklist. But this is a new kind of "revolving blacklist." TrueSpam scores can increase, decrease, or become "0″ again in the future depending on the data-points seen for them over time. The data sources used for calculating TrueSpam scores include:

  • Live traffic flows from carriers, service providers, and end-users utilizing the service.
  • A network of hundreds of thousands of honeypot numbers primarily in North America. Honeypot numbers are telephone numbers that are not connected to an end-user that TrueSpam receives real-time data on. This helps identify many of the most infamous RoboCallers.
  • Feedback from end-users indicating a number is or is not spam.
  • Public and private complaint data feeds from multiple government agencies. Additional sources are actively being negotiated.
  • Other third-party sources found to be highly accurate.

All of these sources then are aggregated and weighted via an algorithm to produce and update TrueSpam scores in real-time. Most importantly, telemarketing and robocalling numbers frequently are identified and scored within minutes of the first calls.

We believe that coupling TrueSpam with CNAM lookups is a terrific addition particularly for business users. And some providers such as CallCentric have integrated TrueSpam reporting directly into their VoIP offerings to block robocalls. Hopefully, others will follow.

TrueCNAM was kind enough to offer us a Business account so that we could more easily run TrueCNAM through its paces. In a word, it PASSED with flying colors. If you live in the United States, TrueCNAM will become your primary lookup tool based upon both functionality and cost. And Mr. Finstrom’s module for CallerID Superfecta makes TrueCNAM downright irresistible.

Installing TrueCNAM with CallerID Superfecta

There are any number of ways to integrate TrueCNAM into a VoIP server. The TrueCNAM web site will walk you through using the TrueCNAM API for those that are interested. For today, we’ll show you the easiest way to deploy it using an existing CallerID Superfecta module on any Incredible PBX™ or FreePBX server platform. Unless you’re using Incredible PBX, you may have to manually install the CallerID Superfecta module using Module Admin or GitHub. Once you’ve gotten that far, the next step is to add the TrueCNAM module to your CallerID Superfecta platform. This can be done from GitHub, or you can log into your server and issue the following commands:

cd /
wget http://incrediblepbx.com/TrueCNAM.tar.gz
tar zxvf TrueCNAM.tar.gz
rm -f TrueCNAM.tar.gz

Establishing a TrueCNAM Account and Obtaining Credentials

To get started, sign up for the Free account on the TrueCNAM site. Note that you’ll have to add a phone number to the TrueCNAM directory to take advantage of the free account, a small price to pay. 😉

blank

Once your account is established, log in with your credentials and choose MyAccount -> Account Settings -> API Keys. Click on the Add API Key button to generate your API credentials. Write them down. You’ll need them below. Now log out.

Configuring TrueCNAM with CallerID Superfecta

Once you have the TrueCNAM module installed and after you’ve set up your TrueCNAM account and obtained your credentials, fire up your favorite Incredible PBX or FreePBX GUI and choose Admin -> CID Superfecta -> Default. Now follow these steps to set up TrueCNAM with your credentials.

blank

(1) Find TrueCNAM in the listing of Superfecta modules and click the Enabled button.

(2) Use the UP icon beside TrueCNAM to drag it up near the top priority slot for CallerID Superfecta. Personal directories should still take precedence.

(3) Click on the TrueCNAM label to open the Settings menu for the Module and enter your APIkey and Password from your TrueCNAM registration.

(4) Unless you know what you’re doing, leave TrueSPAM checked with the Threshold set at 80.

(5) Click the Submit button to save your credentials.

(6) Drop down to the end of Superfecta Template and (1) enable SPAM Interception, (2) change the SPAM Send Threshold from 3 to 1, and (3) choose a Destination for SPAM calls:

blank

(7) Click Agree and Save to store your Default Superfecta setup.

Activating CallerID Superfecta for Desired Inbound Routes

Both Incredible PBX and the FreePBX GUI manage CNAM lookups as part of the Inbound Route setup. If you have multiple inbound routes, then you have to enable CallerID Superfecta on each route on which you want it activated. It’s important to note that you do NOT want to activate a CID Lookup Source AND Superfecta CID Lookup on the same route! So the CNAM setup for each inbound route should look something like the following. Enjoy!

blank

Originally published: Monday, April 4, 2016




blank
Need help with Asterisk? 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…