Home » Incredible PBX » Raspberry Pi (Page 10)

Category Archives: Raspberry Pi

The Most Versatile VoIP Provider: FREE PORTING

Introducing Incredible Fax 2020 for Raspberry Pi



Incredible Fax 2020 for the Raspberry Pi was the final missing piece in our 2020 rollout, and today we’re pleased to introduce it. Incredible Fax 2020 provides fax detection on incoming calls, email deliveries of incoming faxes in PDF format, and the ability to send faxes with attachments from the convenience of your favorite web browser. And, as with every Incredible PBX 2020 platform, all of the software is FREE.

Installation of Incredible Fax 2020 on the Raspbian platform is pretty simple. Just issue the following commands to put all the pieces in place and run the HylaFax and AvantFax installers. Before faxes can actually be delivered in PDF format, you obviously need outbound emails working on your Raspberry Pi. We’ll cover that in the next section. Before incoming faxes can be detected on Inbound Routes for your trunks, you’ll need to set that up in FreePBX®. We’ll cover that below as well.

Installing Incredible Fax 2020 for Raspbian 10


Let’s begin by installing the Incredible Fax 2020 software. Log into the Linux command line interface as root using SSH or Putty. Then execute the following commands:

cd /root
rm -f incrediblefax*
wget http://incrediblepbx.com/incrediblefax2020-raspi.tar.gz
tar zxvf incrediblefax2020-raspi.tar.gz
rm -f incrediblefax2020-raspi.tar.gz
./incrediblefax2020-raspi.sh
fwconsole ma downloadinstall fax
fwconsole reload

Once the HylaFax/AvantFax install begins, press the ENTER key about a dozen times to accept all of the defaults during the install procedure. Then reboot your server.



Configuring Gmail as Exim Smart Relay Host

Most Raspberry Pi implementations will be on networks managed by companies like Comcast, Spectrum, and AT&T that block downstream mail servers (that’s you) from sending email. The solution is to use Gmail or your local ISP as a smart relay host to send mail from your server. You’ll need this to deliver voicemails and faxes via email. Here’s how to set it up using a Gmail account without two-step authentication. Log into your server as root and run dpkg-reconfigure exim4-config. Choose "mail sent by smarthost; received via SMTP or fetchmail." Accept all the defaults until you get to Outgoing Smarthost prompt. Enter: smtp.gmail.com::587. At the following prompts, choose NO, NO, mbox, and NO. When the setup completes, edit /etc/exim4/passwd.client and insert the following line using your Gmail AcctName and AcctPW. NOTE: If you are using a Gmail account with 2-step verification enabled, you MUST use a Gmail App Key instead of your Gmail account password. You also must enable Less Secure Apps access to your Gmail account.

smtp.gmail.com:AcctName@gmail.com:AcctPW

Save the file and then issue the following commands to complete the setup:

update-exim4.conf
systemctl restart exim4
exim4 -qff

Now send yourself a test email message to make sure things are working properly:

echo "test" | mail -s testmessage yourname@yourmailprovider.com

Configuring Inbound Routes for Fax Detection

Not all VoIP trunks support fax transmission, e.g. Vitelity. Assuming yours do and you’ll only know by trial and error, here’s how to configure FreePBX to automatically detect incoming faxes and process them for PDF delivery by email.

Edit each of your Inbound Routes. Under the Fax tab, enter the following settings:

Detect Faxes: YES
Fax Detection Type: SIP
Fax Ring: YES
Fax Detect Time: 4
Fax Destination: Custom Destinations -> Fax (Hylafax)

Managing Faxes with AvantFax

You can manage your incoming and outgoing faxes using AvantFax. Click on the AvantFax tab in FreePBX to access it. The default credentials are admin:password. When you first access AvantFax with a browser, you may get a missing page error. Just press the back arrow key in your browser and the AvantFax main page will appear.

If you want to change the admin password for AvantFax, log into your server as root with SSH/Putty and issue the command: /root/avantfax-pw-change.

Send yourself a fax at no cost in the United States from FaxZero. Enjoy!

Originally published: Tuesday, February 25, 2020



Need help with Asterisk? Visit the VoIP-info 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.

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

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

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

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



Future-Proofing FreePBX Distro with Incredible PBX Skin



If you’ve been following along on Sangoma’s FreePBX® power grab and are waiting for the next shoe to drop on the PBX that your users depend upon to conduct business and make emergency calls, we now have a non-intrusive solution for those on the FreePBX Distro platform. By installing the Incredible PBX branding module and updating to the patched Framework module on your PBX, you can insulate yourself from future Sangoma surprises including potential ramifications arising from revocation of the original FreePBX signing key.

NOTE: THIS IS NOT A FORK OF THE FREEPBX PROJECT. IT IS AN EMERGENCY PATCH TO NEUTRALIZE THE DAMAGE POSED BY SANGOMA’S PUBLIC THREAT TO DISRUPT THE COMMUNICATIONS SERVICES OF APPROPRIATELY LICENSED INCREDIBLE PBX 2020 TRUNKING PLATFORMS ON MONDAY, FEBRUARY 17, 2020. See 18 U.S.C. 1030(a)(7).

The Incredible PBX branding module is owned by Clearly IP and, with their permission, it is being offered at no cost for use on FreePBX Distro platforms pursuant to the terms of the AGPLv3 license. What does it do? In a nutshell, it gets you out from under the yoke of Sangoma for module administration and unauthorized tampering with your PBX.

Here are the specifics on what deployment of the Incredible PBX branding module will do:

  1. Rebrands FreePBX with Incredible PBX logos and artwork.
  2. Adds Incredible PBX and Nerd Vittles RSS Feeds to the FreePBX Dashboard.
  3. Disables the flow of proprietary info about your phones, trunks, and usage to Sangoma.
  4. Offers multiple module repository setups (soon) for sites with varying technical skillsets.
  5. Links Incredible PBX to ClearlyIP stores for Trunking and Incredible Phone purchases.
  6. Supports multiple GPG key signatures including the original FreePBX GPG key.
  7. Connects Module Admin to ClearlyIP Module Repos for future FreePBX updates.

As if the last few weeks haven’t provided enough reasons for any administrator to separate their PBX from the whims of Sangoma, here are some other factors which, we believe, make this migration compelling:

  1. Future-proofs your PBX from future Sangoma surprises that may damage your PBX.
  2. Provides a more redundant repository platform unlike Sangoma’s fragile repository.
  3. Provides instant access to all ClearlyIP-developed modules moving forward.
  4. Provides instant access to all existing and future FreePBX module releases.
  5. Addition of future Incredible PBX components is exclusively on an opt-in basis.
  6. Provides access to ClearlyIP Trunking module with integrated SMS and Kari’s Law 911.
  7. Provides access to Incredible IP Phone store for plug-and-play SIP telephones.
  8. Provides a revenue stream for Incredible PBX and ClearlyIP future development.

Deploying the Incredible PBX Branding Module

This deployment guide assumes you have a functioning FreePBX Distro platform with FreePBX 15, Linux 7.x, and Asterisk 16. If not, start here. Otherwise, login to the FreePBX web GUI as an administrator and perform the following steps:

  • Make a Backup (Admin • Backup & Restore • Add Backup)
  • Download the Incredible PBX Module to your Desktop PC
  • Install the Module (Admin • Module Admin • Upload Module from Hard Disk)
  • Update the patched Framework Module (Admin • Module Admin • Check Online)
  • Install Clearly Devices and Trunking Module, if desired
  • Verify all is well by viewing FreePBX Dashboard (see screenshot above)

Originally published: Tuesday, February 11, 2020



Need help with Asterisk? Visit the VoIP-info 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.

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

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

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

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



Sangoma Developments Affecting All FreePBX Users



On Friday evening, Sangoma announced that they would be revoking the FreePBX® signing key of Clearly IP. The key was independently developed and copyrighted by Rob Thomas, who was the original developer of FreePBX. As we indicated in a previous article, we suspect that this is merely the first step in a process to replace Rob Thomas’s GPG key with a Sangoma-proprietary key. Indeed, tired_runner on the DSL Reports forum has reported that he "installed Framework 15.0.16.38 which apparently refreshes GPG keys before reading this thread. Dashboard kept complaining that version 15.0.16.30 I was running was vulnerable." Further surprises may be in store for FreePBX users tomorrow which is the day Sangoma indicated on Friday that they would be revoking the Clearly IP signing key. You can read all sides of the dispute in this thread on the FreePBX Forum. You should also review Rob Thomas’ comments on the PIAF Forum.

Unfortunately, this is an outcome we predicted about five years ago when Rob was first developing the signature checking module. While Rob intended it to be nothing more than an integrity check, it has been transformed into a commercial weapon just as we predicted. It’s the primary reason that Incredible PBX servers have always been shipped with module signature checking disabled. Pretty sad day for the open source community and a company that professed to care deeply for its users.

