The Most Versatile VoIP Provider: FREE PORTING

Raspberry Pi Killer: The $99 Beelink T4 Pro

blank

For those that are new to the VoIP community, we feel your pain. What was once an easily attainable and affordable hardware solution with the Raspberry Pi is now a knuckle drill due to supply chain issues. And we appreciate that not everyone is ready to make the leap to the Cloud even though $25 a year is difficult to pass up. So today we’ll share our recent discovery of a hardware platform for your home or office that’s about the size of a drink coaster with performance that is perfectly suited for Incredible PBX platforms with dozens of users.

Meet the $99 Beelink T4 Pro Mini PC featuring an Intel N3350 processor with 4 Gigs of RAM and 64 Gigs of eMMC storage. The Mini PC has dual HDMI 4K display ports as well as Gigabit Ethernet, WiFi, and Bluetooth support. Amazon delivers the device in days, not months. Converting it’s default Windows 10 setup into a powerful Ubuntu 22.04 platform is a walk in the park.

TIP: Using our Amazon referral links helps fund Nerd Vittles reviews.

While photos don’t do it justice, this shot of the Mini PC resting in my hand will give you a good idea of its dimensions. While a fan is its only moving part, I’ve never heard it. And the case has remained at room temperature throughout our testing. Installing Incredible PBX is a two-step process: (1) switching the machine to an Ubuntu 22.04 platform and (2) running the Incredible PBX 2027 Ubuntu installer. So let’s get started.

blank

Creating an Ubuntu 22.04 USB Flash Drive

You’ll need a 2 Gig or larger USB flash drive on which to load the Ubuntu 22.04 Live Server ISO. You can download the ISO image from our SourceForge repo. If you’re unfamiliar with burning an ISO image to a USB flash drive, here’s a tutorial (one of many) that will walk you through the process on a Windows or Mac desktop. For Mac lovers, our personal favorite app is Balena Etcher. Once you have your USB drive ready to go, place it on the table until you adjust the BIOS settings below.

Adjusting the Mini PC BIOS Settings

Begin by plugging in a USB keyboard and HDMI monitor of your choice. Then power up the device using the included power adapter. Immediately hold down the ESC key to adjust the BIOS settings. In the Advanced tab, select S5 RTC Wake Settings and set Wake System to Dynamic Time. Press ESC. In Network Stack Configuration, set IPv4 PXE Support to Enabled. Press ESC. In CSM Configuration, set Boot Option Filter to UEFI and Legacy. Set Network to UEFI, Storage to UEFI, Video to Legacy, and Other PCI Devices to Legacy. Press ESC. In USB Configuration, set Legacy USB Support to Enabled. Press ESC. In the Boot tab, set Boot Option #1 to USB Device, Boot Option #2 to CD/DVD, and Boot Option #3 to Hard Disk. Press ESC. In the Save & Exit tab, choose Save Changes and Exit. Before pressing ENTER, insert your Ubuntu flash drive in the remaining USB port on the Mini PC.

Installing Ubuntu 22.04 on the Mini PC

Your Mini PC should now boot into the Ubuntu installer on your flash drive. Begin the install and select the option to install a Minimal Server Platform. Then you’ll need to create a temporary user as part of the install. During the Networking phase of the install, make sure to enable WiFi if your Mini PC is not connected with an Ethernet cable. Set your SSID and WiFi password at the prompts. Enable installation of SSH and no additional components. When the install finishes, reboot your Mini PC after removing the USB flash drive.

After reboot, login as the new user you created during the install and issue these commands:

# set root password
sudo passwd root
exit
# log back in as root
# delete temporary user
userdel -r temp-user-name
# decipher server IP address and write it down
ip a
apt install nano -y

While still logged in as root from the console, adjust the SSH configuration so that you can login from desktop machine via SSH. Open SSH config file: nano -w /etc/ssh/sshd_config

# change the following entries as shown here:
  PermitRootLogin yes
  PasswordAuthentication yes
# save the file and restart SSH
# Ctrl-X, Y, and press ENTER key
systemctl restart ssh

Finally, issue the following commands to avoid the 2-minute delay on bootup:

systemctl disable systemd-networkd-wait-online.service
systemctl mask systemd-networkd-wait-online.service
reboot

Installing SAMBA on Ubuntu 22.04

For SAMBA networking, follow this tutorial to get a SAMBA server installed on your machine.

Installing Incredible PBX 2027 for Ubuntu 22.04

It’s important to complete the Incredible PBX install from a desktop machine rather than from the console to assure that your desktop machine gets whitelisted in the Incredible PBX firewall. After the reboot, login from your desktop using SSH or Putty from the Terminal window:

ssh root@your-server-IP-address

Now you’re ready to begin the Incredible PBX install:

apt install wget tar nano -y
wget http://incrediblepbx.com/IncrediblePBX2027-U.sh
chmod +x IncrediblePBX2027-U.sh
./IncrediblePBX2027-U.sh

blank

When the install completes, continue your Incredible PBX adventure by following the steps in our Incredible PBX 2027 for Ubuntu 22.04 tutorial.

Originally published: Monday, February 6, 2023


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

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

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

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

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



blank

Happy New Year: It’s Incredible PBX 2027 for the Raspberry Pi

blank

Ever since Eben and Liz Upton first introduced the Raspberry Pi to our Charleston community over a decade ago, the primary focus of their development team has been to encourage people of the world to learn about computers on an affordable platform. To this day, the Raspberry Pi 4B can still be purchased (if you can find one) for $35. Unfortunately, supply chain issues have taken their toll. If you prefer not to pay a premium for the Raspberry Pi 4B or 400 keyboard, then visit the RPiLocator. If time is of the essence, then eBay is your friend for both the RasPi4 and the RasPi 400 keyboard.

Many of you may know that Mark Spencer, who founded Digium and initially developed Asterisk®, now has a new avionics company in Huntsville, Avilution. You may be surprised to learn that their unPanel Avionics platform was developed using redundant Raspberry Pi’s.

UPDATE: Download the latest Incredible PBX 2027 image for RasPi here.

To celebrate the New Year, we’ve taken an entirely new approach in developing this latest Incredible PBX iteration for the Raspberry Pi. In previous builds, we’ve offered a turnkey image for the Raspberry Pi. This time around we’ve incorporated the same Debian 11 installer that we use on AMD64 and ARM64 platforms. The primary advantage is that this installer will continue to work with future Raspberry Pi hardware that supports the Debian 11 platform. It also allows us to make slipstream enhancements across all hardware platforms in minutes instead of weeks. One final benefit of the new design is that you now can take advantage of the Raspberry Pi Imager which lets you create the base Debian 11 microSD platform for the Raspberry Pi in minutes.

What’s Included? Incredible PBX 2027 serves up a never before available VoIP powerhouse featuring Asterisk 20 and all FreePBX 16 GPL modules, an Apache web server, the latest MariaDB SQL server (formerly MySQL), SendMail mail server, Webmin, and most of the Incredible PBX feature set including SIP, PJSIP, SMS, voice recognition, AsteriDex, gTTS Text-to-Speech VoIP applications, Call-By-Name Dialing, News, Weather, Telephone Reminders, and hundreds of features that typically are found in commercial PBXs: Conferencing, IVRs and Email Delivery of transcribed voicemails, AutoAttendants, 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 our VoIP providers and start making and receiving calls instantly. Or you can use the new ClearlyIP trunking module included in the GUI for seamless integration of SMS messaging into FreePBX® and its User Control Panel.

Choosing a SIP Provider. As we mentioned, Incredible PBX 2027 comes preconfigured to support many of the major SIP providers including those that financially support Nerd Vittles and our open source projects: ClearlyIP, Skyetel, and VoIP.ms. As the old saying goes, they may not be the cheapest, but you get what you pay for. With all our providers, you only pay for minutes you use so signing up with more than one provider is a smart idea. For the full list of supported VoIP providers, visit the Incredible PBX Wiki.

Assembling the Required Raspberry Pi Components