For those who already have deployed Incredible PBX 2020, you should immediately log into your server as root and allow the Automatic Update Utility to load the necessary patches to assure that your server still will be operational tomorrow on February 17. There are serious legal penalties, both state and federal, for anyone that tampers with the operation of a computer system which they do not own. Should this happen to you, please let us know, and we will assemble the necessary information to provide to any future legal counsel that may be retained to represent the class of affected users.

For those considering a new PBX and for your own peace of mind, we would encourage you to choose one of the Incredible PBX 2020 platforms, all of which have now been patched to provide a smooth transition to the ClearlyIP mirror servers for FreePBX module updates. Versions are available for CentOS 7, Raspbian 10, and VirtualBox.

We want to take a moment to express our sincere thanks to the Clearly IP development team which worked around the clock this weekend to assure that nobody would be needlessly harmed by Sangoma’s conduct. THANK YOU!

We will provide further details in coming days. So stay tuned for updates.




 
7 p.m. Sunday UPDATE: Sangoma reportedly has granted a one-week reprieve. Generous.

Valentine’s Day UPDATE: Without addressing whether revocation of the FreePBX Master Key was under consideration, Sangoma now denies any plan to revoke the FreePBX Master Key:



Continue reading: Future-Proofing FreePBX Distro with Incredible PBX Skin

Originally published: Sunday, February 9, 2020



Need help with Asterisk? Visit the VoIP-info 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.

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

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

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

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



Happy New Decade: It’s Incredible PBX 2020 for Raspberry Pi

As we begin a new decade, it seemed a fitting time for a terrific new project for you and your Raspberry Pi 4. It features Asterisk® 16 with all the latest FreePBX® 15 GPL modules plus the feature sets of Incredible PBX® and RasPBX and RonR’s latest build. The icing on the cake is support for plug-and-play Incredible IP Phones and a new trunking platform that integrates SMS messaging into your Asterisk platform. And it’s all rolled into one terrific (free) bundle.

This is the first of several articles on Incredible PBX 2020. Today, we’ll get your platform built and walk you through what’s included in the new build. In coming weeks, we’ll integrate the CentOS 7 platform enhancements into the Raspbian 10 Buster image for the Raspberry Pi. In the meantime, come enjoy and explore the powerful, new feature set that comes with Incredible PBX 2020 out of the box. Unlike other aggregations, there’s nothing to compile with Incredible PBX 2020 for Raspbian 10. And, unlike the FreePBX Distro, we don’t rely on static packages which make it difficult to make future modifications on your own. Instead, Incredible PBX 2020 offers a snapshot image with a complete toolkit to make future modifications as desired. Last, but not least, Incredible PBX 2020 features the new ClearlyIP module repository which protects you from proprietary modifications that limit or cripple your PBX moving forward.

What’s Included? Incredible PBX 2020 for Raspbian 10 serves up a VoIP powerhouse featuring Asterisk 16 and all FreePBX 15 GPL modules, an Apache web server, the latest MariaDB SQL server (formerly MySQL), Exim4 mail server, and most of the Incredible PBX feature set including SIP, SMS, voice recognition, AsteriDex, PicoTTS Text-to-Speech VoIP applications plus fax support, Click-to-Dial, News, Weather, Telephone Reminders, and hundreds of features that typically are found in commercial PBXs: Conferencing, IVRs and AutoAttendants, Email Delivery of Voicemail, Voicemail Blasting, and more. We’ve also incorporated the Zero Trunk Configuration feature from the LITE build which lets you sign up with one of four VoIP providers and start making and receiving calls instantly. Or you can use the new ClearlyIP trunking module included in the GUI for a seamless integration of SMS messaging into FreePBX and its User Control Panel.

Choosing a SIP Provider. As we mentioned, Incredible PBX 2020 comes preconfigured to support five of the major SIP providers: ClearlyIP, Skyetel, VoIP.ms, V1VoIP, and Anveo Direct. We obviously hope you’ll choose ClearlyIP or Skyetel trunking because both financially support Nerd Vittles and our open source projects. As the old saying goes, they may not be the cheapest, but you get what you pay for. With all five providers, you only pay for minutes you use so signing up with more than one provider is a smart idea.


Assembling the Required Raspberry Pi Components