Before you can deploy Incredible PBX 2027, you’ll first need the necessary Raspberry Pi hardware. To support the enhanced Incredible PBX 2027 platform, we strongly recommend either the Raspberry Pi 400 or the Raspberry Pi 4B with at least 2GB RAM. You can choose a reseller below for quicker delivery. Assuming you already own an HDMI-compatible monitor and a USB keyboard (only required if you don’t buy a RasPi 400)…

  • Raspberry Pi 4B or Raspberry Pi 400
  • $10 USB-C RasPi 4 (only) Power Supply
  • $9 32GB microSDHC Class 10 card (strongly recommended!)
  • $5 Official RasPi 4B Case or see above for our favorite
  • Getting Started with Incredible PBX 2027

    Begin by downloading Raspberry Pi Imager for PC, MAC, or Ubuntu desktop. Run the Imager from your desktop computer with the following settings after inserting microSD card in your desktop machine:

    OS: Raspberry Pi OS (other) -> Raspberry Pi OS Lite (64-bit)
    Storage: Select your microSD card (32GB Type 10 recommended)
    Click WRITE
    

    Remove the microSD card from your desktop computer. Insert it into your Raspberry Pi and power on the device. The initial Raspberry Pi OS setup for the United States follows. For users elsewhere, follow your nose.

    Choose keyboard layout: (Other, English (US) for USA users)
    Keyboard Layout: English (US)
    username: nerd
    password: make it secure, type it twice
    login: nerd with new password
    sudo passwd root
    create new secure root password
    logout: exit
    login: root with new root password
    userdel nerd
    nano -w /etc/ssh/sshd_config
      edit and uncomment: PermitRootLogin yes
      uncomment PasswordAuthentication yes
      save: Ctrl-X, Y, then ENTER key
    run: raspi-config
      Settings Apply to: pi
      Localization: WLAN Country: US
      System Options: Wireless LAN: Enter your SSID and SSID passphrase
      System Options: Hostname: debian
      System Options: Power LED: YES
      Interface Options: SSH: YES
      Localization: Locale: Disable en_GB.UTF-8 and Enable en_US.UTF-8
      Localization: TimeZone: America, NewYork
      FINISH and Reboot
    

    Once your Raspberry Pi has restarted, login as root with your root password and issue the following commands:

    wget http://incrediblepbx.com/IncrediblePBX2027-D-RasPi.sh
    chmod +x IncrediblePBX2027-D-RasPi.sh
    ip a
    

    To assure that your desktop computer is whitelisted in the Incredible PBX firewall, we recommend completing the rest of the install using SSH or Putty on your desktop machine. The ip a command above will tell you the local IP address of your RasPi. So login using this command: ssh root@ip-address. Then issue the following command:

    ./IncrediblePBX2027-D-RasPi.sh
    

    When the install finishes, reboot your Raspberry Pi and log back in as root. Let the Automatic Update Utility bring your system up to current specs after which the pbxstatus display should show something like the following.

    NOTE: To activate an OpenVPN client connection, create and copy a client configuration named incrediblepbx2027.ovpn from your OpenVPN server into the /etc folder & reboot.

    blank

    First Boot of Incredible PBX 2027

    If you entered WiFi credentials when running raspi-config above and your Raspberry Pi does not have a wired network connection, it should automatically enable the Wi-Fi connection on reboot. Issuing the command ip a will tell you the local IP addresses of wlan0 and eth0. With the Raspberry Pi 3B, 4B and 400, WiFi is built into the hardware. But you still have to provide your SSID name and SSID password to make a connection to your WiFi network. If pbxstatus does not show a network connection, here’s how to enable Wi-Fi:

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

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

     

    Now restart your server: reboot. When the reboot finishes, you now should have network connectivity.

    You may also need to change the default PortKnocker setting to your wireless LAN connection:

    sed -i 's|eth0|wlan0|' /etc/default/knockd
    service knockd restart
    

     

    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 RasPi. This is required for all of the SIP providers included in the Incredible PBX 2027 build. Otherwise, all inbound calls will fail.

    Configuring Skyetel for Incredible PBX 2027

    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 typically does not require 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 2027:

    • Name: MyPBX
    • Priority: 1
    • IP Address: PBX-Public-IP-Address
    • Port: 5061
    • Protocol: UDP
    • Description: 2027.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 2027

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

    Adding a Bootable SSD to Raspberry Pi

    Shown below are the two components that make up the 256GB storage solution for the Raspberry Pi. These include the M.2 SSD SATA drive and the M.2 enclosure which provides a USB connector that’s compatible with your RasPi. Assembly of the components takes less than a minute as shown in the steps below:


    blank

    You can order the M.2 SSD SATA drive and the M.2 enclosure using our Amazon referral links which help support Nerd Vittles and the Incredible PBX open source project.

    Once you have assembled your SSD in the sleeve, log back in as root using SSH or Putty. For best performance, insert the SSD drive into one of the blue USB 3.0 ports and verify that /dev/sda device is shown when you issue the command: fdisk -l

    Now proceed with the following steps to copy the image from your microSD card to the new SSD SATA drive:

    rpi-clone -l -e sda -f sda
    # answer prompts with yes and incred2027
    # once the image is copied, dismount the drive when prompted
    mount /dev/sda2 /mnt/clone
    cd /mnt/clone/boot
    cp -p -r /boot/* .
    sed -i 's|sda2|mmcblk0p2|' /boot/cmdline.txt
    cd /
    umount /mnt/clone
    halt
    

     
    Now you’re ready to restart your Raspberry Pi from the SSD SATA drive. Remove the microSD card and reboot your server.


    blank

    Configuring a Softphone for Incredible PBX 2027

    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. 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 which is free. Download it from here or the Mac App Store. 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.

    blank

    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.

    Last but not least, we also like the Zoiper5 free softphone. You can download it for your Windows, Mac, and Linux desktops here.

    Audio Issues with Incredible PBX 2027

    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 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. IMPORTANT: You MUST use a Gmail App Password instead of your Gmail account password.

    /root/enable-gmail-smarthost-for-sendmail
    

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

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

    Incredible PBX 2027 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.

    add-fqdn is used to whitelist a fully-qualified domain name in the firewall. Because Incredible PBX 2027 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.

    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.

    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.

    blank

    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 card: mkfs.vfat /dev/sda1 && mkfs.ext4 /dev/sda2. Then issue the following command to clone the primary microSD card: rpi-clone -f sda. 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 2027 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 2027. 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.

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

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

    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 16 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
    

    Resolving an Expired Certificate Alert

    1. Navigate to Admin -> Certificate Management in the FreePBX GUI
    2. Click the Trashcan to delete the Self-Signed Certificate
    3. Click New Certificate -> Generate Self-Signed Certificate
    4. In the Description field, type: Default
    5. Click Generate Certificate button

    What About Fax Support?

    Come back next week for a pleasant surprise.

    Continue Reading: Icing on the Cake for Incredible PBX but do NOT deploy Exim.

    Originally published: Monday, January 23, 2023


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

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

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

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

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



    blank

    Happy New Year: It’s Incredible PBX 2027 for Debian 11

    blank

    These past two weeks to celebrate the New Year, we’ve introduced Incredible PBX 2027 for Rocky 8 with AMD64-compatible hardware and Incredible PBX 2027 for Ubuntu 22.04 with AMD64 and ARM64 hardware support. Today we’re pleased to introduce Incredible PBX 2027 for Debian 11 featuring Asterisk® 20 LTS support until the fall of 2027. This release comes with full support for FreePBX® 16 as well as all the Incredible PBX goodies to which you’ve become accustomed.

    UPDATE: Proxmox image of Incredible PBX 2027-D now available in the Incredible PBX Repository.

    Again we want to offer our thanks to the many talented individuals on the VoIP-Info.org Forum who have assisted us in working through the growing pains of bringing you these new open source products at zero cost. And our special thanks to @kenn10 for his Herculean efforts refining the Incredible PBX 2027 install scripts. Come celebrate the New Year with us and join the party!

    If you’re using on-premise hardware, download Debian 11, codenamed bullseye, netinst, for 64-bit PC (amd64). If you’d prefer to experiment in the cloud for about a penny an hour, open an account at Vultr or Digital Ocean using our referral links that support the Nerd Vittles project. You’ll also get some free credit to try out the service. Then create a new $5/month Debian 11, 64-bit instance in your favorite city. Want some cheaper KVM cloud alternatives? Visit the Incredible PBX Wiki for tips.

    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 server. This is required for all of the SIP providers included in the Incredible PBX 2027 builds. Otherwise, all inbound calls will fail.

    Installing Incredible PBX 2027 on Debian 11 Server

    If you’re building the Debian platform from the ISO, boot your server from the ISO, choose your Language, choose your Location, and choose your Keyboard. Wait for the network to be configured. Then leave the Hostname set as debian. Leave the Domain blank. Set your root password. Create a New User and Password. Set the TimeZone for your clock. Accept the defaults to partition disks. Write the changes to disk. Wait for the base system to be installed. Answer NO at the Scan More Media prompt. Select a Mirror for Package Manager that is close to you. Leave the proxy information blank. At the Software Selection prompt, choose only the bottom two options to get the basics and SSH. Load the GRUB boot manager and select your drive. Then reboot. After reboot, login as the new user and issue these commands:

    # set root password
    su root
    passwd
    exit
    exit
    # log back in as root
    # delete temporary user
    userdel -r temp-user-name
    # decipher server IP address
    ip a
    # try logging in via SSH: ssh root@ip-address
    

    If you cannot login via SSH or Putty as root then, from the console while logged in as root, issue these commands:

    apt install nano -y
    cd /etc/ssh
    nano -w sshd_config
    # change the following entries as shown here:
      PermitRootLogin yes
      PasswordAuthentication yes
    # save the file and restart SSH
    # Ctrl-X, Y, and press ENTER key
    systemctl restart ssh
    

    Once your Debian 11 platform is properly configured, login as root using SSH or Putty. Issue the commands below to kick off the install:

    apt install wget tar nano -y
    wget http://incrediblepbx.com/IncrediblePBX2027-D.sh
    chmod +x IncrediblePBX2027-D.sh
    ./IncrediblePBX2027-D.sh
    

    Setting a Hostname for Incredible PBX 2027

    Once your server is up and running, you’ll need to set a hostname for the machine that is resolvable on the Internet. Failure to do so will make access to the FreePBX GUI a painfully delayed process. If you don’t have an FQDN that can be used, you can use the default: noreply.incrediblepbx.com. To change it, edit /etc/hosts and /etc/hostname. Also enter your new FQDN with the command: hostname myfqdn.com.

    Next Steps with Incredible PBX 2027

    Before you can manage your PBX through a web browser, you first will need to set the root password for Debian as well as the admin passwords for FreePBX and Apache web apps such as Reminders and AsteriDex. These all can be set by logging into your server as root and issuing the following commands: passwd, admin-pw-change, and apache-pw-change.

    Outbound mail functionality needs to be working so that you can receive voicemail messages and faxes by email. To prevent SPAM, most ISPs and ITSPs block messages from downstream mail servers. That would be you. The easiest way to resolve this is to configure SendMail using Gmail as an SMTP Smarthost. You obviously need a Gmail account to implement this and you also will need to obtain an App password for your Gmail account, and use that in lieu of your regular Gmail password when configuring SendMail. With your Gmail username and App password in hand, log into your server as root and run: /root/enable-gmail-smarthost-for-sendmail.

    If your Incredible PBX 2027 is hosted with a cloud provider, be advised that some providers do not include a swap file as part of their offering. To see if a swapfile is enabled, issue the command: free -h. FreePBX requires a swap file. To add one, issue this command after logging into your server as root: /root/create-swapfile-DO.

    To correctly set the time on your PBX, run: /root/timezone-setup.

    By default, the voicemail password for each of the configured extensions (701-705) is set to the extension number. This means the user will be prompted to set a voicemail password on the first login to voicemail for each extension. A phone must be registered to the actual extension to access its voicemail account. For example, once a phone is registered to extension 701, the voicemail setup can be accessed by dialing *98701.

    Overview of the Initial Asterisk Setup Process

    For those new to PBXs, here’s a two paragraph summary of how Voice over IP (VoIP) works. Phones connected to your PBX are registered with Extensions so that they can make and receive calls. When a PBX user picks up a phone and dials a number, an Outbound Route tells the PBX which Trunk to use to place the call based upon established dialing rules. Unless the dialed number is a local extension, a Trunk registered with some service provider accepts the call, and the PBX sends the call to that provider. The provider then routes the call to its destination where the recipient’s phone rings to announce the incoming call. When the recipient picks up the phone, the conversation begins.

    Looking at things from the other end, when a caller somewhere in the world wishes to reach you, the caller picks up a telephone and dials a number known as a DID that is assigned to you by a provider with whom you have established service. When the provider receives the call to your DID, it routes the call to your PBX based upon destination information you established with the provider. Your PBX receives the call with information identifying the DID of the call as well as the CallerID name and number of the caller. An Inbound Route on your PBX then determines where to send the call based upon that DID and CallerID information. Typically, a call is routed to an Extension, a group of Extensions known as a Ring Group, or an IVR or AutoAttendant giving the caller choices on routing the call to the desired destination. Once the call is routed to an Extension, the PBX rings the phone registered to that Extension. When you pick up the phone, the conversation begins.

    Configuring Trunks with Incredible PBX GUI

    Perhaps the most difficult component to configure in the PBX is the Trunk. Almost every provider has a different way of doing things. We’ve taken some of the torture out of the exercise by providing a script which will configure settings for dozens of providers in seconds. Once installed, all you need to do is edit the desired Trunk (Connectivity:Trunks), change the Disable Trunk entry to No, and insert your credentials in both the PEER Details and Registration string of the SIP Settings Outgoing and Incoming tabs. Skyetel is enabled by default and needs no setup on the PBX side.

    Configuring Skyetel for Incredible PBX 2027

    If you’ve decided to go with Skyetel, here’s the drill. Sign up for Skyetel service and take advantage of the Nerd Vittles specials. 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 satisfied with the service, fund your account as desired, and Skyetel will match your deposit of up to $250 simply by opening another ticket. That gets you up to $500 of half-price calling. Credit is limited to one per person/company/address/location. 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 2027:

    • Name: MyPBX
    • Priority: 1
    • IP Address: PBX-Public-IP-Address
    • Port: 5060
    • Protocol: UDP
    • Description: my.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 sign up for service) 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 2027

    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 2027 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. In the Incredible PBX GUI, be sure to enable the VoIP.ms trunk.

    Configuring V1VoIP for Incredible PBX 2027

    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 Forwarding 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. In the Incredible PBX GUI, be sure to enable all of the V1VoIP trunks.

    Configuring Anveo Direct for Incredible PBX 2027

    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.

    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. Log into the GUI as admin using a web browser and edit the Anveo-Out trunk in Connectivity -> Trunks. Enable the Trunk. Then click on the custom-Settings tab and replace anveo-pin with your actual Dialing Prefix. Click Submit and Apply Config to complete the setup. In the Incredible PBX GUI, be sure to enable all of the remaining Anveo trunks.

    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 Extensions with Incredible PBX GUI

    Extensions are created using the Incredible PBX GUI: Applications:Extensions. Many SIP phones expect extensions to communicate on UDP port 5060. If this is the case with your SIP phone or softphone, then always create Chan_SIP extensions which communicate on UDP 5060. If your SIP phone or softphone provide port flexibility, then you have a choice in the type of SIP extension to create: Chan_SIP or the more versatile PJSIP (UDP 5061). Just remember to always configure SIP extensions with NAT Mode=YES in the Advanced tab. If your VoIP phones or softphones support IAX connectivity, you may wish to consider IAX extensions which avoid NAT problems.

    When you create a new Extension, a new entry is automatically created in the PBX Internal Directory. If you wish to allow individual users to manage their extensions or use the WebRTC softphone, then you will also have to create a (very) secure password for User Control Panel (UCP) access. Choose Admin:User Management and click on the key icon of the desired extension to assign a password for UCP and WebRTC access.

    Configuring a Desktop Softphone for Incredible PBX

    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.

    blank

    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. For Android users, check out the terrific new VitalPBX Communicator. Works flawlessly with Incredible PBX.

    Configuring a Softphone Extension on a Smartphone

    Adding an Incredible PBX extension to your smartphone gets a little trickier. Whether you’re an iPhone or Android lover, all smartphones use batteries, and you don’t want to drain your battery by running a softphone as a foreground app all the time. Fortunately, you now have some choices in softphones engineered to work without draining your battery. While they all cost money, it’s not much money. We’ve written about all the choices, and you’ll find the links in our Softphone Provider Recommendations on the new Incredible PBX Wiki.

    With PJsip extensions, you’re not limited to a single phone connection at a time, and we’ve preconfigured extension 701 to support ten simultaneous connections. The setup on the softphone side is simple. For the server, enter the actual IP address of your PBX in the following format: 22.33.44.55:5061. Then enter 701 for the username and enter the password assigned to the 701 extension on your PBX. When an incoming call arrives, all the phones registered to extension 701 will ring simultaneously. Simply answer the call on the phone that is most convenient. For extension 702, you can change the number of simultaneous connections by clicking the Advanced tab and setting the number in Max Contacts.

    Configuring Outbound Routes in Incredible PBX GUI

    Outbound Routes serve a couple of purposes. First, they assure that calls placed by users of your PBX are routed out through an appropriate trunk to reach their destination in the least costly manner. Second, they serve as a security mechanism by either blocking or restricting certain calls by requiring a PIN to complete the calls. Never authorize recurring charges on credit cards registered with your VoIP providers and, if possible, place pricing limits on calls with your providers. If a bad guy were to break into your PBX, you don’t want to give the intruder a blank check to make unauthorized calls. And you certainly don’t want to join the $100,000 Phone Bill Club.

    To create outbound routes in the Incredible PBX GUI, navigate to Connectivity:Outbound Routes and click Add Outbound Route. In the Route Settings tab, give the Outbound Route a name and choose one or more trunks to use for the outbound calls. In the Dial Patterns tab, specify the dial strings that must be matched to use this Outbound Route. NXXNXXXXXX would require only 10-digit numbers with the first and fourth digits being a number between 2 and 9. Note that Outbound Routes are searched from the top entry to the bottom until there is a match. Make certain that you order your routes correctly and then place test calls watching the Asterisk CLI to make sure the calls are routed as you intended.

    Configuring Inbound Routes in Incredible PBX GUI

    Inbound Routes, as the name implies, are used to direct incoming calls to a specific destination. That destination could be an extension, a ring group, an IVR or AutoAttendant, or even a conference or DISA extension to place outbound calls (hopefully with a very secure password). Inbound Routes can be identified by DID, CallerID number, or both. To create Inbound Routes, choose Connectivity:Inbound Routes and then click Add Inbound Route. Provide at least a Description for the route, a DID to be matched, and the Destination for the incoming calls that match. If you only want certain callers to be able to reach certain extensions, add a CallerID number to your matching criteria. You can add Call Recording and CallerID CNAM Lookups under the Other tab.

    Audio Issues with Incredible PBX 2027

    While it is always a good idea anyway, if you experience one-way or no audio on some calls, be sure to 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.

    Adding Incredible PBX 2027 to an OpenVPN Network

    We previously have documented the procedure for creating an OpenVPN server as well as OpenVPN client templates (.ovpn). If you need a refresher, the tutorial is here. To add your Incredible PBX 2027 server to an existing OpenVPN network, begin by creating an incrediblepbx2027.ovpn template on your OpenVPN server. Be sure to comment out or delete the setenv line in the template. Then copy this template to /etc on your Incredible PBX 2027 server. The following commands are already in place:

    echo "[Unit]
    Description=openvpn2027
    ConditionPathExists=/etc/openvpn-start
    After=rclocal.service
    [Service]
    Type=forking
    ExecStart=/etc/openvpn-start /etc/incrediblepbx2027.ovpn
    TimeoutSec=0
    StandardOutput=tty
    RemainAfterExit=yes
    PermissionsStartOnly=true
    SysVStartPriority=99
    [Install]
    WantedBy=multi-user.target" > /etc/systemd/system/openvpn2027.service
    

    We’ve also enabled this openvpn2027.service which will start when you reboot your server. The OpenVPN IP address should now appear on the LAN line in pbxstatus:

    systemctl enable openvpn2027.service
    reboot
    

    Incredible PBX 2027 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.

    add-fqdn is used to whitelist a fully-qualified domain name in the firewall. Because Incredible PBX 2027 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.

    admin-pw-change is used to set the admin password for access to the FreePBX/Incredible PBX web GUI using a browser pointed to the local IP address of your server.

    apache-pw-change is used to set the admin password for access to Apache/Incredible PBX apps including AsteriDex and Reminders. This provides a password layer of protection for access to these applications.

    incrediblebackup2021 makes a backup of critical components on your PBX to a tarball saved in /backup. This should be copied to safe location off-site for a rainy day.

    incrediblerestore2021 restores a backup file which has been copied to the /backup folder.

    ipchecker is a script which deciphers the public IP addresses associated with whitelisted FQDNs created with add-fqdn on your server. If any of the addresses have changed, the firewall is restarted after updating the IP addresses. By default, it is executed every 10 minutes by /etc/crontab.

    licenses.sh displays the license associated with each of the FreePBX modules on your server.

    logos-b-gone removes proprietary artwork from your PBX and is no longer necessary with the included IncrediblePBX FreePBX module.

    mime-construct is a command-line utility to send emails with attachments.

    neorouter-login is a script to add your PBX to a NeoRouter VPN. Tutorial here.

    odbc-gen.sh is a script that was run to generate the ODBC settings for Asterisk. Do NOT use it.

    openvpn-start is a script to add your PBX to an existing OpenVPN network using an .ovpn config file. Tutorial here.

    pbxstatus displays status of all major components of Incredible PBX 2027.

    pptp-install is a script to create a PPTP network connection for your PBX. Tutorial here.

    purge-cdr-cel-records removes all CDR and CEL records from the MySQL database.

    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.

    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 2027 actually is. A similar listing is available in the GUI at Admin -> Feature Codes.

    show-passwords is a script that displays most of the passwords associated with Incredible PBX 2027. 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.

    sig-fix disables Module Signature Checking in the FreePBX GUI. This should not be necessary unless you have added or edited FreePBX Modules with missing module signatures.

    sms-skyetel is a script to send SMS messages using a Skyetel trunk.

    sms-voip.ms is a script to send SMS messages using a VoIP.ms trunk.

    sms-blast, sms-blaster, and sms-dictator are scripts for message blasting. Tutorial here.

    timezone-setup is a script to set the timezone for your PBX.

    update-IncrediblePBX is a script that runs the Automatic Update Utility whenever you login to your server as root. These updates typically resolve bugs and security issues with your PBX. Do NOT remove it.

    wolfram is a script to deploy Wolfram Alpha on your PBX. Tutorial here.

    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"

    Implementing Call By Name with 411

    Once you have an Outbound Trunk and Route configured, deploying Call by Name by dialing 411 is simple. The way it works is to pick up any phone connected to your PBX and dial 411. When prompted for the name of the person or company to call, say the name as you entered it in the AsteriDex directory, e.g. Delta Air Lines. The name will then be looked up to decipher the number of the person or company to call. Then the call will be placed using your default outbound route. To deploy Call By Name, simply follow the setup instructions in this Nerd Vittles tutorial.

    Keeping FreePBX 16 Modules Current

    We strongly recommend that you periodically update all of your FreePBX modules to eliminate bugs and to reduce security vulnerabilities. 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
    

     

    Originally published: Monday, January 16, 2023


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

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

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

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

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



    blank

    Happy New Year: It’s Incredible PBX 2027 for Ubuntu 22.04

    blank

    Last week to celebrate New Year’s Day, we introduced Incredible PBX 2027 for Rocky 8 with AMD64-compatible hardware. Today we’re pleased to introduce Incredible PBX 2027 for Ubuntu 22.04 LTS with its ten-year life cycle to complement Asterisk® 20 featuring LTS support until the fall of 2027. Both new AMD64 releases come with full support for FreePBX® 16 as well as all the Incredible PBX goodies to which you’ve become accustomed.

    We also want to offer our thanks to the many talented individuals on the VoIP-Info.org Forum who have assisted us in working through the growing pains of bringing you these new open source products at zero cost. And our special thanks to @kenn10 for his Herculean efforts refining the Incredible PBX 2027 install scripts. Come join the party!

    If you’re using on-premise hardware, begin by downloading the Live Server ISO image of Ubuntu 22.04 for amd64. Follow our previous tutorials for tips on installation with VirtualBox or VMware ESXi. If you’d prefer to experiment in the cloud for about a penny an hour, open an account at Vultr or Digital Ocean using our referral links that support the Nerd Vittles project. You’ll also get some free credit to try out the service. Then create a new $5/month Ubuntu 22.04, 64-bit instance in your favorite city. Want some cheaper KVM cloud alternatives? Visit the Incredible PBX Wiki for tips.

    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 server. This is required for all of the SIP providers included in the Incredible PBX 2027 build. Otherwise, all inbound calls will fail.

    Installing Incredible PBX 2027 on Ubuntu 22.04 Server

    If you’re building the Ubuntu platform from the ISO, select the option to install a Minimal Server Platform. Then you’ll need to create a temporary user as part of the install. Enable installation of SSH and no additional components. After reboot, login as the new user and issue these commands:

    # set root password
    sudo passwd root
    exit
    # log back in as root
    # delete temporary user
    userdel -r temp-user-name
    # decipher server IP address
    ip a
    # try logging in via SSH: ssh root@ip-address
    

    On desktop machines, if you experience a 2-minute delay on boot up waiting for network to be configured, issue these two commands after logging in as root:

    systemctl disable systemd-networkd-wait-online.service
    systemctl mask systemd-networkd-wait-online.service
    

    If you cannot login via SSH or Putty as root then, from the console while logged in as root, issue these commands:

    apt install nano -y
    cd /etc/ssh
    nano -w sshd_config
    # change the following entries as shown here:
      PermitRootLogin yes
      PasswordAuthentication yes
    # save the file and restart SSH
    # Ctrl-X, Y, and press ENTER key
    systemctl restart ssh
    

    ALERT: On some cloud platforms, e.g. RackNerds, they reportedly provide a non-interactive version of Ubuntu 22.04. So, after completing the steps above, you will need to run the following script: /usr/local/sbin/unminimize. Next, run: apt update && apt upgrade. Finally, reboot the server and log back in as root to continue.

    Once your Ubuntu 22.04 platform is properly configured, login as root using SSH or Putty. Issue the commands below to kick off the install:

    apt install wget tar nano -y
    wget http://incrediblepbx.com/IncrediblePBX2027-U.sh
    chmod +x IncrediblePBX2027-U.sh
    ./IncrediblePBX2027-U.sh
    

    On homespun, ISO-built platforms, you will be prompted within a minute or so on whether to preserve your existing SSH configuration. Press ENTER to accept the default.

    Setting a Hostname for Incredible PBX 2027

    Once your server is up and running, you’ll need to set a hostname for the machine that is resolvable on the Internet. Failure to do so will make access to the FreePBX GUI a painfully delayed process. If you don’t have an FQDN that can be used, you can use the default: noreply.incrediblepbx.com. To change it, edit /etc/hosts and /etc/hostname. Also enter your new FQDN with the command: hostname myfqdn.com.

    If you’re running your PBX in the Oracle Cloud, this message thread will show you how to set the hostname there.

    Next Steps with Incredible PBX 2027

    Before you can manage your PBX through a web browser, you first will need to set the root password for Ubuntu as well as the admin passwords for FreePBX and Apache web apps such as Reminders and AsteriDex. These all can be set by logging into your server as root and issuing the following commands: passwd, admin-pw-change, and apache-pw-change.

    Outbound mail functionality needs to be working so that you can receive voicemail messages and faxes by email. To prevent SPAM, most ISPs and ITSPs block messages from downstream mail servers. That would be you. The easiest way to resolve this is to configure SendMail using Gmail as an SMTP Smarthost. You obviously need a Gmail account to implement this and you also will need to obtain an App password for your Gmail account, and use that in lieu of your regular Gmail password when configuring SendMail. With your Gmail username and App password in hand, log into your server as root and run: /root/enable-gmail-smarthost-for-sendmail.

    If your Incredible PBX 2027 is hosted with a cloud provider, be advised that many providers do not include a swap file as part of their offering. FreePBX requires a swap file. To add one, issue this command after logging into your server as root: /root/create-swapfile-DO.

    To correctly set the time on your PBX, run: /root/timezone-setup.

    By default, the voicemail password for each of the configured extensions (701-705) is set to the extension number. This means the user will be prompted to set a voicemail password on the first login to voicemail for each extension. A phone must be registered to the actual extension to access its voicemail account. For example, once a phone is registered to extension 701, the voicemail setup can be accessed by dialing *98701.

    Overview of the Initial Asterisk Setup Process

    For those new to PBXs, here’s a two paragraph summary of how Voice over IP (VoIP) works. Phones connected to your PBX are registered with Extensions so that they can make and receive calls. When a PBX user picks up a phone and dials a number, an Outbound Route tells the PBX which Trunk to use to place the call based upon established dialing rules. Unless the dialed number is a local extension, a Trunk registered with some service provider accepts the call, and the PBX sends the call to that provider. The provider then routes the call to its destination where the recipient’s phone rings to announce the incoming call. When the recipient picks up the phone, the conversation begins.

    Looking at things from the other end, when a caller somewhere in the world wishes to reach you, the caller picks up a telephone and dials a number known as a DID that is assigned to you by a provider with whom you have established service. When the provider receives the call to your DID, it routes the call to your PBX based upon destination information you established with the provider. Your PBX receives the call with information identifying the DID of the call as well as the CallerID name and number of the caller. An Inbound Route on your PBX then determines where to send the call based upon that DID and CallerID information. Typically, a call is routed to an Extension, a group of Extensions known as a Ring Group, or an IVR or AutoAttendant giving the caller choices on routing the call to the desired destination. Once the call is routed to an Extension, the PBX rings the phone registered to that Extension. When you pick up the phone, the conversation begins.

    Configuring Trunks with Incredible PBX GUI

    Perhaps the most difficult component to configure in the PBX is the Trunk. Almost every provider has a different way of doing things. We’ve taken some of the torture out of the exercise by providing a script which will configure settings for dozens of providers in seconds. Once installed, all you need to do is edit the desired Trunk (Connectivity:Trunks), change the Disable Trunk entry to No, and insert your credentials in both the PEER Details and Registration string of the SIP Settings Outgoing and Incoming tabs. Skyetel is enabled by default and needs no setup on the PBX side.

    Configuring Skyetel for Incredible PBX 2027

    If you’ve decided to go with Skyetel, here’s the drill. Sign up for Skyetel service and take advantage of the Nerd Vittles specials. 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 satisfied with the service, fund your account as desired, and Skyetel will match your deposit of up to $250 simply by opening another ticket. That gets you up to $500 of half-price calling. Credit is limited to one per person/company/address/location. 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 2027:

    • Name: MyPBX
    • Priority: 1
    • IP Address: PBX-Public-IP-Address
    • Port: 5060
    • Protocol: UDP
    • Description: my.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 sign up for service) 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 2027

    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 2027 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. In the Incredible PBX GUI, be sure to enable the VoIP.ms trunk.

    Configuring V1VoIP for Incredible PBX 2027

    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 Forwarding 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. In the Incredible PBX GUI, be sure to enable all of the V1VoIP trunks.

    Configuring Anveo Direct for Incredible PBX 2027

    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.

    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. Log into the GUI as admin using a web browser and edit the Anveo-Out trunk in Connectivity -> Trunks. Enable the Trunk. Then click on the custom-Settings tab and replace anveo-pin with your actual Dialing Prefix. Click Submit and Apply Config to complete the setup. In the Incredible PBX GUI, be sure to enable all of the remaining Anveo trunks.

    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 Extensions with Incredible PBX GUI

    Extensions are created using the Incredible PBX GUI: Applications:Extensions. Many SIP phones expect extensions to communicate on UDP port 5060. If this is the case with your SIP phone or softphone, then always create Chan_SIP extensions which communicate on UDP 5060. If your SIP phone or softphone provide port flexibility, then you have a choice in the type of SIP extension to create: Chan_SIP or the more versatile PJSIP (UDP 5061). Just remember to always configure SIP extensions with NAT Mode=YES in the Advanced tab. If your VoIP phones or softphones support IAX connectivity, you may wish to consider IAX extensions which avoid NAT problems.

    When you create a new Extension, a new entry is automatically created in the PBX Internal Directory. If you wish to allow individual users to manage their extensions or use the WebRTC softphone, then you will also have to create a (very) secure password for User Control Panel (UCP) access. Choose Admin:User Management and click on the key icon of the desired extension to assign a password for UCP and WebRTC access.

    Configuring a Desktop Softphone for Incredible PBX

    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.

    blank

    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. For Android users, check out the terrific new VitalPBX Communicator. Works flawlessly with Incredible PBX.

    Configuring a Softphone Extension on a Smartphone

    Adding an Incredible PBX extension to your smartphone gets a little trickier. Whether you’re an iPhone or Android lover, all smartphones use batteries, and you don’t want to drain your battery by running a softphone as a foreground app all the time. Fortunately, you now have some choices in softphones engineered to work without draining your battery. While they all cost money, it’s not much money. We’ve written about all the choices, and you’ll find the links in our Softphone Provider Recommendations on the new Incredible PBX Wiki.

    With PJsip extensions, you’re not limited to a single phone connection at a time, and we’ve preconfigured extension 701 to support ten simultaneous connections. The setup on the softphone side is simple. For the server, enter the actual IP address of your PBX in the following format: 22.33.44.55:5061. Then enter 701 for the username and enter the password assigned to the 701 extension on your PBX. When an incoming call arrives, all the phones registered to extension 701 will ring simultaneously. Simply answer the call on the phone that is most convenient. For extension 702, you can change the number of simultaneous connections by clicking the Advanced tab and setting the number in Max Contacts.

    Configuring Outbound Routes in Incredible PBX GUI

    Outbound Routes serve a couple of purposes. First, they assure that calls placed by users of your PBX are routed out through an appropriate trunk to reach their destination in the least costly manner. Second, they serve as a security mechanism by either blocking or restricting certain calls by requiring a PIN to complete the calls. Never authorize recurring charges on credit cards registered with your VoIP providers and, if possible, place pricing limits on calls with your providers. If a bad guy were to break into your PBX, you don’t want to give the intruder a blank check to make unauthorized calls. And you certainly don’t want to join the $100,000 Phone Bill Club.

    To create outbound routes in the Incredible PBX GUI, navigate to Connectivity:Outbound Routes and click Add Outbound Route. In the Route Settings tab, give the Outbound Route a name and choose one or more trunks to use for the outbound calls. In the Dial Patterns tab, specify the dial strings that must be matched to use this Outbound Route. NXXNXXXXXX would require only 10-digit numbers with the first and fourth digits being a number between 2 and 9. Note that Outbound Routes are searched from the top entry to the bottom until there is a match. Make certain that you order your routes correctly and then place test calls watching the Asterisk CLI to make sure the calls are routed as you intended.

    Configuring Inbound Routes in Incredible PBX GUI

    Inbound Routes, as the name implies, are used to direct incoming calls to a specific destination. That destination could be an extension, a ring group, an IVR or AutoAttendant, or even a conference or DISA extension to place outbound calls (hopefully with a very secure password). Inbound Routes can be identified by DID, CallerID number, or both. To create Inbound Routes, choose Connectivity:Inbound Routes and then click Add Inbound Route. Provide at least a Description for the route, a DID to be matched, and the Destination for the incoming calls that match. If you only want certain callers to be able to reach certain extensions, add a CallerID number to your matching criteria. You can add Call Recording and CallerID CNAM Lookups under the Other tab.

    Audio Issues with Incredible PBX 2027

    While it is always a good idea anyway, if you experience one-way or no audio on some calls, be sure to 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.

    Adding Incredible PBX 2027 to an OpenVPN Network

    We previously have documented the procedure for creating an OpenVPN server as well as OpenVPN client templates (.ovpn). If you need a refresher, the tutorial is here. To add your Incredible PBX 2027 server to an existing OpenVPN network, begin by creating an incrediblepbx2027.ovpn template on your OpenVPN server. Be sure to comment out or delete the setenv line in the template. Then copy this template to /etc on your Incredible PBX 2027 server. The following commands are already in place:

    echo "[Unit]
    Description=openvpn2027
    ConditionPathExists=/etc/openvpn-start
    After=rclocal.service
    [Service]
    Type=forking
    ExecStart=/etc/openvpn-start /etc/incrediblepbx2027.ovpn
    TimeoutSec=0
    StandardOutput=tty
    RemainAfterExit=yes
    PermissionsStartOnly=true
    SysVStartPriority=99
    [Install]
    WantedBy=multi-user.target" > /etc/systemd/system/openvpn2027.service
    

    We’ve also enabled this openvpn2027.service which will start when you reboot your server. The OpenVPN IP address should now appear on the LAN line in pbxstatus:

    systemctl enable openvpn2027.service
    reboot
    

    Incredible PBX 2027 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.

    add-fqdn is used to whitelist a fully-qualified domain name in the firewall. Because Incredible PBX 2027 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.

    admin-pw-change is used to set the admin password for access to the FreePBX/Incredible PBX web GUI using a browser pointed to the local IP address of your server.

    apache-pw-change is used to set the admin password for access to Apache/Incredible PBX apps including AsteriDex and Reminders. This provides a password layer of protection for access to these applications.

    incrediblebackup2021 makes a backup of critical components on your PBX to a tarball saved in /backup. This should be copied to safe location off-site for a rainy day.

    incrediblerestore2021 restores a backup file which has been copied to the /backup folder.

    ipchecker is a script which deciphers the public IP addresses associated with whitelisted FQDNs created with add-fqdn on your server. If any of the addresses have changed, the firewall is restarted after updating the IP addresses. By default, it is executed every 10 minutes by /etc/crontab.

    licenses.sh displays the license associated with each of the FreePBX modules on your server.

    logos-b-gone removes proprietary artwork from your PBX and is no longer necessary with the included IncrediblePBX FreePBX module.

    mime-construct is a command-line utility to send emails with attachments.

    neorouter-login is a script to add your PBX to a NeoRouter VPN. Tutorial here.

    odbc-gen.sh is a script that was run to generate the ODBC settings for Asterisk. Do NOT use it.

    openvpn-start is a script to add your PBX to an existing OpenVPN network using an .ovpn config file. Tutorial here.

    pbxstatus displays status of all major components of Incredible PBX 2027.

    pptp-install is a script to create a PPTP network connection for your PBX. Tutorial here.

    purge-cdr-cel-records removes all CDR and CEL records from the MySQL database.

    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.

    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 2027 actually is. A similar listing is available in the GUI at Admin -> Feature Codes.

    show-passwords is a script that displays most of the passwords associated with Incredible PBX 2027. 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.

    sig-fix disables Module Signature Checking in the FreePBX GUI. This should not be necessary unless you have added or edited FreePBX Modules with missing module signatures.

    sms-skyetel is a script to send SMS messages using a Skyetel trunk.

    sms-voip.ms is a script to send SMS messages using a VoIP.ms trunk.

    sms-blast, sms-blaster, and sms-dictator are scripts for message blasting. Tutorial here.

    timezone-setup is a script to set the timezone for your PBX.

    update-IncrediblePBX is a script that runs the Automatic Update Utility whenever you login to your server as root. These updates typically resolve bugs and security issues with your PBX. Do NOT remove it.

    wolfram is a script to deploy Wolfram Alpha on your PBX. Tutorial here.

    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"

    Implementing Call By Name with 411

    Once you have an Outbound Trunk and Route configured, deploying Call by Name by dialing 411 is simple. The way it works is to pick up any phone connected to your PBX and dial 411. When prompted for the name of the person or company to call, say the name as you entered it in the AsteriDex directory, e.g. Delta Air Lines. The name will then be looked up to decipher the number of the person or company to call. Then the call will be placed using your default outbound route. To deploy Call By Name, simply follow the setup instructions in this Nerd Vittles tutorial.

    Keeping FreePBX 16 Modules Current

    We strongly recommend that you periodically update all of your FreePBX modules to eliminate bugs and to reduce security vulnerabilities. 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
    

     

    Originally published: Monday, January 9, 2023


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

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

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

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

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



    blank

    Happy New Year: Introducing Incredible PBX 2027

    blank

    If we have one complaint with open source VoIP telephony, it would be this. Commercial PBXs used to last for a decade or more. Now, most open source VoIP platforms are measured in months. So, we have a better idea. We’re going to tell you up front how long Incredible PBX 2027 with Rocky 8 and Asterisk® 20 and FreePBX® 16 is going to be supported. And, for procrastinators, you’ll have until the fall of that year to line up an alternative. Having said all of that, we are pleased to introduce Incredible PBX 2027-R for Rocky 8 and AlmaLinux 8 featuring Asterisk 20 and your choice of FreePBX 15 or 16.

    UPDATE: Proxmox image of Incredible PBX 2027-R now available in the Incredible PBX Repository.

    CAUTION: Because of frequent changes in Rocky 8 that regularly "break things," we no longer recommend it for production use with Incredible PBX>

    Begin by downloading and installing Rocky 8 Minimal. If you prefer AlmaLinux, download and install their minimal image from here. If you prefer a cloud-based platform, consider CrownCloud for $25/year or our Platinum sponsor, Vultr. Both providers host Rocky 8 and AlmaLinux 8 AMD64 images in addition to other operating systems so platform setup is quick.

    Once you have your platform up and running, login as root and issue the following commands to kick off the Incredible PBX 2022 install:

    cd /root
    yum -y install wget tar
    wget http://incrediblepbx.com/incrediblepbx2027.tar.gz
    tar zxvf incrediblepbx2027.tar.gz
    rm -f incrediblepbx2027.tar.gz
    ./IncrediblePBX2027.sh
    

    Once the Phase I install finishes, your server will reboot. Log back in as root and run the installer a second time:

    cd /root
    ./IncrediblePBX2027.sh
    

    When the install finishes, reboot your server and login again as root. Incredible PBX will run the Automatic Update Utility to bring your server up to current specs.

    If you chose to install AlmaLinux 8, issue the following command while still logged into the Linux CLI as root:

    sed -i 's|Rocky 8|AlmaLinux 8|' /usr/local/sbin/pbxstatus
    

    Just a few more preliminary steps, and you’ll be ready to go:

    1. Create a secure root password for your server by issuing the command: passwd

    2. Remove temporary user account: userdel -r temp-user-name

    3. Set up an admin password for browser access to the FreePBX GUI: /root/admin-pw-change

    4. Set up an admin password for Apache access to AsteriDex and Reminders: /root/apache-pw-change

    5. Set the correct time zone for your server: /root/timezone-setup

    6. If free -h shows no swapfile enabled, issue this command: /root/create-swapfile-DO

    As with all Incredible PBX builds, a preconfigured Linux firewall is included which blocks all access except from whitelisted IP addresses. You can whitelist additional IP addresses using the /root/add-ip script or /root/add-fqdn.

    You’re now ready to explore the Incredible PBX feature set using the tutorials available on the Incredible PBX Wiki.

    Configuring Gmail Smarthost for Incredible PBX 2027

    One piece you’ll need for many tasks in Incredible PBX 2027-R is a way to send emails from your server. The easiest method to accomplish this is to configure SendMail to use a Gmail SmartHost. We’ve included a script in the /root folder to make it painless. Simply run: /root/enable-gmail-smarthost-for-sendmail. When prompted, enter your Gmail account name (without @gmail.com) and then enter a Gmail Application Password, not your standard Gmail password. If you don’t have one, you can obtain one here. Once you’ve configured SendMail, try things out by sending an email to any valid email address:

    echo "test" | mail -s testmessage someone@somewhere.vom
    

    Upgrading to FreePBX 16 with Incredible PBX 2027-R

    By default, Incredible PBX 2027-R comes preconfigured with the tried-and-true FreePBX 15 GUI. But there’s a new kid on the block, FreePBX 16. If you’d like to take it for a spin, the upgrade is painless. Simply issue the following command while logged into your server as root: /root/upgrade-to-FreePBX16.

    blank

    Audio Issues with Incredible PBX 2027-R

    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. While you’re there, click on the chan/pjsip tab and set Allow Transports Reload to NO.

    Choosing SIP Providers for Incredible PBX 2027-R

    Incredible PBX 2027-R comes preconfigured with support for five SIP extensions and a dozen major SIP providers including Skyetel, VoIP.ms, V1VoIP, and Anveo Direct. We hope you’ll choose Skyetel not only because they financially support Nerd Vittles and our open source projects, but also because it is a clearly superior platform offering crystal-clear communications and triple-redundancy so you never miss a call. Skyetel also sets itself apart from the other providers in the support department. They actually respond to issues, and there’s never a charge. As the old saying goes, they may not be the cheapest, but you get what you pay for. Even without taking advantage of Nerd Vittles half-price offer on up to $500 of Skyetel services, they’re still dirt cheap compared to the Bell Sisters and cable companies. Skyetel is so sure you’ll love their service that they give you a $10 credit to kick the tires before you ever spend a dime. Traditional DIDs are $1 per month. Outbound conversational calls are $0.012 per minute. Incoming conversational calls are a penny a minute, and CallerID lookups are $0.004. You only pay for minutes you use. Once you’re satisfied with the service and fund your account, you can port in your existing DIDs at no cost for 60 days after signup. In short, you have nothing to lose by trying out the Skyetel service.

    Configuring Skyetel for Incredible PBX 2027-R

    If you’ve decided to go with Skyetel, here’s the drill. Sign up for Skyetel service and take advantage of the Nerd Vittles specials. 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 satisfied with the service, fund your account as desired, and Skyetel will match your deposit of up to $250 simply by opening another ticket. That gets you up to $500 of half-price calling. Credit is limited to one per person/company/address/location. Effective 10/1/2023, $25/month minimum spend required.

    Skyetel typically 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: my.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 sign up for service) 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 2027-R

    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 2027-R 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. In the Incredible PBX GUI, be sure to enable the VoIP.ms trunk.

    Configuring V1VoIP for Incredible PBX 2027-R

    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 Forwarding 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. In the Incredible PBX GUI, be sure to enable all of the V1VoIP trunks.

    Configuring Anveo Direct for Incredible PBX 2027-R

    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.

    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. Log into the GUI as admin using a web browser and edit the Anveo-Out trunk in Connectivity -> Trunks. Enable the Trunk. Then click on the custom-Settings tab and replace anveo-pin with your actual Dialing Prefix. Click Submit and Apply Config to complete the setup. In the Incredible PBX GUI, be sure to enable all of the remaining Anveo trunks.

    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 BulkVS for Incredible PBX 2027-R

    Unlike traditional telephony, you have nothing to lose by configuring multiple trunks with Incredible PBX. If you don’t make calls using one or more of the trunks, you pay nothing. Another more recent provider with excellent rates is BulkVS. We’ve covered the BulkVS setup in a separate tutorial if you’d like to give them a try.

    Configuring a Softphone for Incredible PBX 2027-R

    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. 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 VoIP-Info.org 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.

    blank

    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 Headlines
    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. For Android users, check out the terrific new VitalPBX Communicator. Works flawlessly with Incredible PBX.

    Introducing WebMin for Incredible PBX 2027-R

    WebMin is also installed and configured as part of the base install. The root password for access is the same as your Linux root password. We strongly recommend that you not use WebMin to make configuration changes to your server. You may inadvertently damage the operation of your PBX beyond repair. WebMin is an excellent tool to LOOK at how your server is configured. When used for that purpose, we highly recommend WebMin as a way to become familiar with your Linux configuration. To access WebMin, open a browser to http://server-ip-address:9001.

    Incredible PBX 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 as root with SSH or Putty. Here’s a quick summary of what each of the scripts does.

    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.

    admin-pw-change is used to set the admin password for access to the FreePBX/Incredible PBX web GUI using a browser pointed to the local IP address of your server.

    apache-pw-change is used to set the admin password for access to Apache/Incredible PBX apps including AsteriDex and Reminders. This provides a password layer of protection for access to these applications.

    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.

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

    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.

    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"

    Implementing Call By Name with 411

    Once you have an Outbound Trunk and Route configured, deploying Call by Name by dialing 411 is simple. The way it works is to pick up any phone connected to your PBX and dial 411. When prompted for the name of the person or company to call, say the name as you entered it in the AsteriDex directory, e.g. Delta Air Lines. The name will then be looked up to decipher the number of the person or company to call. Then the call will be placed using your default outbound route. To deploy Call By Name, simply follow the setup instructions in this Nerd Vittles tutorial.

    Keeping FreePBX Modules Current

    We strongly recommend that you periodically update all of your FreePBX modules to eliminate bugs and to reduce security vulnerabilities. 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
    /root/sig-fix
    

    Where To Go From Here

    Complete documentation on the ClearlyIP Devices Module is available here.

    Complete documentation on the FreePBX GPL Modules is available here.

    Complete documentation on the Incredible PBX additions is available here.

    An introduction to configuring extensions, trunks, and routes is available here.

    Originally published: Sunday, January 1, 2023


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

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

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

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

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



    blank


     

    Tired of Waiting on Hold? Here’s a Simple Asterisk Fix

    blank

    We’ve all placed calls to support lines that keep you waiting on hold for what seems like an eternity. While some companies now offer a call back service that holds your place in the queue, many still do not. One of our users recently asked whether there was a simple way with Asterisk® to preserve your place in line without tying up your phone waiting for the other party to finally pick up the call. Here’s what we came up with.

    The idea here is to use Unattended Transfer to transfer your end of the call to an extension that plays a message to dial zero to be reconnected with the calling party once your turn in the call queue finally arrives. To send your call to Pseudo-Hold, dial ##4653# (4653 spells HOLD). On Incredible PBX platforms, this will initiate an unattended transfer of your call and free up your phone.

    Now we only need a little Asterisk dialplan code plus a recorded message telling the other party to press 0 to be immediately reconnected with us when they come on the phone. When the other party presses 0, the dialplan will transfer the call back to the extension that transferred the call to what we are referring to as Pseudo-Hold.

    To begin, navigate to the custom folder in either /var/lib/asterisk/sounds/custom or /var/lib/asterisk/sounds/en/custom depending upon your version of Asterisk. Now download and install both the recording and the dialplan snippet:

    wget http://incrediblepbx.com/presszero.tar.gz
    tar zxvf presszero.tar.gz
    rm -f presszero.tar.gz
    sed -i '\:// BEGIN Zero:,\:// END Zero:d' /etc/asterisk/extensions_custom.conf
    sed -i '/\[from-internal-custom\]/r dialplan.txt' /etc/asterisk/extensions_custom.conf
    rm -f dialplan.txt
    asterisk -rx "dialplan reload"
    

    For those that are curious, the dialplan.txt snippet looks like this:

    ;# // BEGIN Zero Reconnect
    exten => 4653,1,Answer
    exten => 4653,2,NoOp(Dialed Peer Number: ${DIALEDPEERNUMBER})
    exten => 4653,3,Background(custom/PressZeroToReconnect)
    exten => 4653,4,WaitExten(2)
    exten => 0,1,Background(connecting)
    exten => 0,2,Dial(SIP/${DIALEDPEERNUMBER})
    exten => t,1,Goto(4653,3)
    exten => i,1,Goto(4653,3)
    exten => h,1,Hangup
    ;# // END Zero Reconnect
    

    To walk you through how it works, here we go. When you press ##4653#, the call is transferred to the 4653 extension shown above. In line 1, it answers the call. In line 2, it deciphers the extension from which the call was transferred. In line 3, we play the Press Zero to Reconnect message. In step 4, we wait for the other party to press 0. If they don’t within 2 seconds, we loop back up to line 3 and play the message over and over again. If the other party presses zero, we drop down to 0,1 which plays a message saying "Connecting." Then 0,2 sends the call back to the extension that originally transferred the call to 4653.

    Originally published: Monday, December 12, 2022


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

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

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

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

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



    blank


     

    Sangoma Beefs Up FreePBX Security… For a Price

    blank

    We’ve lost count of the number of FreePBX® security breaches that were directly attributable to vulnerabilities in the FreePBX web interface. Suffice it to say, it was the reason that PBX in a Flash and Incredible PBX instituted the Travelin’ Man 3 firewall a decade ago hiding the FreePBX GUI from everyone except those on a whitelist controlled by the PBX administrator.

    More than a decade later, Sangoma® finally introduces Multi-Factor Authentication (MFA) with two major gotchas. First, you have to pay for it. And second, it’s only available using Sangoma’s proprietary FreePBX platform rather than the open source release. There are so many things wrong with this greedy approach that we really don’t know where to begin.

    For openers, offering a commercial MFA solution for a supposedly open source product is fundamentally wrong. Think of it this way. You only offer a safe version of your free product if users pay for it. Next, it demonstrates a fundamental misunderstanding of why two-factor authentication (2FA) and MFA have become ubiquitous. These tools provide an extra layer of security where users have no control over the underlying code of the application. For example, you don’t own PayPal or your bank’s platform so 2FA and MFA provide an extra layer of security for customers attempting to log into their accounts, to prove they are who they say they are using a previously registered cellphone or email account.

    Contrast this scenario to those deploying FreePBX who have complete control of the underlying operating system and the FreePBX code itself. MFA doesn’t keep a disgruntled employee from gaining access to a server using an administrator password. MFA also provides zero protection against the myriad of security holes for which FreePBX has become infamous. In short, 2FA and MFA have a single task: allowing users to prove who they say they are by confirming their identity through an external source they control.

    We believe Incredible PBX has always offered a better security solution for those that control their own PBX platforms. First, the Travelin’ Man 3 firewall lets you define exactly who can see your FreePBX GUI on the public Internet. If a user isn’t in the TM3 whitelist, they not only can’t login to the FreePBX GUI, they can’t even see it. Second, for the truly paranoid, you can add a third layer of security to the TM3 firewall and FreePBX authentication. Apache offers an additional login threshold for those seeking web access to any application over which the administrator has control. With Incredible PBX, it’s as simple as adding an additional freepbx.conf file in /etc/pbx/httpdconf and restarting Apache:

    #Password protect /var/www/html/admin
    <directory /var/www/html/admin>
    AuthType Basic
    AuthName "Restricted Area"
    AuthUserFile /etc/pbx/wwwpasswd
    Require valid-user
    </directory>
    

    An administrator then has control over server access with three layers of security: (1) TM3 firewall access using the add-ip and add-fqdn scripts in /root, (2) Apache access using the apache-pw-change script, and (3) FreePBX GUI access using the admin-pw-change script.

    We believe this three-tier, administrator-managed security model offers better and safer protection not only for every user of the FreePBX platform but also for the platform itself. Most importantly, it is and always has been FREE! Start by choosing an Incredible PBX platform that best meets your requirements by visiting the Incredible PBX Wiki.

    Originally published: Monday, December 5, 2022


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

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

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

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

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



    blank


     

    Adiós Twitter: Introducing Mastodon for the VoIP Community

    blank

    #FollowFriday seemed an appropriate day to introduce Mastodon, our decentralized solution to the Twitter meltdown. If you’ve been living under a rock for the past couple weeks, here’s a quick snapshot. Elon Musk buys Twitter for $44 billion. Elon fires half of existing Twitter staff. Elon bans Twitter employees from working at home. Elon, the Free Speech champion, fires Twitter employees that criticize his misleading tweeets. Elon gives remaining Twitter employees an ultimatum to sign a pledge to work under grueling working conditions or leave with three months of severance pay. 75% of remaining employees refuse to sign the pledge, and Elon locks the doors.

    blank

    Meanwhile, the Mastodon alternative explodes to over 7 million users in a single week. Today we want to introduce you to Mastodon and encourage each of you to take it for a test drive. It’s free. It’s decentralized. And it’s incredibly easy to take advantage of the independence that the Mastodon social media platform offers without worrying about a billionaire ever putting the platform in jeopardy. A week ago we couldn’t spell Mastodon, and today we have a thriving, independent Mastodon platform that offers you almost everything that it took many of us years to build on Twitter. You can sign up for a free account here. Then have a look at our Public (a.k.a. Federated) platform here.


    The beauty of the Mastodon design is you get the best of both worlds. You can enjoy the content of everyone that anyone on your Mastodon instance chooses to follow while also participating on a local platform that is dedicated to the interests of the Incredible PBX and VoIP community. There is no other VoIP, Asterisk, or FreePBX platform for Mastodon today!

    blank

    Getting Started. Once you’ve signed up for an account, the first thing you will want to do is to Enable the Advanced Web Interface in Settings. This provides simultaneous views of both your Local community and the Federated community through the web interface. The Federated view already is populated with a feature-rich content collection much like what it took many of us years to create as Twitter users. We should note that Mastodon is a very mature platform offering web access as well as a number of excellent apps for iPhone and Android users. We’ve also started a thread on VoIP-Info.org forum with numerous tips and tricks to get you up to speed on Mastodon. Come join the party!

    Here’s our favorite Getting Started with Mastodon article. Start here.

    Originally published: Friday, November 18, 2022


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

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

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

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

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



    blank