Before you can deploy Incredible PBX 2020, you’ll first need the necessary Raspberry Pi hardware. Here’s the short list and, if you’re in a hurry, the $35 Raspberry Pi 3B+ will cost you less than $3 extra to get it quickly from Amazon using our referral link. If you prefer to wait for a Raspberry Pi 4, read on. Either way, the RasPi remains one of the world’s best bargains! Assuming you already own an HDMI-compatible monitor and a USB keyboard

  • Raspberry Pi 4B from a Raspberry Pi reseller
  • $8 USB-C RasPi 4 (only) Power Supply
  • $10 32GB microSDHC Class 10 card (strongly recommended!)
  • $5 Official RasPi 4 Case
  • Getting Started with Incredible PBX 2020

    Here’s our 10-Step Guide to installation and setup. "Automatic" means just watch. Steps #1 and #2: follow the links. For the remaining steps, we’ll further document the procedures.

    1. Download and unzip Incredible PBX 2020.3 image from SourceForge
    2. Transfer Incredible PBX 2020 image to microSD card
    3. Boot Raspberry Pi from new microSD card (16GB minimum)
    4. Login to RasPi console as root:password to initialize your server (Automatic)
    5. In raspi-config Advanced Options, Expand FileSystem to fill your SD card
    6. In Localization Options, set Locale, TimeZone, Keyboard, & WiFi Country
    7. Reboot after writing down your server IP address (Automatic)
    8. Login via SSH or Putty as root:password to set passwords & setup firewall (Automatic)
    9. Run admin-pw-change to set the admin password for access to the web GUI
    10. Register for and configure at least one trunk provider for Incredible PBX 2020
    11. Enjoy!

    First Boot of Incredible PBX 2020 with Wi-Fi

    Incredible PBX 2020 requires Internet connectivity to complete its automated install. If you’re using a wired network connection, you can skip to the next section. With the Raspberry Pi 3B and 4B, WiFi is built into the hardware. But you still have to insert your SSID name and SSID password to make a connection to your WiFi network. To do so, follow these next steps carefully. Insert the Incredible PBX 2020 microSD card into your Raspberry Pi 3 or 4 and apply power to the hardware. When the bootup procedure finishes, login as root with the default password: password. At the first prompt, DO NOT PRESS THE ENTER KEY! Instead, press Ctrl-C to break out of the setup script. At the command prompt, issue the following commands to bring up the WiFi config file:

    cd /etc/wpa_supplicant
    nano -w wpa_supplicant.conf
    

    If your WiFi network does not require a password, uncomment or insert the four lines below and save the file: Ctrl-X, Y, then Enter. Now restart your server: reboot. When the reboot finishes, you now should have network connectivity.

    network={
     key_mgmt=NONE
     priority=1
    }
    

    If your WiFi network requires a password, uncomment or insert the following into wpa_supplicant.conf:

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    
    network={
     ssid="YourSSID"
     psk="YourSSIDpassword"
     key_mgmt=WPA-PSK
     scan_ssid=1
     priority=7
    }
    

    Then scroll down to the SSID entry and replace YourSSID with the actual SSID of your WiFi network. Make sure you preserve the entry with the quotes as shown. Next, replace YourSSIDpassword with the SSID password of your WiFi network. Save the file: Ctrl-X, Y, then Enter. Now restart your server: reboot. When the reboot finishes, you now should have network connectivity.

    Once the reboot process finishes, you should see an entry on about the middle line displayed on your monitor which reads: "My IP address is…". Write down the IP address shown. You’ll need it in a minute. Skip the next section since you are using a WiFi connection.

    If you don’t see an IP address assigned to your server, then correct the network deficiency (invalid WiFi credentials, DHCP not working, Internet down), and reboot until you see an IP address assigned to your server. DO NOT PROCEED WITHOUT AN ASSIGNED IP ADDRESS.

    First Boot of Incredible PBX Using Wired Connection

    Incredible PBX 2020 requires Internet connectivity to complete its automated install. After connecting your server to your local network with a network cable, insert the Incredible PBX 2020 microSD card into your Raspberry Pi and apply power to the hardware. When the bootup procedure finishes, you should see an entry on about the middle line displayed on your monitor which reads: "My IP address is…". Write down the IP address shown. You’ll need it in the next step.

    If you don’t see an IP address assigned to your server, then correct the network deficiency (cable not connected, DHCP not working, Internet down), and reboot until you see an IP address assigned to your server. DO NOT PROCEED WITHOUT AN ASSIGNED IP ADDRESS.

    Completing the Incredible PBX Initialization Procedure

    Unless your desktop PC and RasPi are both on the same private LAN, the remainder of the install procedure should be completed from a desktop PC using SSH or Putty. This will assure that your desktop PC is also whitelisted in the Incredible PBX firewall. Using the console to complete the install is NOT recommended as your desktop PC will not be whitelisted in the firewall. This may result in your not being able to log in to your server. Once you have network connectivity, log in to your server as root from a desktop PC using the default password: password. Accept the license agreement by pressing ENTER. You then will be redirected to raspi-config. This is the utility used to expand your Incredible PBX 2020 image to use your entire microSD card. If you fail to complete this step, your microSD card will be restricted to 16GB. In the raspi-config utility, choose Localization Options and set Locale, TimeZone, Keyboard, & WiFi Country. Then choose Advanced Options. All of the defaults should be satisfactory with the exception of the first item: Expand Filesystem. Choose this option and activate the resizing directive. Review the other items and then exit and reboot.

    Once your server reboots and you log back in as root, all of your passwords will be randomly assigned with the exception of the root user Linux password and your admin password for access to the web GUI. You can set the root password by issuing the command: passwd. Set the admin password for access to the web GUI with this command: /root/admin-pw-change. With the exception of these two passwords, the remaining passwords can be displayed using the command: /root/show-passwords.

    Finally, if your PBX is sitting behind a NAT-based router, you’ll need to redirect incoming UDP 5060-5061 and UDP 10000-20000 traffic to the private IP address of your PBX. This is required for all of the SIP providers included in the Incredible PBX 2020 build. Otherwise, all inbound calls will fail.

    A Word About FreePBX Module Morphing

    If you’ve been following the latest FreePBX module saga, then we probably don’t need to repeat that now is not a good time to be indiscriminately updating FreePBX modules using the Module Admin utility. Chances are pretty good that you may irreparably break something. Should an alert appear in the Dashboard indicating that a particular module has a security vulnerability, please post a note on the PIAF Forum and await a response before attempting to upgrade the module. We also strongly recommend backing up your microSD card as documented below to avoid future surprises.

    Configuring Skyetel for Incredible PBX 2020

    If you’ve decided to go with Skyetel, here’s the drill. Sign up for Skyetel service and take advantage of the Nerd Vittles Free $10 credit and BOGO special. First, complete the Prequalification Form here. You then will be provided a link to the Skyetel site to complete your registration. Once you have registered on the Skyetel site and your account has been activated, open a support ticket and request the $10 credit for your account by referencing the Nerd Vittles special offer. Once you are happy with the service, open another ticket after funding your account and request that Skyetel match your deposit of up to $250. That gets you up to $500 of helf-price calling. Credit is limited to one per person/company/address/location. If you have numbers to port in, you can do it at no cost after funding your account. Effective 10/1/2023, $25/month minimum spend required.

    Skyetel does not use SIP registrations to make connections to your PBX. Instead, Skyetel utilizes Endpoint Groups to identify which servers can communicate with the Skyetel service. An Endpoint Group consists of a Name, an IP address, a UDP or TCP port for the connection, and a numerical Priority for the group. For incoming calls destined to your PBX, DIDs are associated with an Endpoint Group to route the calls to your PBX. For outgoing calls from your PBX, a matching Endpoint Group is required to authorize outbound calls through the Skyetel network. Thus, the first step in configuring the Skyetel side for use with your PBX is to set up an Endpoint Group. Here’s a typical setup for Incredible PBX 2020:

    • Name: MyPBX
    • Priority: 1
    • IP Address: PBX-Public-IP-Address
    • Port: 5060
    • Protocol: UDP
    • Description: 2020.incrediblepbx.com

    To receive incoming PSTN calls, you’ll need at least one DID. On the Skyetel site, you acquire DIDs under the Phone Numbers tab. You have the option of Porting in Existing Numbers (free for the first 60 days after you fund your account) or purchasing new ones under the Buy Phone Numbers menu option.

    Once you have acquired one or more DIDs, navigate to the Local Numbers or Toll Free Numbers tab and specify the desired SIP Format and Endpoint Group for each DID. Add SMS/MMS and E911 support, if desired. Call Forwarding and Failover are also supported. That completes the VoIP setup on the Skyetel side. System Status is always available here.

    Configuring VoIP.ms for Incredible PBX 2020

    To sign up for VoIP.ms service, may we suggest you use our signup link so that Nerd Vittles gets a referral credit for your signup. Once your account is set up, you’ll need to set up a SIP SubAccount and, for Authentication Type, choose Static IP Authentication and enter your Incredible PBX 2020 server’s public IP address. For Transport, choose UDP. For Device Type, choose Asterisk, IP PBX, Gateway or VoIP Switch. Order a DID in their web panel, and then point the DID to the SubAccount you just created. Be sure to specify atlanta1.voip.ms as the POP from which to receive incoming calls. On the Incredible PBX side, simply Enable the VoIPms trunk and save your update.

    Configuring V1VoIP for Incredible PBX 2020

    To sign up for V1VoIP service, sign up on their web site. Then login to your account and order a DID under the DIDs tab. Once the DID has been assigned, choose View DIDs and click on the Forwarding button beside your DID. For Option #1, choose Forward to IP Address/PBX. For the Fowarding Address, enter the public IP address of your server. For the T/O (timeout) value, set it to 2o seconds. Then click the Update button. Under the Termination tab, create a new Endpoint with the public IP address of your server so that you can place outbound calls through V1VoIP. On the Incredible PBX side, simply Enable the V1VoIP trunks and save your updates.

    Configuring Anveo Direct for Incredible PBX 2020

    To sign up for Anveo Direct service, sign up on their web site and then login. After adding funds to your account, purchase a DID under Inbound Service -> Order DID. Next, choose Configure Destination SIP Trunk. Give the Trunk a name. For the Primary SIP URI, enter $[E164]$@server-IP-address. For Call Options, select your new DID from the list. You also must whitelist your public IP address under Outbound Service -> Configure. Create a new Call Termination Trunk and name it to match your server. For Dialing Prefix, choose six alphanumeric characters beginning with a zero. In Authorized IP Addresses, enter the public IP address of your server. Set an appropriate rate cap. We like $0.01 per minute to be safe. Set a concurrent calls limit. We like 2. For the Call Routing Method, choose Least Cost unless you’re feeling extravagant. For Routes/Carriers, choose Standard Routes. Write down your Dialing Prefix and then click the Save button. On the Incredible PBX side, simply Enable the AnveoDirect trunks and save your updates.

    Before you can make outbound calls through Anveo Direct from your PBX, you first must configure the Dialing Prefix that you wrote down in the previous step. Using a browser, login to the GUI as admin. Navigate to Connectivity -> Trunks -> Anveo-Out. Click the Pencil icon to edit the trunk settings. Then click the Custom Settings tab. Replace anveo-pin with your actual Anveo PIN. Click Submit and Apply Settings to save your changes.

    By default, incoming Anveo Direct calls will be processed by the Default inbound route on your PBX. If you wish to redirect incoming Anveo Direct calls using DID-specific inbound routes, then you’ve got a bit more work to do. In addition to creating the inbound route using the 11-digit Anveo Direct DID, enter the following commands after logging into your server as root using SSH/Putty:

    cd /etc/asterisk
    echo "[from-anveo]" >> extensions_custom.conf
    echo "exten => _.,1,Ringing" >> extensions_custom.conf
    echo "exten => _.,n,Goto(from-trunk,\\${SIP_HEADER(X-anveo-e164)},1)" >> extensions_custom.conf
    asterisk -rx "dialplan reload"
    

    Configuring a Softphone for Incredible PBX 2020

    We’re in the home stretch now. You can connect virtually any kind of telephone to your new PBX. Plain Old Phones require an analog telephone adapter (ATA) which can be a separate board in your computer from a company such as Digium. Or it can be a standalone SIP device such as ObiHai’s OBi100 or OBi110 (if you have a phone line from Ma Bell to hook up as well). SIP phones can be connected directly so long as they have an IP address. These could be hardware devices or software devices such as the YateClient softphone. We’ll start with a free one today so you can begin making calls. You can find dozens of recommendations for hardware-based SIP phones both on Nerd Vittles and the PIAF Forum when you’re ready to get serious about VoIP telephony.

    We recommend YateClient for Windows which is free. Download it from here. Run YateClient once you’ve installed it and enter the credentials for the 701 extension on Incredible PBX. You can find them by running /root/show-passwords. You’ll need the IP address of your server plus your extension 701 password. In the YateClient, fill in the blanks using the IP address of your Server, 701 for your Username, and whatever Password was assigned to the extension when you installed Incredible PBX. Click OK to save your entries.

    Once you are registered to extension 701, close the Account window. Then click on YATE’s Telephony Tab and place some test calls to the numerous apps that are preconfigured on Incredible PBX. Dial a few of these to get started:

    DEMO - Apps Demo
    123 - Reminders
    947 - Weather by ZIP Code
    951 - Yahoo News
    TODAY - Today in History
    LENNY - The Telemarketer's Worst Nightmare
    

    If you are a Mac user, another great no-frills softphone is Telephone. Just download and install it from the Mac App Store.

    Audio Issues with Incredible PBX 2020

    Only if you experience one-way or no audio on some calls, add your external IP address and LAN subnet in the GUI by navigating to Settings -> Asterisk SIP Settings. In the NAT Settings section, click Detect Network Settings. Click Submit and Apply Settings to save your changes.

    Configuring Gmail as Exim Smart Relay Host

    Most Raspberry Pi implementations will be on networks managed by companies like Comcast, Spectrum, and AT&T that block downstream mail servers (that’s you) from sending email. The solution is to use Gmail or your local ISP as a smart relay host to send mail from your server. You’ll need this to deliver voicemails via email. Here’s how to set it up using a Gmail account without two-step authentication. Log into your server as root and run dpkg-reconfigure exim4-config. Choose "mail sent by smarthost; received via SMTP or fetchmail." Accept all the defaults until you get to Outgoing Smarthost prompt. Enter: smtp.gmail.com::587. At the following prompts, choose NO, NO, mbox, and NO. When the setup completes, edit /etc/exim4/passwd.client and insert the following line using your Gmail AcctName and AcctPW. NOTE: If you are using a Gmail account with 2-step verification enabled, you MUST use a Gmail App Key instead of your Gmail account password. You also must enable Less Secure Apps access to your Gmail account.

    *.google.com:AcctName@gmail.com:AcctPW
    smtp.gmail.com:AcctName@gmail.com:AcctPW
    

    Save the file and then issue the following commands to complete the setup:

    update-exim4.conf
    systemctl restart exim4
    exim4 -qff
    

    Now send yourself a test email message to make sure things are working properly:

    echo "test" | mail -s testmessage yourname@yourmailprovider.com
    

    Some prefer an email notification whenever your server is booted. Once you have configured a relay host above, you can add the feature by editing /etc/rc.local and adding the following lines with your actual email address just above the service knockd start line:

    _PRIVATE="Private IP: `cat /etc/hostip | cut -f1-2 -d " "`"
    _PUBLIC=" Public IP: `curl -s -S --user-agent \\
    "Mozilla/4.0" http://myip.incrediblepbx.com | awk 'NR==2'`"
    echo "$_PRIVATE\\n$_PUBLIC" | mail -s "RasPi 2020 has booted" yourname@yourmailserver.com
    

    Building the Incredible PBX Demo IVR

    If you’d like to try your hand at building an IVR, here are the steps to build the Incredible PBX Demo IVR. From the FreePBX Dashboard, choose Applications -> IVR -> Add IVR. Then fill in the template using the entries shown below. Then click Submit and Reload Dialplan.



    Building the Incredible PBX Stealth AutoAttendant

    Many users prefer to play an announcement to incoming callers with a brief pause thereafter which indicates that the call is being connected. If configured properly, this lets you embed several dial codes which can be entered while the announcement is playing and the call is being transferred. For example, you might wish to route incoming calls to Lenny if a caller presses 0. Or you might wish to immediately route an incoming call to a Ring Group if the caller presses 1. Here’s a sample IVR setup to get you started.


    Incredible PBX 2020 Administration

    We’ve eased the pain of administering your new PBX with a collection of scripts which you will find in the /root folder after logging in with SSH or Putty. Here’s a quick summary of what each of the scripts does.

    admin-pw-change lets you update the admin password for web browser access to the Incredible PBX GUI.

    apache-pw-change lets you update the admin password for Apache applications such as AsteriDex and Reminders.

    avantfax-pw-change lets you update the root password for AvantFax access (coming soon!).

    add-fqdn is used to whitelist a fully-qualified domain name in the firewall. Because Incredible PBX 2020 blocks all traffic from IP addresses that are not whitelisted, this is what you use to authorize an external user for your PBX. The advantage of an FQDN is that you can use a dynamic DNS service to automatically update the IP address associated with an FQDN so that you never lose connectivity.

    add-ip is used to whitelist a public IP address in the firewall. See the add-fqdn explanation as to why this matters.

    del-acct is used to remove an IP address or FQDN from the firewall’s whitelist.

    configure-exim-email lets you reconfigure the email server if you need to use an SMTP relay such as Google to get outbound email flowing. Tutorial here.

    iptables-restart is the ONLY command you should ever use to restart the IPtables firewall and Fail2Ban.

    knock.FAQ contains your PortKnocker credentials for emergency access to your server if the firewall locks you out. Tutorial here.

    proximity (once configured) will automatically forward calls to your cellphone when you are out of BlueTooth range from your RasPi. Also must enable running of script in /etc/crontab.

    reset-conference-pins is a script that automatically and randomly resets the user and admin pins for access to the preconfigured conferencing application. Dial C-O-N-F from any registered SIP phone to connect to the conference.

    reset-extension-passwords is a script that automatically and randomly resets ALL of the SIP passwords for extensions 701-705. Be careful using this one, or you may disable existing registered phones and cause Fail2Ban to blacklist the IP addresses of those users. HINT: You can place a call to the Ring Group associated with all five extensions by dialing 777.

    reset-reminders-pin is a script that automatically and randomly resets the pin required to access the Telephone Reminders application by dialing 123. It’s important to protect this application because a nefarious user could set up a reminder to call a number anywhere in the world assuming your SIP provider’s account was configured to allow such calls.



    rpi-clone is a utility that makes it easy to make a bootable image of the microSD card used to start your Raspberry Pi. You’ll need a USB-to-microSD adapter to begin. Insert a backup microSD card large enough to hold all of the data on the primary microSD card (df -h). Insert the USB stick with the card. Identify the backup microSD card, usually sda (fdisk -l). Format the backup microSD as an MSDOS partition. Then issue the following command to clone the primary microSD card: rpi-clone -f sda. Complete tutorial here.

    show-feature-codes is a cheat sheet for all of the feature codes which can be dialed from any registered SIP phone. It documents how powerful a platform Incredible PBX 2020 actually is. A similar listing is available in the GUI at Admin -> Feature Codes.

    show-passwords is a script that displays ALL of the passwords associated with Incredible PBX 2020. This includes SIP extension passwords, voicemail pins, conference pins, telephone reminders pin, and your Anveo Direct outbound calling pin (if configured). Note that voicemail pins are configured by the user of a SIP extension the first time the user accesses the voicemail system by dialing *97.

    timezone-setup lets you reconfigure the correct time zone for your server.

    purge-cdr-cel-records cleans out all existing entries in both the CDR and CEL tables of the Asterisk CDR database.

    log-cleanup removes all entries from most of the logs in /var/log.

    sig-fix disables module signature checking in FreePBX. It is automatically disabled upon installation.

    readme-RonR.txt documents the scripts provided from RonR build. We do NOT recommend using the FCC Blacklist because of its current size.

    update-asterisk16 is a utility that updates Asterisk 16 to the latest release. This should only be necessary when a security issue or bug is identified that affects the operation of your PBX.

    update-IncrediblePBX is the Automatic Update Utility which checks for server updates from incrediblepbx.com every time you log into your server as root using SSH or Putty. Do NOT disable it as it is used to load important fixes and security updates when necessary. We recommend logging into your server at least once a week.

    pbxstatus (shown above) displays status of all major components of Incredible PBX 2020.

    Forwarding Calls to Your Cellphone. Keep in mind that inbound calls to your DIDs automatically ring all five SIP extensions, 701-705. The easiest way to also ring your cellphone is to set one of these five extensions to forward incoming calls to your cellphone. After logging into your PBX as root, issue the following command to forward calls from extension 705 to your cellphone: asterisk -rx "database put CF 705 6781234567"

    To remove call forwarding: asterisk -rx "database del CF 705"

    Keeping FreePBX 15 Modules Current

    We strongly recommend that you periodically update all of your FreePBX modules to eliminate bugs and to reduce security vulnerabilities. Make a backup image with rpi-clone first! From the Linux CLI, log into your server as root and issue the following commands:

    rm -f /tmp/*
    fwconsole ma upgradeall
    fwconsole reload
    /root/sig-fix
    systemctl restart apache2
    /root/sig-fix
    

    Continue Reading: Icing on the Cake for Incredible PBX and Raspberry Pi

    Originally published: Monday, January 27, 2020



    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.

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

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

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

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



    Sangoma’s New FreePBX Gotchas With Module Signatures




    The ink was barely dry on Bill Wignall’s December Ode to Open Source in which the CEO sang the praises of Sangoma’s commitment to open source development and extolled the virtues of "reinventing the ways in which we foster relationships with you, our open source community." We’ve now learned that Sangoma is planning to revoke the master key used to sign every FreePBX® module. It will be replaced with a new master key. This affects every developer with an existing GPG key signed by the soon-to-be revoked master key. The practical effect is that every existing FreePBX module will either cease to function or trigger security alerts in the Dashboard of your PBX until every module is updated. In addition, it means every developer will have to apply to have their GPG key resigned with the new master key. We were curious why Sangoma would take such a Draconian step until we read the Module Signature Checking Wiki which was modified by the Sangoma General Counsel yesterday. Here’s the new language that will trigger key revocation from open source developers of FreePBX products:


    You have developed and/or are utlizing a module with FreePBX for which you are directly or indirectly generating revenue or commercial advantage and you have not entered into a commercial agreement with Sangoma that protects its commercial interests and its intellectual property

    UPDATE: Without addressing whether revocation of the FreePBX Master Key was under consideration, Sangoma now denies any plan to revoke the FreePBX Master Key. See this thread on the FreePBX Forum.

    You may recall that AstriCon this year featured zero outside commercial products and organizations. Now it appears Sangoma is taking much the same monopolistic approach on the open source side of the house. And you wonder why Incredible PBX® has always disabled module signature checking.

    Fortunately, for those who have deployed Incredible PBX 2020, you have nothing to worry about because every new release of Incredible PBX 2020 utilizes the Clearly IP repository. This assures no interruption in the operation of your PBX.

    Before your PBX self-destructs, there’s a simple fix for those using Incredible PBX 13-13 and Incredible PBX 16-15 releases. Although we haven’t tested other distributions, this fix should work fine with all other FreePBX 13 and 15 implementations. Other than rebranding your PBX and changing the destination for module updates, this update makes no other changes to your PBX. Deploying the IncrediblePBX module will also make the Clearly IP Trunking and Phones modules available in the new repository. We’ll be covering these in detail in coming weeks. For those updating a non-Incredible PBX platform, remember to make a backup before proceeding. If you experience problems, post a comment and we’ll get you a quick fix.

    Here’s how to download and install the new IncrediblePBX module which will enable the Clearly IP repository on any FreePBX 13 or 15-based server:

    cd /var/www/html/admin/modules
    wget http://incrediblepbx.com/incrediblepbx-13.03.tgz
    tar zxvf incrediblepbx-13.03.tgz
    rm -f incrediblepbx-13.03.tgz
    fwconsole ma install incrediblepbx
    fwconsole reload
    fwconsole restart
    

    If you also wish to add support for the new Incredible PBX IP phones including plug-and-play endpoint management and configuration, here’s how. If your system still uses FreePBX 13, be advised that phone apps such as follow-me are not supported because of system limitations on the FreePBX 13 platform.

    cd /var/www/html/admin/modules
    wget http://incrediblepbx.com/clearlydevices.tgz
    tar zxvf clearlydevices.tgz
    rm -f clearlydevices.tgz
    fwconsole ma install clearlydevices
    fwconsole reload
    fwconsole restart
    

    These latest developments suggest that perhaps the time has come for a new steward for the FreePBX GPL modules, an organization that actually respects the interests of the open source development community. Stay tuned.

    Sangoma Blinks: Here is a belated response from the FreePBX developers.

    Originally published: Wednesday, January 22, 2020



    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.

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

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

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

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



    The Next Best Thing to (formerly free) Google Voice

    Today we want to once again shine the spotlight on LocalPhone, an oft-overlooked VoIP service that’s been around forever. You can call to and be called from any LocalPhone user at no cost. They also offer phone numbers (DIDs) of your choice almost anywhere in the world with free or almost free incoming calls. For those wanting a U.S. DID, the cost is 99¢ a month with a $3 setup fee. That gets you up to 100 free incoming calls a day to your PBX or any SIP phone. Additional calls are a penny per call. There are no limitations on the duration of the calls. If you prefer to forward the calls to your cellphone number in the contiguous U.S., there’s an additional fee of 0.5¢ per minute. But there’s little reason to do that when sending the calls to a SIP softphone on your Android device or iPhone is free. And now the mobile LocalPhone app supports PUSH Notifications. We’ll show you how.

    FYI: Nerd Vittles receives a referral credit to keep the lights on when you sign up for service.

    Deciphering Your SIP Credentials with LocalPhone

    Once you have signed up for a LocalPhone account, the first thing you’ll want to do is make note of your Internet Phone credentials under My Account. These are what we typically refer to as SIP credentials consisting of a SIP ID, SIP password, and SIP server (localphone.com). That’s all you’ll need to configure an incoming LocalPhone trunk on any Incredible PBX® server. And these are the same settings you’d use to configure any SIP phone running on any Android or iOS device. As we noted, you and any other LocalPhone user can call any Internet Phone number worldwide at no cost without limitation. For world travelers, you’ll want to download the LocalPhone app for your smartphone (Android or iOS) and take advantage of their extremely competitive international calling rates.1

    Ordering Incoming Numbers (DIDs) from LocalPhone

    Begin by funding your account under My Account -> Add Credit. $10 will last you a long time.

    The next step is to order one or more incoming phone numbers from LocalPhone.2 If you have friends in far away places that call you frequently, you can purchase DIDs in those locations to eliminate the cost of incoming calls both to them and to you. If you only want a dirt cheap U.S. DID for your home or small office, then LocalPhone is also a perfect fit. Navigate to My Account -> Incoming Numbers and choose the United States as the desired Country. Next, pick the State and City for the desired DID. For free incoming calls, set Call Forwarding and Caller ID for Internet Phone to your assigned Internet Phone SIP ID. You can also elect to forward calls to a SIP URI, if desired. Agree to the terms of use and make your purchase.

    Configuring a LocalPhone Trunk with Incredible PBX

    We’ve previously covered the LocalPhone trunk setup with Wazo. Most other releases of Incredible PBX include preconfigured LocalPhone trunks for incoming and outgoing calls. Login to the Incredible PBX GUI as admin using your favorite browser and navigate to Connectivity -> Trunks and edit the LocalPhone-In trunk. Set Disable Trunk to NO. Then click the sip-Settings tab. Insert your LocalPhone SIP ID in the username, fromuser, and authuser fields. Insert your LocalPhone SIP Password in the secret field. Change the context field entry to from-trunk. Click on the Incoming tab, and modify the Register String 9999999:yourpassword@localphone.com/9999999 replacing 9999999 with your LocalPhone SIP ID and yourpassword with your LocalPhone SIP Password. Click the Submit button and reload your dialplan when prompted.

    Navigate to Connectivity -> Inbound Routes and create a new Inbound Route for LocalPhone using your SIP ID as the DID Number and choosing a desired Destination for incoming calls from your LocalPhone DID. Save your settings and reload the dialplan when prompted.

    Configuring a LocalPhone Trunk with VitalPBX

    Login to the VitalPBX GUI as admin using your favorite browser and navigate to PBX -> External -> Trunks. Create a new SIP trunk with the following settings replacing 999999 with your LocalPhone SIP ID and 1234 with the LocalPhone SIP Password. Leave the Device for Incoming Calls (User) section blank. Then click SAVE and reload your dialplan.

    • Description: LocalPhone
    • Codecs: ulaw,alaw
    • Local Username: 999999
    • Remote Host: localphone.com
    • Remote Port: 5060
    • Local Secret: 1234
    • Insecure: Port,Invite
    • Allow Inbound Calls: YES
    • Username: [leave blank]
    • Host: [leave blank]
    • Local Secret: [leave blank]
    • Remote Username: 999999
    • Remote Secret: 1234
    • From User: 999999
    • From Domain: localphone.com
    • Qualify: YES
    • Insecure: [leave blank]
    • IP Authentication: NO
    • Qualify: [leave default]
    • Register String: 999999:1234@localphone.com/999999

    Navigate to PBX -> External -> Inbound Routes. Create a new Inbound Route for LocalPhone using your SIP ID as the DID Number and choosing a desired Destination for incoming calls from your LocalPhone DID. Save your settings and reload the dialplan when prompted.

    Configuring a LocalPhone Trunk with FreePBX

    Login to the FreePBX® GUI as admin using your favorite browser and navigate to Connectivity -> Trunks. Add a new chan_sip trunk named localphone. Then click on the sipSettings tab and enter the following replacing 999999 with your LocalPhone SIP ID and 1234 with the LocalPhone SIP Password.

    • username=9999999
    • type=friend
    • secret=1234
    • nat=no
    • insecure=port,invite
    • host=localphone.com
    • fromuser=9999999
    • fromdomain=localphone.com
    • dtmfmode=rfc2833
    • disallow=all
    • context=from-trunk
    • canreinvite=no
    • authuser=9999999
    • allow=ulaw&alaw

    Next, click on the Incoming tab and enter the following Register String replacing 999999 with your LocalPhone SIP ID and 1234 with the LocalPhone SIP Password:

    9999999:1234@localphone.com/9999999
    

    Then click SUBMIT and reload your dialplan.

    Navigate to Connectivity -> Inbound Routes and create a new Inbound Route for LocalPhone using your SIP ID as the DID Number and choosing a desired Destination for incoming calls from your LocalPhone DID. Save your settings and reload the dialplan when prompted.

    Using Local Numbers for International Calls

    LocalPhone has a unique feature that lets you dial a local number from a phone number you have whitelisted in your country and reach almost anyone in the world that you’ve added to your Contacts List. You only pay LocalPhone’s discounted international calling rate for the calls. For example, to call a landline in the U.K. from the U.S. using a LocalPhone-provided U.S. phone number, the calling rate is less than a penny a minute. A call to Cyprus by dialing a U.S. number assigned to your account for your whitelisted phone numbers is 4.5 cents per minute. To get started setting up your whitelisted phone numbers and contacts list, navigate to My Account -> Local Numbers in your LocalPhone account. In your Local Numbers list, first add and verify phone numbers you want to authorize to make calls on your nickel. Next, add the names and phone numbers of international destinations you wish to reach by dialing a local number. LocalPhone will immediately assign a local number for each destination. Simply add these local numbers to the contacts list on your smartphone, and you can call from anywhere in your country at the discounted LocalPhone international calling rates. There are no double-dialing or call menus to navigate. Dialing the assigned local number transparently connects you directly to your destination with no intermediate hurdles.

    Using LocalPhone with Other Trunk Providers

    So long as your PBX doesn’t have more than two incoming calls to a single DID at the same time, the most economical PBX design is to use LocalPhone DIDs as your published DIDs. This reduces the cost of incoming calls to less than a dollar a month per DID for up to 3,000 incoming calls of unlimited duration. Then use one of our Platinum Sponsors, Skyetel or our soon-to-be-available ClearlyIP SIP trunking service for outbound calls and spoof the outbound CallerID on those other trunks using your LocalPhone DID.

    Enjoying the Best of All Worlds with LocalPhone

    If you have an iPhone or Android smartphone in addition to a PBX, you can take advantage of LocalPhone’s ability to send incoming calls to multiple destinations. Just make sure your PBX isn’t routing the incoming calls to a destination that is automatically answered, e.g. an IVR. On your Android phone, download the VitalPBX Communicator from the Google Play Store and configure a SIP connection using your LocalPhone SIP credentials. Incoming calls from your LocalPhone DIDs and Internet Phone Number now will be sent to both destinations.

    If you have followed one of our previous tutorials that document making SIP URI calls from either a PBX or a SIP client such as LinPhone on your smartphone, then you can take advantage of LocalPhone’s incoming SIP URI feature.3 Just dial 9999999@localphone.com where 9999999 is any LocalPhone SIP ID. You also can add Custom Extensions in Incredible PBX much like the Lenny extension using a Dial string of SIP/9999999@localphone.com to reach worldwide LocalPhone destinations from any PBX extension at no cost. Enjoy!

    Originally published: Monday, December 9, 2019



    Need help with Asterisk? Visit the VoIP-info 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.

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

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

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

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


    1. Rates are based on the lowest pay as you go per-minute price to call a landline or a mobile. Skype is a registered trademark of Microsoft Corporation. []
    2. LocalPhone advises that DID fulfillment can take up to 14 days although our orders always have been completed in less than an hour. []
    3. LocalPhone offers call filtering for your Internet Phone number using either a blacklist or whitelist in addition to offering the option of blocking anonymous calls. []

    Some Tips & Tricks to Supercharge Incredible PBX 16-15



    As September comes to a close, we wanted to offer up some simple tips and tricks to get the most out of Incredible PBX® 16-15. Many of these already have been covered on the PIAF Forum so, if you’re not already a subscriber, sign up to keep up with the latest information. Perhaps the most frequently asked question concerns the painfully slow restarts that some folks experience with SendMail and/or Fail2Ban. So let’s start there.

    Assigning an FQDN to Your Server

    Many system services depend upon identification of the fully-qualified domain name (FQDN) assigned to your server. If you don’t have one, services such as Fail2Ban and SendMail have a difficult time starting and restarting. This includes the iptables-restart script which includes a restart of the Fail2Ban service. With SendMail, you not only will have difficulty restarting the service, but outbound email delivery also will fail since SendMail always checks for a valid sender email address before sending out a message.

    If you don’t have a domain that you control, you can always use a free dynamic DNS service such as No-IP which has the added advantage of managing changes in your host’s IP address if you don’t have a static IP address.

    Once you have an FQDN for your server, here are the simple steps to assign it to your server. First, edit /etc/hosts, add the FQDN immediately after 127.0.0.1, and then save the file. Next, edit /etc/hostname and replace the default entry with your FQDN. Finally, issue the following command using your actual FQDN: hostname FQDN.

    Now you can test restarting Fail2Ban and SendMail with the following commands:

    systemctl restart sendmail
    systemctl restart fail2ban
    

    And you can check the status of the two services with the following commands:

    systemctl status sendmail
    systemctl status fail2ban
    

    Configuring SendMail/Exim with Incredible PBX 16-15

    You’re not out of the woods yet if you wish to use SendMail (CentOS) or Exim (Raspbian) to deliver email and voicemail messages. Unless your PBX is in the Cloud with a public IP address on the Internet, be advised that many hosting providers such as Comcast, Spectrum, and AT&T block downstream mail servers from sending email. If you’re using one of these services in your home or office, the solution is to use Gmail or your local ISP as a smart relay host to send mail from your server. Setup instructions for SendMail on the CentOS 7 platform are available here. Setup instructions for Exim on the Raspberry Pi are available here.

    Blocking Call Scammers and Robocalls

    As election season kicks into high gear, expect robocalls to go through the roof. Not that the diehard scammers care but Congress exempted all politicians from the rules pertaining to robocalls. And then there are those that spoof a phone number similar to yours in order to treat you to the latest car warranty deal or Caribbean vacation. So here’s a way to block 99% of these callers, almost all of whom depend upon autodialers and call center software to distribute calls to live operators once you answer the call.

    The design is simple to implement with Incredible PBX. Instead of answering incoming calls with a standard AutoAttendant or IVR, we’ll play a brief announcement followed by a request that the caller "press 7″ or some other number to be connected. When the caller doesn’t press the requested number within a brief number of seconds, Incredible PBX will hangup the call.

    Many SIP providers support the early media feature which lets two SIP user agents communicate before a call is actually answered. If your provider supports this and you pay by the minute for inbound call traffic, then we’ll show you how to use the early media feature to block these callers without ever answering the calls and incurring charges. The easiest way to determine whether your SIP provider supports early media is to implement the early media code below and try a test call. If you hear the greeting message after dialing your own number, then early media is supported. If not, use the other dialplan code.

    Incredible PBX already includes all the tools you’ll need to implement this. We’ll use a little modified Announcement dialplan code to greet the caller with Allison’s Generic Welcome message: "Thank you for calling. Please hold a moment while we locate someone to take your call." Then we’ll tack on an extra message which says: "To continue in English, press 7." If you’d prefer a different number, you can modify the dialplan code below accordingly.

    Add this early media dialplan code to the end of /etc/asterisk/extensions_custom.conf. If you prefer a number other than 7, then replace "7″ in both lines 4 and 6 below:

    [hello-caller]
    exten => s,1,Progress
    exten => s,n(begin),Noop(Playing announcement Howdy as Early Media)
    exten => s,n,Set(TIMEOUT(response)=10)
    exten => s,n,Playback(custom/nv-GenericWelcome&silence/1&continue-in-english&press-7,noanswer)
    exten => s,n,WaitExten(,)
    exten => 7,1,Goto(ivr-1,s,1)
    exten => t,1,Hangup
    exten => i,1,Hangup
    exten => fax,1,Noop(Fax detected!)
    exten => fax,2,Goto(custom-fax-iaxmodem,s,1)
    ;--== end of [hello-caller] ==--;
    

    In the FreePBX GUI, add a new Custom Destination:

    Target: hello-caller,s,1
    Description: Scam Blocker
    

    In the FreePBX GUI, modify the Inbound Route for each DID and set the Destination to Custom Destination: Scam Blocker. Save your settings and reload your dialplan.

    Now place a test call to your DID and see if you hear the greeting message. If so, you’re done.

    If not, edit /etc/asterisk/extensions_custom.conf and replace the [hello-caller] context at the bottom of the file with the following. You can replace "7″ on lines 6 and 8, if desired. Then reload your dialplan: asterisk -rx "dialplan reload". Then place another test call.

    [hello-caller]
    exten => s,1,GotoIf($["${CHANNEL(state)}" = "Up"]?begin)
    exten => s,n,Answer
    exten => s,n,Wait(1)
    exten => s,n(begin),Noop(Playing announcement Howdy)
    exten => s,n,Set(TIMEOUT(response)=10)
    exten => s,n(play),Background(custom/nv-GenericWelcome&silence/1&continue-in-english&press-7,nm)
    exten => s,n,WaitExten(,)
    exten => 7,1,Goto(ivr-1,s,1)
    exten => t,1,Hangup
    exten => i,1,Hangup
    exten => fax,1,Noop(Fax detected!)
    exten => fax,2,Goto(custom-fax-iaxmodem,s,1)
    ;--== end of [hello-caller] ==--;
    

    Separating Friends from Foes with Fail2Ban

    If you’ve ever locked yourself out of your server when Fail2Ban mistakenly believed you were one of the bad guys, welcome to the club. Here’s the simple way to make sure it never happens again. First, deploy a NeoRouter Server and activate the NeoRouter Client on both your PBX and desktop machines. Always login to your PBX using the 10.0.0.x NeoRouter Client IP address of your PBX. Next, edit /etc/fail2ban/jail.conf. Scroll down to the [DEFAULT] section and edit the line which begins with ignoreip. Make certain the line includes the following entries. Then save the file and restart Fail2Ban: systemctl restart fail2ban

    ignoreip = 127.0.0.1/8 10.0.0.0/24
    

    You can always check who is currently banned with the command: iptables -nL

    And you can unban an IP address by logging in to SSH from a different IP address and using the chain name and banned IP address shown in iptables -nL with the following command:

    fail2ban-client set apache-forbidden unbanip xx.xx.xx.xx

    Adding Outbound CNAM Data to CDRs

    In many implementations, it’s useful in Call Detail Records (CDRs) to be able to associate names (CNAM) with outbound calls just as we do with incoming calls. One of our earliest Asterisk applications, CallerID Superfecta, provides an easy way to do that with just a little tweaking in Incredible PBX 16-15.

    1. Open the FreePBX GUI in a browser and go to Admin -> CID Superfecta. There should be one Default setup but it’ll show as disabled. For some quirky reason, you can’t make enabling it stick so click on the third (COPY) option under Actions to create a second setup. Then go down to that one and click the first button (Enable) under Actions. Make future setup changes to CallerID Superfecta by clicking on that setup.

    2. Next, log into your server as root and issue the following commands:

    cd /root
    wget http://incrediblepbx.com/dialout-cnam.tar.gz
    tar zxvf dialout-cnam.tar.gz
    rm -f dialout-cnam.tar.gz
    

    3. Run the script: /root/install-dialout-cnam.sh. Choose the number of the new CID Superfecta setup (probably will be a negative number which is fine). No idea why.

    4. Once the script completes, make a call from extension 701 to an outside number. The new CNAM info should be shown in the ACCOUNT column of your CDR listing.

    Originally published: Monday, September 30, 2019



    Need help with Asterisk? Visit the VoIP-info 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.

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

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

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

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



    Interconnect Incredible PBX 16-15 to the Asterisk Mothership

    The Holy Grail for a mobile VoIP solution is a simple way to connect back to your primary Asterisk® PBX via Wi-Fi from anywhere in the world to make and receive calls as if you never left. Let’s tick off the potential problems. First, many home-based PBXs are sitting behind NAT-based routers. Second, almost all remote Wi-Fi connections are made through a NAT-based router. Third, chances are the remote hosting platform blocks outgoing email from downstream servers such as a mobile PBX. Fourth, deciphering the IP address of your remote connection can be problematic. Fifth, the chances of experiencing one-way audio or no audio on your VoIP calls is high because of NAT-based routers at both ends of your connection.

    For those that travel regularly and want to avoid the complexity of configuring OpenVPN, here is a quick thumbnail of the setup we recommend as your mobile companion. You’ll never have a one-way audio problem again. In terms of hardware, you’ll need a Raspberry Pi 4B or 3B+ with its native WiFi support plus a Windows or Mac notebook computer for traveling. You’ll also need a NeoRouter VPN server to make this process seamless. If you’ve already set up an OpenVPN server platform, it will work equally well. One advantage of NeoRouter is that clients can be added from the client side without having to create a config file on the VPN server. All you need is a username and password. But the choice of VPN platform is totally a matter of preference. The objective using either OpenVPN or NeoRouter is secure communications to your home base. We don’t want to have to reconfigure either your home PBX or your traveling Raspberry Pi or your notebook PC based upon changes in your public and private IP addresses.

    Today we’ll walk you through the easiest way to set up a (free) NeoRouter server on the Internet. It can be used to connect up to 254 devices on an encrypted private LAN. We’re delighted to have finally found a perfect use for the (free) Google Cloud instance.


    Using a Raspberry Pi, build an Incredible PBX 16-15 platform by following our previous tutorial. We’ll set this up on your home WiFi network so that you only have to throw the Raspberry Pi and its power supply in your suitcase when you travel. As part of the setup, we’ll download NeoRouter and activate private IP addresses for your notebook computer as well as both of your PBXs (using nrclientcmd). Next, we’ll interconnect the two PBXs using SIP trunks and the NeoRouter private LAN IP addresses. We’ll take advantage of a neat little Raspberry Pi trick by storing a wpa_supplicant.conf template on your PC for the remote WiFi setup even though we don’t yet know anything about the remote LAN. Once we know the SSID and password at the remote destination, we’ll use your notebook computer to edit the template and transfer the file to the /boot folder of your RasPi’s microSD card. When the card then is inserted and the RasPi is booted, it will automatically move the template to the proper /etc/wpa_supplicant folder to successfully activate your WiFi connection. We’ll also load links, a fast text-based browser, just in case you encounter a hotel that requires some sort of acknowledgement or password before establishing your WiFi connection to the Internet.

    Setting Up a (free) NeoRouter Server in the Cloud

    Because NeoRouter uses a star-based VPN architecture, that means the NeoRouter Server must always be available at the same IP address for all of the NeoRouter Clients (aka Nodes) to talk to. If you already have a cloud-based server that has a static IP address and can handle the traffic cop duties of NeoRouter Server, then that’s an ideal place to install NeoRouter Server. Simply download the Free flavor of NeoRouter Server that matches your existing platform and install it. Add an FQDN for your server’s IP address, and you’re all set. A detailed summary of available management options is included in our previous NeoRouter v2 article.

    We devoted a couple weeks to Google Cloud instances, and it turned out to be a pretty awful platform for hosting Asterisk. But the free offering looks to be a perfect fit as a hosting platform for NeoRouter Server. You also won’t have to worry about Google going out of business anytime soon. So let us walk you through an abbreviated setup process on the Google Cloud platform. If you’re just getting started with Google Cloud, read our previous article to take advantage of Google’s generous $300 offer to get you started and to generally familiarize yourself with the mechanics of setting up an instance in the Google Cloud.

    For NeoRouter Server, navigate to https://console.cloud.google.com. Click the 3-bar image in the upper left corner of your Dashboard. This exposes the Navigation Menu. In the COMPUTE section of the Dashboard, click Compute Engine -> VM Instances. Then click CREATE PROJECT and name it. Now click CREATE INSTANCE and Name it nrserver. The instance name becomes the hostname for your virtual machine. If you want to remain in the Free Tier, choose f1-micro instance as the Machine Type and choose a U.S. Region (us-central1, us-east1 or us-west1). For the Boot Disk, choose CentOS 6 and expand the disk storage to at least 20GB (30GB is available with the Free Tier). For the Firewall setting, leave HTTP and HTTPS disabled. Check your entries carefully and then click the Create button.

    When your virtual machine instance comes on line, jot down the assigned public IP address. We’ll need it in a minute. Now click on the SSH pull-down tab and choose Open in a Browser Window. Now we need to set a root password and adjust the SSH settings so that you can login from your desktop computer using SSH or Putty:

    sudo passwd root
    su root
    nano -w /etc/ssh/sshd_config
    

    When the editor opens the SSH config file, add the following entries. Then save the file and restart SSH: service sshd restart

    PermitRootLogin yes
    PasswordAuthentication yes
    

    You now should be able to log in to your instance as root from your desktop computer using SSH or Putty. Test it to be sure: ssh root@server-IP-address

    Before we leave the Google Cloud Dashboard, let’s make the assigned public IP address permanent so that it doesn’t get changed down the road. Keep in mind that, if you ever delete your instance, you also need to remove the assigned static IP address so you don’t continue to get billed for it. From Home on the Dashboard, scroll down to the NETWORKING section and choose VPS Network -> External IP Addresses. Change the Type of your existing address to Static and Name it staticip. Next, choose Firewall Rules in the VPS Network section and click CREATE FIREWALL RULE. Fill in the template like the following leaving the other fields with their default entries. Then click CREATE.

    1. Name: neorouter
    2. Target Tags: neorouter
    3. Source IP Range: 0.0.0.0/0
    4. Protocols/Ports: check tcp: 32976

    CAUTION: Before this firewall rule will be activated for your instance, it also must be specified in the Network Tags section for your instance. Shut down your instance and add the neorouter tag by editing your instance. Then restart your instance.

    Now we’re ready to install NeoRouter Free v2 Server on your instance. Be sure to choose the Free v2 variety. Log back into your server as root using SSH/Putty and issue these commands:

    yum -y update
    yum -y install nano
    wget http://download.neorouter.com/Downloads/NRFree/Update_2.3.1.4360/Linux/CentOS/nrserver-2.3.1.4360-free-centos-x86_64.rpm
    rpm -Uvh nrserver-2.3.1.4360-free-centos-x86_64.rpm
    /etc/rc.d/init.d/nrserver.sh restart
    nrserver -setdomain <DOMAINNAME> <DOMAINPASSWORD>
    nrserver -adduser <USERNAME> <PASSWORD> admin
    nrserver -enableuser <USERNAME>
    nrserver -showsettings
    

    Finally, add the following command to /etc/rc.local so that NeoRouter Server gets started whenever your instance is rebooted:

    echo "/etc/rc.d/init.d/nrserver.sh start" >> /etc/rc.local
    

    Installing Incredible PBX 16-15 on a Raspberry Pi

    We won’t regurgitate our Raspberry Pi tutorial. Simply follow the steps outlined there to acquire the necessary components and to get Incredible PBX 16-15 installed. We do want to stress the importance of getting WiFi working, configuring Exim to use your Gmail credentials as a smarthost, and making sure you added the email addition to /etc/rc.local so that you receive IP address information about your PBX whenever it is rebooted. If you skipped any of these steps, stop here and revisit the RasPi tutorial to complete those items.

    Configuring NeoRouter Client on Your Computers

    All flavors of Incredible PBX come with the NeoRouter client preinstalled. If your Asterisk-based home PBX is of another variety, you can install the NeoRouter Client matching the architecture of your server from here. Be sure to click on the NeoRouter Free v2 tab before making your selection. The other varieties are incompatible with the Free NeoRouter v2 Server installed above and are not free. Also be sure you match both the operating system and architecture of your server platform. Finally, make certain that TCP 32976 is whitelisted in your firewalls.

    On Linux-based (non-GUI) platforms, setting up the NeoRouter Client is done by issuing the command: nrclientcmd. You’ll be prompted for your NeoRouter Server FQDN as well as your username and password credentials. Perform this procedure on both your home PBX and the Raspberry Pi.

    To add your Windows or Mac notebook to the NeoRouter VPN, download the appropriate client and run the application which will prompt for your NeoRouter Server FQDN as well as your NeoRouter credentials. Once completed, you should see all three machines in your NeoRouter Free Client Dashboard: your PC as well as your home PBX and Raspberry Pi-based Incredible PBX. Make note of the private VPN addresses (10.0.0.X) of both your home PBX and your Raspberry Pi. These VPN addresses never change, and we’ll need them to interconnect your PBXs and to set up a softphone on your notebook computer.

    Admininistrative Tools to Manage NeoRouter

    Here are a few helpful commands for monitoring and managing your NeoRouter VPN.

    To access your NeoRouter Linux client: nrclientcmd

    To restart NeoRouter Linux client: /etc/rc.d/init.d/nrservice.sh restart

    To restart NeoRouter Linux server: /etc/rc.d/init.d/nrserver.sh restart

    To set domain: nrserver -setdomain YOUR-VPN-NAME domainpassword

    For a list of client devices: nrserver -showcomputers

    For a list of existing user accounts: nrserver -showusers

    For the settings of your NeoRouter VPN: nrserver -showsettings

    To add a user account: nrserver -adduser username password user

    To add admin account: nrserver -adduser username password admin

    For a complete list of commands: nrserver –help


    Interconnecting Your Raspberry Pi and Home PBX

    To keep things simple, our setup examples below assume the following NeoRouter VPN addresses: Home PBX (10.0.0.1) and Raspberry Pi (10.0.0.2). Using a browser, you’ll need to login to the GUI of your Home PBX and Raspberry Pi and add a Trunk to each PBX. Be sure to use the same secret on BOTH trunk setups. We don’t recommend forwarding incoming calls from your Home PBX to your Raspberry Pi because most folks won’t be sitting in their hotel room all day to answer incoming calls. Instead, add the number of your smartphone to a Ring Group on the Home PBX and don’t forget the # symbol at the end of the number. On the Raspberry Pi side, we are assuming that whenever a call is dialed from a registered softphone with the 9 prefix, the call will be sent to the Home PBX for call processing (without the 9). For example, 98005551212 would send 800-555-1212 to the Home PBX for outbound routing and 9701 would send 701 to the Home PBX for routing to the 701 extension. You can obviously adjust your dialplan to meet your own local requirements.

    On the Home PBX, the chan_sip trunk entries should look like this:

    Trunk Name: raspi-remote
    
    PEER DETAILS
    
    host=10.0.0.2
    type=friend
    context=from-internal
    username=home-pbx
    fromuser=home-pbx
    secret=some-password
    canreinvite=no
    insecure=port,invite
    qualify=yes
    nat=yes
    

    On the Raspberry Pi, the chan_sip trunk entries should look like this:

    Trunk Name: home-pbx
    
    PEER DETAILS
    
    host=10.0.0.1
    type=friend
    context=from-internal
    username=raspi-remote
    fromuser=raspi-remote
    secret=some-password
    canreinvite=no
    insecure=port,invite
    qualify=yes
    nat=yes
    

    On the Raspberry Pi, add an Outbound Route named Out9-home-pbx pointed to home-pbx Trunk with the following Dial Patterns. For each Dial Pattern, prepend=blank and prefix=9:

    dial string: 1NXXNXXXXXX  
    dial string: NXXNXXXXXX  
    dial string: *98X.
    dial string: XXX
    dial string: XXXX
    dial string: XXXXX
      

    Tweaking Your Raspberry Pi for WiFi Mobility

    Typically, you don’t know the WiFi SSID or password of your destination location before you travel. Because you won’t be traveling with a monitor and keyboard for your Raspberry Pi, we needed some way to adjust the WiFi credentials on the microSD card to accommodate the destination WiFi network when you arrive. Luckily, the Raspberry Pi folks thought of a clever way to handle this. You can simply plug your microSD card into your notebook PC (Mac ALERT: Don’t forget your SD card dongle!) and add a wpa_supplicant.conf config file to the /boot directory on the card once you arrive at your destination and know the SSID and password of the local WiFi network. When the Raspberry Pi is subsequently booted, the operating system will move the config file to the /etc/wpa_supplicant directory so that your WiFi network will come on line. Here’s what a typical wpa_supplicant.conf file should look like using your actual credentials. The last network section handles open WiFi network connections (think: McDonald’s) if you want to enable them:

    country=US
    update_config=1
    
    network={
     ssid="your-SSID"
     psk="your-SSID-password"
     key_mgmt=WPA-PSK
     scan_ssid=1
     priority=5
    }
    
    network={
     key_mgmt=NONE
     priority=1
    }
    

    The other gotcha is that some public WiFi networks require some type of web login procedure before you can actually access the Internet even though an IP address may have been assigned to your Raspberry Pi. To handle this situation, you’ll need a text-based web browser on the Raspberry Pi that can be accessed through your notebook PC using SSH and your Raspberry Pi’s VPN address. Our favorite is links which can be installed on your Raspberry Pi before you pack up.

    apt-get install links -y
    

    Once you arrive at your destination, connect both your notebook PC and Raspberry Pi to the same WiFi network, login to the RasPi with SSH at the VPN address assigned to your RasPi, and run links to start the browser. Press <esc> to access the links menu options. If you can’t access your RasPi at the VPN IP address, try its WiFi-assigned local IP address.

    Adding a Softphone to Your Notebook PC

    Last, but not least, you obviously need a way to make and receive calls once your Raspberry Pi is up and running at the remote site. We recommend installing a softphone on your Mac or PC notebook that connects to an extension on your Raspberry Pi using the VPN IP address of the Raspberry Pi. Using the VPN address assures that the connection will always be available regardless of the WiFi network’s local IP addresses. Everyone has their own favorite softphone, but here are some suggestions.

    For Windows PCs, we recommend VitalPBX Communicator. It’s a free download from here.



    Another good choice is YateClient which also is free. Download it from here. Run YateClient once you’ve installed it and enter the credentials for an extension on your Raspberry Pi. Then enter the VPN IP address of your server plus your extension’s password. Click OK to save your entries.

    If you are a Mac user, another great no-frills softphone is Telephone. Just download and install it from the Mac App Store.

    Adding a Softphone to Your Smartphone

    We actually prefer adding a free softphone app to our smartphone. There are a number of alternatives on both the iOS and Android platforms. With iPhones and iPads, we’ve had great success with Acrobits Softphone, Grandstream Wave, Linphone, and Zoiper Lite. All are available in the App Store. For Android devices, our current favorite is the VitalPBX Communicator. Acrobits Groundwire is another good choice. But Grandstream Wave, Linphone, and Zoiper Lite also are available. Keep in mind that Zoiper also supports IAX connections to simplify NAT connections. And, on both platforms, don’t forget that Google now lets you make and receive calls using the new Google Voice app using your old Google Voice numbers that no longer work directly with Asterisk.

    Enjoy your pain-free traveling!

    Originally published: Monday, September 9, 2019



    Need help with Asterisk? Visit the VoIP-info 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.

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

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

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

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