Home » Posts tagged 'iax'
Tag Archives: iax
5 Minute Wonder: Incredible PBX 2022 in Cloud for $25/Yr.
We’ve been building turnkey Incredible PBX® servers for virtual machine platforms for many years. Because the servers are built from images, typical install times have been 5 minutes or less with Proxmox, VirtualBox, and VMware ESXi. But the missing piece has been a similar image install on a true cloud-based platform. This limitation was primarily due to the fact that we don’t own or control the available cloud platforms which typically limit image installs to operating systems such as CentOS, Debian, Ubuntu, and Windows. However, CrownCloud was good enough to add our Incredible PBX 2021 Debian image and the Incredible PBX 2020 CentOS 7 image to their portfolio. And, today, we have more good news. CrownCloud has now added the Incredible PBX 2022 image for Rocky 8 as well.
These 5-minute turnkey installs of Incredible PBX 2020 for CentOS 7, Incredible PBX 2021 for Debian 10, and now Incredible PBX 2022 for Rocky 8 are being offered at the jaw-dropping price of $25 a year. The monthly cost is cheaper than a cup of coffee at Starbucks, and you’ll have a fully-functioning, production-ready KVM platform including a free snapshot with 1GB RAM, 20GB SSD storage, and 1TB of monthly bandwidth in your choice of server locations including Los Angeles and Atlanta in the United States as well as Germany and the Netherlands in Europe. And, unlike all of the other Asterisk® aggregations, Incredible PBX still provides a source code-based platform that can be tailored to meet any special requirements your organization may need.
We don’t make a nickel on these offerings so consider this our special thanks to all of our loyal fans.
Here are the links to sign up for the service and take advantage of these Incredible PBX deals:
- Los Angeles: https://crowncloud.net/clients/cart.php?a=add&pid=382
- Atlanta: https://crowncloud.net/clients/cart.php?a=add&pid=487
- Germany: https://crowncloud.net/clients/cart.php?a=add&pid=399
- Netherlands: https://crowncloud.net/clients/cart.php?a=add&pid=400
When you sign up for the service, choose any traditional OS for the base install. Once it’s on line, go into CrownPanel and choose Reinstall. Then select Incredible PBX 2022 for Rocky from the Application Images pulldown as your new install. In less than 5 minutes, your server will be ready for you to login. Be sure to use SSH and NOT the VNC utility included in CrownPanel. This will assure that your desktop machine’s IP address gets whitelisted in the Incredible PBX firewall. Otherwise, you won’t be able to SSH into your server from your desktop. Once you login, the Incredible PBX configurator will prompt you to set passwords for root login, admin login to FreePBX, and admin login credentials for Apache to access AsteriDex and Reminders. Add a trunk provider (Skyetel is preconfigured and enabled by default) and a softphone or Incredible PBX SIP phone, and your PBX is fully operational. Check out the CrownCloud Wiki.
Planning Ahead for That Rainy Day
One of our favorite features of Crown Cloud is the free snapshot (a.k.a. backup) at no additional charge. We recommend you take snapshots regularly as you make major changes in your server’s configuration. In this way, if something comes unglued, you can easily restore the snapshot and never miss a beat. You’ll find the Remote Snapshot option in your CrownPanel menu.
Configuring Skyetel for Incredible PBX
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 require SIP registrations to make connections to your PBX. Instead, Skyetel can use 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:
- 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. Everything is already in place on the Incredible PBX 2022 side of the house so you can start making and receiving calls immediately.
Configuring ClearlyIP SIP Trunking
For the tightest integration with FreePBX, no SIP provider holds a candle to Incredible PBX SIP Trunking with ClearlyIP. The reason is fairly obvious. The ClearlyIP folks were the original developers of FreePBX. In addition to all of the traditional SIP trunking services, you also get CNAM support and state-of-the-art E911 service which can be deployed in full compliance with Kari’s Law and the Ray Baum Act. If you’re a system integrator and don’t know about your financial liability for failure to comply with the new rules, it’s time to do some reading.
Configuring VoIP.ms for Incredible PBX
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 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 Anveo Direct for Incredible PBX
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 a SIP Phone for Incredible PBX 2022
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 is 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. We obviously recommend the Incredible PBX IP phones from ClearlyIP which are the most versatile.
If you’ve been keeping up with recent Nerd Vittles developments, then you already know that we have just introduced a new Cellular Phone which connects directly to your PBX and serves as a perfect remote extension and traveling companion. You can read all about it here.
Software devices such as the YateClient softphone are another option for desktop machines. 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 plus :5061 for the PJsip 701 extension, 701 for your Username, and whatever Password was assigned to the extension when you installed Incredible PBX. Click OK to save your entries.
Once you are registered to extension 701, close the Account window. Then click on YATE’s Telephony Tab and place some test calls to the numerous apps that are preconfigured on Incredible PBX. Dial a few of these to get started:
DEMO - Apps Demo 123 - Reminders 947 - Weather by ZIP Code 951 - Yahoo News TODAY - Today in History LENNY - The Telemarketer's Worst Nightmare
If you are a Mac user, another great no-frills softphone is Telephone. Just download and install it from the Mac App Store. For Android users, check out the terrific new VitalPBX Communicator. Works flawlessly with Incredible PBX.
For smartphone solutions, visit the Incredible PBX Wiki for our softphone recommendations.
Configuring SendMail with Incredible PBX
In order to receive voicemails by email delivery, outbound mail functionality from your server obviously is required. We strongly recommend configuring SendMail using either your ISP or Gmail as an SMTP Relay Host. NOTE: If you are using a Gmail account with 2-step verification enabled, you MUST use a Gmail App Key instead of your Gmail account password. You also must enable Less Secure Apps access to the Gmail account.
Configuring a Gmail account with Incredible PBX 2022 is as simple as entering your Gmail credentials. Just run this script: /root/enable-gmail-smarthost-for-sendmail
.
Here are the steps using a Gmail account with Incredible PBX 2020:
cd /etc/mail yum -y install sendmail-cf hostname -f > genericsdomain touch genericstable cd /usr/bin rm -f makemap ln -s ../sbin/makemap.sendmail makemap cd /etc/mail makemap -r hash genericstable.db < genericstable mv sendmail.mc sendmail.mc.original wget http://incrediblepbx.com/sendmail.mc.gmail cp sendmail.mc.gmail sendmail.mc mkdir -p auth chmod 700 auth cd auth echo AuthInfo:smtp.gmail.com \\"U:smmsp\\" \\"I:user_id\\" \\"P:password\\" \\"M:PLAIN\\" > client-info echo AuthInfo:smtp.gmail.com:587 \\"U:smmsp\\" \\"I:user_id\\" \\"P:password\\" \\"M:PLAIN\\" >> client-info echo AuthInfo:smtp.gmail.com:465 \\"U:smmsp\\" \\"I:user_id\\" \\"P:password\\" \\"M:PLAIN\\" >> client-info # Stop here and edit client-info (nano -w client-info) in all three lines. # Replace user_id with your gMail account name without @gmail.com # Replace password with your real gMail password OR # use your Gmail App Key if 2-step verification is enabled # Be sure to replace the double-quotes shown above if they don't appear in the file!!! # Save your changes (Ctrl-X, Y, then Enter) chmod 600 client-info makemap -r hash client-info.db < client-info cd .. make systemctl restart sendmail
Even though these servers are hosted in the cloud, we still recommend using a SmartHost to minimize email delivery problems.
Test outbound mail using this command with your actual email address:
echo "test" | mail -s testmessage yourname@youremaildomain.com
On some implementations, you may notice in the FreePBX GUI that the mail queue has failed. Here's the fix:
chmod 777 /var/spool/mqueue service sendmail restart
Once you are sure your emails are being delivered reliably, here's a sample GUI voicemail configuration for an extension:
Be advised that Google has hinted that the Gmail Smarthost landscape may be changing. See our recent article for a simple SmartHost alternative.
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 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 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 702-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 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. 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.
ssh-regen.sh allows you to reset the SSH keys for your server for added security.
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"
Keeping FreePBX 15 Modules Current
We strongly recommend that you periodically update all of your FreePBX modules to eliminate bugs and to reduce security vulnerabilities. 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.
Free voicemail transcription with email delivery. Tutorial available here.
Setting Up a VPN for Your PBX: OpenVPN or NeoRouter
Originally published: Monday, March 28, 2022
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
A New Day: Introducing Incredible PBX 2021 for Ubuntu 20.04
We’ve completed the rollout of Incredible PBX 2021 for Debian 10 and, thanks to the terrific work of @jaminmc, today we’re pleased to introduce Incredible PBX 2021 for Ubuntu 20.04 LTS with its ten-year life cycle.
In addition to @jaminmc, we also want to offer our special thanks to the many talented individuals on the VoIP-Info.org Forum who work through the growing pains of these new releases to bring you open source products at zero cost. Come join the party!
If you’re using on-premise hardware, begin by downloading the ISO image of Ubuntu 20.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 20.04, 64-bit instance in your favorite city. Want some cheaper KVM cloud alternatives? Visit the Incredible PBX Wiki.
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 2021 build. Otherwise, all inbound calls will fail.
Installing Incredible PBX 2021 on Ubuntu 20.04 Server
Once your Ubuntu 20.04 platform is up and running, login as root using SSH or Putty. If you wish to use the default Asterisk 18 platform, issue the commands below to kick off the install. If you’d prefer to stick with Asterisk 16 for the time being and perhaps upgrade to Asterisk 18 later with the included upgrade script, then edit the script once you download it and change 18 to 16 in line 34 of the script before executing it.
wget http://incrediblepbx.com/IncrediblePBX2021-U.sh chmod +x IncrediblePBX2021-U.sh ./IncrediblePBX2021-U.sh
At about 5 minutes into the install procedure, you’ll be prompted for your telephone country code. It’s 1 for Canada and the United States. Once the installation completes, reboot and you should be good to go.
Next Steps with Incredible PBX 2021
Before you can manage your PBX through a web browser, you first will need to set the admin passwords for FreePBX, Apache web apps such as Reminders and AsteriDex, and AvantFax (if you are using Incredible Fax). These all can be set by logging into your server as root and issuing the following commands: admin-pw-change, apache-pw-change, and avantfax-pw-change. The AvantFax password can also be reset with a browser by first logging in as admin with a password of password.
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, if you have turned on two-factor authentication for your Gmail account, 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 password in hand, log into your server as root and run: /root/enable-gmail-smarthost-for-sendmail.
If your Incredible PBX 2021 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.
If you want to send and receive faxes with Incredible PBX 2021, download the new Incredible Fax 2021 for Ubuntu script, make it executable (chmod +x incred*
), and then run the following script while logged into your server as root: /root/incrediblefax2021-ubuntu20.04.sh. When prompted, accept all the defaults. Once the HylaFax and AvantFax components are installed, reboot your server. To send faxes, click on the AvantFax tab in the FreePBX GUI and enter your login credentials (default: admin/password). To receive incoming faxes once you have configured a trunk and DID for your PBX, login to the FreePBX GUI as admin. Navigate to Connectivity -> Inbound Routes. For each of your DIDs on which you wish to receive faxes, select the inbound route and click the Fax tab. Review the Default Inbound Route Fax settings for proper setup.
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 2021
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 2021:
- 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 2021
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 2021 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 2021
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 2021
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.
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 five 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.
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 2021
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.
Security Considerations with Incredible PBX 2021
Incredible PBX 2021 includes a rock-solid firewall that limits access to preferred providers and individuals whose IP addresses you have whitelisted. Unfortunately, this may not insulate your server from FreePBX 15 irregularities if, in fact, Sangoma’s signing key was compromised in the October 2020 Ransomware Attack. Sangoma either doesn’t know or isn’t telling. Keep in mind that Sangoma didn’t mention the October breach either until someone else exposed it. Sangoma’s latest press release is available here.
The good news is Incredible PBX 2020 and 2021 platforms include a unique ClearlyIP feature that lets us manage which modules and versions can be installed. It works exactly like what ClearlyIP has documented in their must-read blog post, and we’ve built a locked version that rolls back all of the modules to dates before the Sangoma breach. The good news is, with Incredible PBX, you don’t have to jump through all the hoops covered in the ClearlyIP article to fully insulate your server from the Ransomware breach. We’ve done the work for you.
For those with mission-critical platforms, we’d recommend immediate implementation of what follows. For everyone else, it’s your choice whether to wait and see if there is a breach of the signing certificate with malicious modules. If you opt to wait and see, MAKE FREQUENT BACKUPS.
Here’s how to roll back all of your modules to dates before the breach. Login to the FreePBX GUI as admin and navigate to Settings > Advanced Settings. Drop down to the Lock Version field and change 15.19.11.001 to 15.19.11.003. Save your changes and reload your dialplan. Then use Module Admin to roll back any installed modules that are newer than the safe versions shown.
Our extra special thanks goes to Tony Lewis and the ClearlyIP team for providing this invaluable resource. Somehow we knew it would come in handy sooner or later. Unfortunately, that day has come.
Adding Incredible PBX 2021 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 2021 server to an existing OpenVPN network, begin by creating an incrediblepbx2021.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 2021 server. Next, issue the following commands to put the remaining pieces in place:
cp -p /root/openvpn-start /etc/. echo "[Unit] Description=openvpn2021 ConditionPathExists=/etc/openvpn-start After=rclocal.service [Service] Type=forking ExecStart=/etc/openvpn-start /etc/incrediblepbx2021.ovpn TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes PermissionsStartOnly=true SysVStartPriority=99 [Install] WantedBy=multi-user.target" > /etc/systemd/system/openvpn2021.service
Finally, enable the new openvpn2021.service and reboot your server. The OpenVPN IP address should now appear on the LAN line in pbxstatus:
systemctl enable openvpn2021.service reboot
Incredible PBX 2021 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 2021 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.
avantfax-email-change is used to change the destination email address for incoming faxes.
avantfax-pw-change is used to change your admin password for the AvantFax web console.
iaxmodem-restart is used to restart the modems used to send and deliver faxes. The pbxstatus display will tell you whether the IAXmodems are down.
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 2021.
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 2021 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 2021. 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.
switch-to-php5.6 is a script to disable PHP 7.3 and set PHP 5.6 as the default version for your PBX. PHP 5.6 is required to use AvantFax. It is the default configuration for Incredible PBX 2021. The current default PHP version is displayed in the Apache listing of pbxstatus.
switch-to-php7.3 is a script to disable PHP 5.6 and set PHP 7.3 as the default version for your PBX. You cannot use AvantFax when PHP 7.3 is the default.
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.
upgrade-asterisk16 is a script that runs on Asterisk 16 platforms to upgrade your PBX to the latest release of Asterisk 16.
upgrade-asterisk18 is a script that runs on both Asterisk 16 and 18 platforms to upgrade your PBX to the latest release of Asterisk 18.
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"
Keeping FreePBX 15 Modules Current
We strongly recommend that you periodically update all of your FreePBX modules to eliminate bugs and to reduce security vulnerabilities. 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: Tuesday, January 26, 2021
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
5 Minutes to Paradise: Incredible PBX in the Cloud for $25/Yr.
We’ve been building turnkey Incredible PBX® servers for virtual machine platforms for many years. Because the servers are built from images, typical install times have been 5 minutes or less with Proxmox, VirtualBox, and VMware ESXi. But the missing piece has always been a similar image install on a true cloud-based platform. This limitation was primarily due to the fact that we don’t own or control the available cloud platforms which typically limit image installs to operating systems such as CentOS, Debian, Ubuntu, and Windows.
Today we have more very good news. Our favorite low-cost hosting provider, Crown Cloud,1 has agreed to offer 5-minute turnkey installs of Incredible PBX 2020 for CentOS and Incredible PBX 2021 for Debian at a jaw-dropping $25 a year. You’ll have a fully-functioning, production-ready KVM platform including a free snapshot with 1GB RAM, 20GB SSD storage, and 1TB of monthly bandwidth in your choice of server locations including Los Angeles and Atlanta in the United States as well as Germany and the Netherlands in Europe. And, unlike all of the other Asterisk® aggregations, Incredible PBX still provides a source code-based platform that can be tailored to meet any special requirements you may need.
We don’t make a nickel on this deal so consider this our special thanks to all of our loyal fans.
Here are the links to sign up for the service and take advantage of these Incredible PBX deals:
- Los Angeles: https://crowncloud.net/clients/cart.php?a=add&pid=382
- Atlanta: https://crowncloud.net/clients/cart.php?a=add&pid=487
- Germany: https://crowncloud.net/clients/cart.php?a=add&pid=399
- Netherlands: https://crowncloud.net/clients/cart.php?a=add&pid=400
UPDATE: 2GB/40GB KVM plans have now been released.
- LA-2G-40G-SSD: https://crowncloud.net/clients/cart.php?a=add&pid=666
- ATL-2G-40G-SSD: https://crowncloud.net/clients/cart.php?a=add&pid=667
- DE-2G-40G-SSD: https://crowncloud.net/clients/cart.php?a=add&pid=668
- NL-2G-40G-SSD: https://crowncloud.net/clients/cart.php?a=add&pid=669
When you sign up for the service, choose any operating system as your default install. Then open a support ticket and request either the Incredible PBX 2020 for CentOS image or the Incredible PBX 2021 for Debian image be added into your template list of available operating systems. Once your server comes on line, open your CrownPanel and choose Reinstall and select Incredible PBX from either the available CentOS or Debian options. In less than 5 minutes, your server will be ready for you to login. Be sure to use SSH and NOT the VNC utility included in CrownPanel. This will assure that your desktop machine’s IP address gets whitelisted in the Incredible PBX firewall. Once you login, the Incredible PBX configurator will prompt you to set passwords for root login, admin login to FreePBX, and admin login credentials for Apache to access AsteriDex and Reminders. After a reboot to initialize your SSH keys, you’ll be ready to go. Add a trunk provider and a softphone, or Incredible PBX SIP phone, or GTI cell phone, and your PBX is fully operational. Check out the CrownCloud Wiki.
Planning Ahead for That Rainy Day
One of our favorite features of Crown Cloud is the free snapshot (a.k.a. backup) at no additional charge. We recommend you take snapshots regularly as you make major changes in your server’s configuration. In this way, if something comes unglued, you can easily restore the snapshot and never miss a beat. You’ll find the Remote Snapshot option in your CrownPanel menu.
Configuring Skyetel for Incredible PBX
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 require SIP registrations to make connections to your PBX. Instead, Skyetel can use 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:
- 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 ClearlyIP SIP Trunking
For the tightest integration with FreePBX, no SIP provider holds a candle to Incredible PBX SIP Trunking with ClearlyIP. The reason is fairly obvious. The ClearlyIP folks were the original developers of FreePBX. In addition to all of the traditional SIP trunking services, you also get CNAM support and state-of-the-art E911 service which can be deployed in full compliance with Kari’s Law and the Ray Baum Act. If you’re a system integrator and don’t know about your financial liability for failure to comply with the new rules, it’s time to do some reading.
Configuring VoIP.ms for Incredible PBX
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 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
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
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 a SIP Phone 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 is 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. We obviously recommend the Incredible PBX IP phones from ClearlyIP which are the most versatile.
If you’ve been keeping up with recent Nerd Vittles developments, then you already know that we have just introduced a new Cellular Phone which connects directly to your PBX and serves as a perfect remote extension and traveling companion. You can read all about it here.
Software devices such as the YateClient softphone are another option for desktop machines. 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.
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.
For smartphone solutions, visit the Incredible PBX Wiki for our softphone recommendations.
Configuring SendMail with Incredible PBX
In order to receive voicemails by email delivery, outbound mail functionality from your server obviously is required. We strongly recommend configuring SendMail using either your ISP or Gmail as an SMTP Relay Host. NOTE: If you are using a Gmail account with 2-step verification enabled, you MUST use a Gmail App Key instead of your Gmail account password. You also must enable Less Secure Apps access to the Gmail account.
Configuring a Gmail account with Incredible PBX 2021 is as simple as entering your Gmail credentials. Just run this script: /root/enable-gmail-smarthost-for-sendmail
.
Here are the steps using a Gmail account with Incredible PBX 2020:
cd /etc/mail yum -y install sendmail-cf hostname -f > genericsdomain touch genericstable cd /usr/bin rm -f makemap ln -s ../sbin/makemap.sendmail makemap cd /etc/mail makemap -r hash genericstable.db < genericstable mv sendmail.mc sendmail.mc.original wget http://incrediblepbx.com/sendmail.mc.gmail cp sendmail.mc.gmail sendmail.mc mkdir -p auth chmod 700 auth cd auth echo AuthInfo:smtp.gmail.com \\"U:smmsp\\" \\"I:user_id\\" \\"P:password\\" \\"M:PLAIN\\" > client-info echo AuthInfo:smtp.gmail.com:587 \\"U:smmsp\\" \\"I:user_id\\" \\"P:password\\" \\"M:PLAIN\\" >> client-info echo AuthInfo:smtp.gmail.com:465 \\"U:smmsp\\" \\"I:user_id\\" \\"P:password\\" \\"M:PLAIN\\" >> client-info # Stop here and edit client-info (nano -w client-info) in all three lines. # Replace user_id with your gMail account name without @gmail.com # Replace password with your real gMail password OR # use your Gmail App Key if 2-step verification is enabled # Be sure to replace the double-quotes shown above if they don't appear in the file!!! # Save your changes (Ctrl-X, Y, then Enter) chmod 600 client-info makemap -r hash client-info.db < client-info cd .. make systemctl restart sendmail
Even though these servers are hosted in the cloud, we still recommend using a SmartHost to minimize email delivery problems.
Test outbound mail using this command with your actual email address:
echo "test" | mail -s testmessage yourname@youremaildomain.com
On some implementations, you may notice in the FreePBX GUI that the mail queue has failed. Here's the fix:
chmod 777 /var/spool/mqueue service sendmail restart
Once you are sure your emails are being delivered reliably, here's a sample GUI voicemail configuration for an extension:
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 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 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 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. 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-asterisk16 is a script that updates your server to the very latest release of Asterisk 16. You can run it periodically to keep your server up to date with the latest and greatest features.
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"
Getting Started with Incredible Fax
Believe it or not, there still are lots of folks that use faxes in their everyday lives. If you're one of them, Incredible PBX has your back. With Incredible PBX 2021, Incredible Fax is already installed. Simply set your email address for delivery of your faxes in PDF format, and you're all set: /root/avantfax-email-change
. With Incredible PBX 2020, begin by logging into your server as root and running incrediblefax2020.sh to install HylaFax and AvantFax on your server. You'll be prompted a dozen or more times for information. Answer no to the secure fax question. For the rest of the prompts, just press ENTER to accept the default entries. Rebooting your server is required when the install finishes.
Once your server is back on line, there will be a new AvantFax tab in the GUI. The default credentials are admin:password. After you enter the username and password, you will be prompted to change your admin password. The old password is still password. Then enter your desired password twice and save the setting. The AvantFax dashboard then will display. If nothing has come unglued, you should see four green Idle icons:
You can Send Faxes from within AvantFax by choosing the Send Fax tab, or you can use one of many HylaFax clients. Google is your friend.
Keeping FreePBX 15 Modules Current
We strongly recommend that you periodically update all of your FreePBX modules to eliminate bugs and to reduce security vulnerabilities. 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
Where To Go From Here
For a limited time, check out Lenny on our Atlanta demo server by dialing 404-999-0010.
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.
Free voicemail transcription with email delivery. Tutorial available here.
Setting Up a VPN for Your PBX: OpenVPN or NeoRouter
Originally published: Monday, July 6, 2020 Updated: Saturday, January 16, 2021
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
- It has been reported that Norton AntiVirus currently gives a security alert on the Crown Cloud web site. Don't be alarmed. It's a false positive. [↩]
Harnessing the Cloud to Start An Incredible PBX Business
If you’ve ever wanted to start your own VoIP business and earn some big bucks through consulting and hosting cloud-based PBXs, now’s your chance. One of the requests we often receive from those that deploy Incredible PBX 2020® for a living is a quicker way to produce new Incredible PBX servers on cloud platforms such as Vultr and Digital Ocean while also preserving Incredible PBX’s unique ability to upgrade source components for Asterisk® and FreePBX®. For small businesses, these cloud providers offer a perfect $5 a month platform for Incredible PBX. You can mark it up to $10 or $15 a month and make a handsome 100% to 200% profit without lifting a finger as a VoIP consultant. And Vultr and Digital Ocean will spot you a $100 credit to get the ball rolling.
Today’s solution was especially designed for those that would like to host virtual machines for customers in your own cloud account. It would work equally well for anyone wanting a quick way to create multiple Incredible PBX platforms in 5 minutes for friends and neighbors.
To begin, you’ll need to create a master image of Incredible PBX 2020 on the cloud platform of your choice using the recommended $5/month platform with CentOS 7. The July 1, 2020 or later tarball of Incredible PBX 2020 is required. Here are the Five Easy Steps:
1. Create the base Incredible PBX 2020 platform in the traditional way:
# create a secure root password to hand out to future customers passwd yum -y update yum -y install net-tools nano wget tar cd /root wget http://incrediblepbx.com/incrediblepbx2020.1.tar.gz tar zxvf incrediblepbx2020.1.tar.gz rm -f incrediblepbx2020.1.tar.gz # to add swap file on non-OpenVZ cloud platforms with no swap file ./create-swapfile-DO # kick off Phase I install ./IncrediblePBX2020.sh # after reboot, kick off Phase II install ./IncrediblePBX2020.sh # set desired timezone ./timezone-setup # optionally install Incredible Fax 2020 ./incrediblefax2020.sh
2. Once you complete the Phase I and Phase II installs and optionally install Incredible Fax, log out of your server and log back in so that the Automatic Update Utility can do its thing.
3. Next, we need to configure your master image so that it can be replicated using a simple image snapshot. A snapshot is free on the Vultr platform and will cost you about $5 a month with Digital Ocean. While still logged into your server as root, issue the following commands and then shut down your server gracefully:
cd /etc/sysconfig cp -p rules.v4.tm3 iptables sed -i 's|#-A|-A|' iptables touch /etc/update_hostconfig touch /etc/update_serverconfig halt
4. Once your server has halted, create a snapshot image of the server from Vultr or Digital Ocean dashboard. You do NOT need to preserve your Master VM once the snapshot is created.
5. Create a new virtual machine but, instead of choosing CentOS 7 as the base platform, choose the snapshot image built in the previous step. Once the 5-minute install completes, it’s ready for handover to a new customer by providing the root password from the Master Image together with the IP address of the new virtual machine.
When the new customer logs in via SSH using the root password from the Master Image, the Incredible PBX reconfiguration script will complete the setup of the new platform in a couple minutes prompting the user to change all of the passwords, resetting the ports for PortKnocker, and reconfiguring the firewall by whitelisting the customer’s IP addresses. If the build includes Incredible Fax, the customer should be instructed to change the AvantFax password. Run: /root/avantfax-pw-change. If the customer is in a different time zone, the customer should run /root/timezone-setup. Whooda thunk making money could be this easy.
The real beauty of this design is that you keep control of all the virtual machines you create. If a customer fails to pay, it’s easy to either shut down their VM or even delete it. You also can schedule automatic backups for the customer while recovering the extra $1 per month charge from the provider. In addition, if the customer ever needs hands-on support, you can use the Console link in the Dashboard without the need to whitelist your IP address. The customer still retains full control over the root password which would have to be provided.
Originally published: Monday, July 27, 2020
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
A New World: Adding Cellular Extensions to Incredible PBX
Over the past few weeks, we’ve introduced a revolutionary new technology for the Asterisk® and FreePBX® community by marrying Incredible PBX® with GTI Global cellular extensions. For $20 to $35 a month, you get a new SIM card for your unlocked GSM cellphone that links all four U.S. carrier networks to a PJsip extension on your PBX. Incoming calls ring on both the cellphone and any other SIP phone connected to the same PJsip extension. Outbound calls from the cellphone get processed just like every other outbound call on your PBX. All the other bells and whistles that make Asterisk and FreePBX a one-of-a-kind platform work exactly the same way on the smartphone as they do with every other PBX extension. And your cell phone is no longer tied to a single carrier’s network. Based upon your current U.S. location, the GTI SIM finds the strongest signal by automatically selecting from the cell towers of the four major U.S. carriers: AT&T, Verizon, T-Mobile, and Sprint. And last week, we added additional icing to the cake by introducing the perfect cloud platform for Incredible PBX in either Atlanta or Los Angeles for a jaw-dropping $25 a year with a 5-minute install.
Today we want to document the setup procedure to put all the cellular pieces in place to add a GTI-enabled cellphone to your Incredible PBX platform. In a nutshell, there are preliminary configuration steps on your PBX so that GTI can verify that your PBX can be successfully integrated into their cellular network. Next, you’ll need to sign up for service with GTI Global and provide some basic information about your server configuration. Once you receive credentials from GTI Global, you’ll need to complete some additional setup steps on your PBX including creation of a GTI trunk as well as configuring inbound and outbound routes to support your cellphone calls. You’ll also need to add exceptions for each GTI DID to the [from-sip-external] context. Finally, await delivery of your SIM card and then decide how you will deploy the GTI SIM on a GSM cellphone of your choice.
GTI Global provides promotional consideration to help defray costs of our Asterisk projects.
Preliminary Configuration Steps with Incredible PBX
To connect a GTI-enabled cellphone to Incredible PBX, here are the preliminary steps:
- Incredible PBX must have a static IP address on the public Internet.
- Whitelist a number of GTI IP addresses in your firewall.
- Create a PJsip extension for each GTI-enabled cellphone.
- Create a Preliminary Chan_SIP Trunk for Registration to GTI.
These whitelist entries should be added to iptables-custom in the /usr/local/sbin directory:
/usr/sbin/iptables -I INPUT -p udp -m udp -s 99.198.122.166 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 99.198.110.51 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 96.127.174.38 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 37.18.129.170 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 37.18.129.171 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 37.18.129.172 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 37.18.129.173 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s someid.mvnoserver.com --dport 5060:5069 -j ACCEPT
For each GTI cellphone you plan to deploy, add a PJsip extension with a very secure password:
Extension: 484xx1 Display Name: 484xx1 GTI Secret: yourSuperSecretpassword Advanced -> Max Contacts: 3
Also make note of the SIP port that is configured for your PJsip extensions, typically 5061. It’s shown as Port to Listen On under Settings -> SIP Settings -> PJsip Settings in FreePBX GUI.
Create a preliminary Chan_SIP Trunk for registration to GTI leaving the CallerID field empty:
Trunk Name: trunk4321 PEER Details: username=trunk4321 type=friend secret=yourBIGpassword host=xxxxxx.mvnoserver.com disallow=all allow=ulaw canreinvite=no dtmfmode=rfc2833 port=5062 Register string: trunk4321:yourBIGpassword@xxxxxx.mvnoserver.com:5062
Registration Information to be Provided to GTI
As part of your GTI setup procedure, in addition to your name and a reachable cellphone number, you will be prompted for the following information. If any of it is missing, open a support ticket and provide it. NOTE: you must register through our portal, or your request will be denied unless you pay the standard $250 setup fee which is waived for our users. All GTI accounts through Nerd Vittles include one free SIM card, a free trunk account to process calls to and from your GTI pjSIP extension(s), and a free DID for each SIM card. Unlimited calling and unlimited SMS/MMS messaging is included on all plans. Pricing difference is for monthly data allocations: $20 (no data), $25 (2GB), and $35 (4GB). You must pay for the first month’s service BEFORE your SIM card will be shipped.
- PBX Public IP Address and Trunk Listening Port (5062)
- Extension IP address (PBX public IP address)
- pjSIP Extension Number
- pjSIP Extension Secret
- pjSIP Extension Port (5061)
- Service Desired: $20, $25, or $35 monthly plan
- Area Code Desired for DID
- Business Name and Shipping Address for Your SIM
Configuring Your PBX with GTI Credentials
Once GTI has verified that they can communicate with your PBX, you will be provided the credentials for your GTI Trunk. Simply edit the trunk you configured above inserting the Trunkname/Username, Secret, Host, and Port for your new Trunk. Modify the Register String, save your settings, and reload your dialplan. Also edit your whitelist and change the FQDN from someid.mvnoserver.com to the host name that was provided. Then restart the firewall: iptables-restart
.
Verifying Successful Extension & Trunk Registrations. Once your GTI extension and trunk are configured. You can verify successful connections in the Asterisk CLI.
For the extension: pjsip show aors
For the trunk: sip show registry
Configuring an Inbound Route for GTI Global Calls. Replacing 16785551212 with your actual 11-digit DID assigned to each cellphone, create Inbound Routes that look like this:
Description: GTIglobal 16785551212 DID Number: 16785551212 Destination: Extension -> 484001 (extension number of matching SIM)
Also add the following context at the end of /etc/asterisk/extensions_custom.conf using your DID. Then reload your dialplan: asterisk -rx "dialplan reload"
[from-sip-external] ; GTI Global exten => 16785551212,3,Goto(from-trunk,${DID},1)
Configuring an Outbound Route for GTI Global Calls. No special outbound routes are required unless you wish to use the GTI Global trunk to process U.S. calls at no cost. In this case, configure an Outbound Route pointing to your GTI Global Trunk. NOTE: Calls using this trunk can only be made from the extensions associated with GTI Global SIMs.
CallerID and Trunking Strategy. In setting up the GTI components in FreePBX, you need to consider how you wish to process outbound calls. If you want all outbound calls including those from the GTI extensions to reflect the company’s main phone number, then you can use your default outbound route making certain that CallerID override is set with the company number in the appropriate trunks. No CallerID should be set in the outbound route.
If you want calls from the GTI extensions to use the GTI trunk with the CallerID number of the individual cellphones, then the GTI trunk needs to be moved to the top of the default route sequence with no CallerID number specified in the GTI trunk or the outbound route. Instead, set the correct 11-digit CallerID numbers in each of the GTI extensions. This will not impact outbound calls from other extensions because the GTI trunk will indicate congestion forcing the calls out through the next trunk specified in the outbound route.
I’ve Got My GTI SIM. Now What?
It’s decision time on what sort of smartphone you wish to use with your GTI SIM. If you’re a heavy data consumer then it may make sense to acquire a cellphone that supports dual SIMs and use a SIM with an unlimited data plan as your data provider and use the GTI SIM for business purposes with your PBX.
Choosing a Cellphone Platform. Our favorite deployment strategy is to take advantage of the new dual SIM offerings that allow a user to have one SIM for personal use and a second SIM (GTI) for business use. This lets you acquire the least expensive cell service with unlimited data for personal use and acquire the $20 GTI SIM with no data plan through our Incredible PBX offering. You don’t really need two data plans on the same smartphone. A couple of options worth exploring include GTI’s MVNO offering of T-Mobile unlimited data service for $35 a month and Visible (a Verizon-owned MVNO) that offers unlimited plans for as little as $25 a month with a four-user signup. The users need not be related, and the users can each pay their own monthly bill. Keep in mind that MVNOs almost always have fine print allowing "deprioritization" in busy areas and during busy times of the day. And the underlying carriers always screw their MVNO customers first.
Some smartphones support two SIMs while others have one physical SIM slot plus an eSIM registration that can be acquired from the major carriers. We personally liked an unlocked $200 Motorola G8+ which has two actual SIM slots as do most of the newer Samsung, OnePlus, Huawei, and many other smartphones. Several cellphones from BLU are available for under $25. The following devices currently support a single SIM card plus an eSIM:
- Apple® iPhone® SE
- Apple iPhone 11
- Apple iPhone 11 Pro
- Apple iPhone 11 Pro Max
- Apple iPhone XR
- Apple iPhone XS
- Apple iPhone XS Max
- Google Pixel 4 / Pixel 4 XL
Configuring the API Settings for GTI. Once you insert your SIM into your smartphone and power it on, you need to modify the API settings and choose GTI Global (Mobile-X) as your provider for the GTI SIM. Here is a FAQ covering the appropriate API settings depending on whether you’re using an iPhone or Android phone. Here’s another tip. Even though your phone may show a number of available carriers other than Mobile-X, that doesn’t mean you can connect to any of them directly. Why? Because you don’t have credentials to access those networks. Your connection to those other networks is only available through Mobile-X using your GTI credentials.
Testing Out Your GTI Smartphone
Once you complete all of the steps above, it’s time to try things out. From your cellphone, try dialing *98 to connect to Asterisk voicemail. Next, try calling another extension on your PBX. Then try calling an outside number. Finally, try calling the DID of your GTI SIM from another phone and be sure it rings and you have audio in both directions.
When you complete the testing, you can add another SIP phone to the same extension as your GTI cellphone. Be sure to set the port to the proper port for your PJsip extension. When you call your GTI SIM’s DID, both the smartphone and the SIP phone should ring simultaneously.
In some environments, you may wish to configure 611 calls to ring a support ring group in your organization. If so, add a new SIP extension 611 and forward calls to that extension to the number of the desired ring group. For example, if the Ring Group number is 777, you could enter the following command at the Asterisk CLI: database put CF 611 777
.
Originally published: Monday, July 13, 2020
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
Last Chance to Jump onto Incredible PBX Cellular Bandwagon
We introduced our new GTI Technologies cellular extensions for U.S.-based Incredible PBX® platforms last week, and the enthusiastic response has been truly amazing. This week we want to share the results of our testing, and encourage you to become one of the pioneers for this exciting new technology. It can be integrated into almost any Asterisk® platform.
To briefly summarize, GTI cellular extensions provide a traditional cellphone connection to all four of the major U.S. carriers. GTI-enabled cellphones also register as traditional PJsip extensions with Asterisk. The GTI SIM deciphers the best network based upon the cellphone’s current location and then processes inbound and outbound calls just as if your cellphone were a registered desktop SIP phone on your PBX. Incoming calls are routed according to the inbound routing rules on your PBX, and outgoing calls follow the outbound routing rules of your PBX. 911 calls are processed directly by the carrier to whom your cellphone is connected.
GTI Global provides promotional consideration to help defray costs of our Asterisk projects.
This is not our first rodeo, and we wander into new communications territory with our eyes wide open. So the real test of this new platform was our recent 1,000 mile voyage in the southeastern United States. Our benchmark cellphone is registered on the AT&T network and reported one or two bars of coverage throughout much of the journey. That’s more than adequate to handle calls, text messaging, Waze, and TuneIn Radio with less than a handful of momentary outages. But what a difference four carrier connectivity makes. On our Google Pixel 3 with the GTI SIM, we observed four-bar cellular coverage throughout most of the trip. So my first observation would be that those in remote locations with spotty cellphone service are likely to experience a dramatic improvement in connectivity thanks to access to almost every cellphone tower in the United States. This has nothing to do with Asterisk and everything to do with simply having a better cellphone experience in general.
Now for the Asterisk component using a GTI SIM-based cellphone. If you write down the top ten things you love about Asterisk, you now can do almost all of them from your cellphone: transfer calls, listen to your voicemail, call other extensions and ring groups, use various trunking options by dialing prefixes to save on international calls, chatting with colleagues, unlocking a front door, opening a gate, retrieving news and weather data, and on and on. You can even use the traditional 611 cellular option to route calls to your help desk or security services. And, thanks to the magic of PJsip, folks can call your office extension and both your cellphone and desktop phone ring. They’ll never know you’ve left the office.
Pricing for GTI cellular service is competitive until you get into the high data categories. Unlimited calling and texting is available on all of the plans. With no data service which is not required for calling and messaging, the monthly cost is just $20. A 2GB data plan is $25.
And here is an update on an Unlimited Data Plan that we received this morning:
We are working on building an "unlimited" data plan that is based on a data throttling mechanism. This mechanism would look like this:
User would be sold a 20GB data bundle. Once the user reaches 15GB, the data channel speed would be throttled to 128 kbps. This should stretch the remaining 5GB of data so it will last through the end of the month. While it is not truly unlimited data [nobody else has it either], it gives the perception of unlimited data to the end-user. This type of approach is under review by the business team.
UPDATE: GTI Global is a T-Mobile MVNO. So another option would be to purchase a separate T-Mobile SIM to cover data requirements. An unlimited data T-Mobile SIM costs $35/month while an unlimited plan with 2GB 4G LTE data and 3G throttling runs $20/month. There is a $2 charge for the additional T-Mobile SIM.
And here is another update. Canada DIDs are now available for an additional $0.55 per month. Cellphone calls still have to be initiated or received within the U.S.
Choosing a Cellphone Platform. Our favorite deployment strategy is to take advantage of the new dual SIM offerings that allow a user to have one SIM for personal use and a second SIM (GTI) for business use. This lets you acquire the least expensive cell service with unlimited data for personal use and acquire the $20 GTI SIM with no data plan through our Incredible PBX offering. You don’t really need two data plans on the same smartphone.
Some smartphones support two SIMs while others have one physical SIM slot plus an eSIM registration that can be acquired from the major carriers. We personally liked an unlocked $200 Motorola G8+ which has two actual SIM slots as do most of the newer Samsung, OnePlus, Huawei, and many other smartphones. Several cellphones from BLU are available for under $25. The following devices currently support a single SIM card plus an eSIM:
- Apple® iPhone® SE
- Apple iPhone 11
- Apple iPhone 11 Pro
- Apple iPhone 11 Pro Max
- Apple iPhone XR
- Apple iPhone XS
- Apple iPhone XS Max
- Google Pixel 4 / Pixel 4 XL
Become a Pioneer. At the end of this week, we’ll submit to GTI the email addresses of those wanting to venture into the future along with us. We think the companies you represent and the customers you support will thank you six months from now. GTI service is rock-solid, the technology has no competition, and the rewards for you and the organizations you support are noteworthy. You must have an Incredible PBX server or comparable Asterisk server with a static, public Internet address to use this service. Setup details are in last week’s article.
If you’d like to join the adventure, please shoot us an email request this week and keep us informed about your progress. We can’t wait to share in your discoveries!
UPDATE: After you hear back from us with the signup details, here’s what happens next. You will sign up on our GTI Portal. Within an hour or two, you will get an email from GTI requesting the IP address of your server and extension credentials for each GTI SIM. Once you have provided that information, GTI will provision your account. It typically takes about 2 to 4 hours for service setup on carriers network (and some time less that 30 minutes). Then you will receive further notice/request and or status of the progress via a support ticket with a copy to your email address. GTIGLOBAL IP address and FQDN information will be provided after GTI has completed the setup of your Asterisk/FreePBX domain and IP in GTI’s system. If GTI needs clarification or additional information, GTI will contact you via support ticket. Once provisioned, all of the information will be available in your GTI portal. We’re providing the sequence of events so that you can be on the lookout for each step. If it doesn’t happen, open a support ticket.
Continue Reading: Soup-to-Nuts Tutorial: Adding Cellular Extensions to Incredible PBX
Originally published: Monday, June 29, 2020
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
Introducing Cellular Extensions for Incredible PBX & Asterisk
The Holy Grail for many of us in the VoIP community has been a cellphone that functions like a traditional Asterisk® extension on your PBX. The typical use case would be a real estate agent, service technician, salesperson, or other mobile worker who interacts with a home office as part of their daily routine. The beauty of this for the mobile workforce is it allows both the home office receptionist and the mobile worker to not only exchange calls but also to transfer the calls and retrieve voicemail just as if the worker were using a phone in the office.
Some of you may recall that we introduced a service like this called vMobile from Vitelity about six years ago. vMobile had some growing pains not the least of which was total reliance upon Sprint for cellular coverage. The service has been discontinued.
Today we’re testing a new offering from Global Technologies (GTI Global) on the Incredible PBX® platform that addresses some of the shortcomings of the vMobile offering. First, it provides a SIM card that can automatically utilize all four of the major carrier networks in the United States. Second, it offers a dedicated DID, a SIP trunk with free U.S. calling, and an Asterisk extension for every cellphone. And third, it takes advantage of PJsip which permits multiple phones to be connected to and ring on the same Asterisk extension.
GTI Global provided promotional consideration to help defray costs of our Asterisk projects.
Prerequisites. System integrators will acquire SIM cards through the Incredible PBX project. Pricing for the recommended unlimited calling, unlimited messaging, and 2GB monthly data plan is $25/month. A NoData plan is available for $20/month, and other higher data plans also are available. The SIM is compatible with any iPhone® or Android phone device. Users must provide their own cellphones which need not be jailbroken. Dual-SIM smartphones allow users to dedicate one line to the GTI Global SIM and another line for personal use. GTI Global currently is exploring support for eSIMs which would facilitate iPhone use.
To use the SIM-based phone, a public-facing Asterisk platform with a dedicated IP address is required, and it must support PJsip extensions. Incredible PBX 2020, Incredible PBX 16-15, and Incredible PBX 13-13 all have been tested. Other FreePBX® 13, 14, and 15 platforms should also suffice. Accompanying each SIM is a dedicated DID assigned to each cellphone. A matching PJsip extension must be created on the Asterisk platform, and the SIP credentials must be provided to GTI Global to make the cellphone connection to the PBX. Additional phones may be connected to the same PJsip extension to support a desktop phone or receptionist. Simply adjust the Max Connects entry when creating the PJsip extension to support the number of phones desired. Each phone on an extension requires a unique port.
How Calling Works. GTI Global has positioned servers in the facilities of every carrier. When a call arrives from a carrier’s tower, the carrier processes 911 calls directly through its network. For all other incoming calls, the carrier verifies the credentials of the SIM. Once verified, the call is passed to the GTI Global server which sends incoming calls to the associated extension on your PBX. The Inbound Route associated with that DID then sends the call to the assigned destination. If the GTI Global server is unavailable, the carrier processes the incoming calls just as it would any other call on its network by sending it directly to the cellphone.
When the cellphone user places a call, it is processed just as if the call had been made from an internal extension on the PBX with the exception of 911 calls which are handled directly by the carrier. After SIM verification, GTI Global passes the outgoing call to the PBX for processing using the Outbound Routing rules of the PBX. Internal extensions and voicemail can be dialed directly. Outbound calls can utilize any trunk associated with the PBX including the free U.S. trunk provided by GTI Global. CallerID is determined by the outbound trunk processing the call.
Configuring a GTI Global Extension. After logging into the FreePBX GUI, create a PJsip extension with the following settings:
Extension: 12345 Display Name: 12345 GTIglobal Secret: yourSIPpassword Advanced -> Max Contacts: 4
Configuring a GTI Global Trunk. Create a chan_SIP Trunk in the FreePBX GUI using your GTIglobal-provided credentials:
Trunk Name: trunk4321 PEER Details: username=trunk4321 type=friend secret=yourTRUNKpassword host=xxxxxx.mvnoserver.com disallow=all allow=ulaw canreinvite=no dtmfmode=rfc2833 port=5062 Register string: trunk4321:yourTRUNKpassword@xxxxxx.mvnoserver.com:5062
IMPORTANT: When you sign up with GTI, you need to give them the IP address of your PBX, the credentials (extension and password) for your GTI PJsip extension, the outbound SIP port for your GTI trunk (UDP 5062), and the inbound PJsip port for your PJsip extension (UDP 5061).
Configuring an Inbound Route for GTI Global Calls. Replacing 16785551212 with your actual 11-digit DID assigned to each cellphone, create Inbound Routes that look like this:
Description: GTIglobal 16785551212 DID Number: 16785551212 Destination: Extension -> 12345 (your extension associated with each SIM)
You need to add the following context at the end of /etc/asterisk/extensions_custom.conf using your DID. Then reload your dialplan: asterisk -rx "dialplan reload"
[from-sip-external] ; GTI Global exten => 16785551212,3,Goto(from-trunk,${DID},1)
Configuring an Outbound Route for GTI Global Calls. No special outbound routes are required unless you wish to use the GTI Global trunk to process U.S. calls at no cost. In this case, configure an Outbound Route pointing to your GTI Global Trunk. NOTE: Calls using this trunk can only be made from the extensions associated with GTI Global SIMs.
CallerID and Trunking Strategy. In setting up the GTI components in FreePBX, you need to consider how you wish to process outbound calls. If you want all outbound calls including those from the GTI extensions to reflect the company’s main phone number, then you can use your default outbound route making certain that CallerID override is set with the company number in the appropriate trunks. No CallerID should be set in the outbound route.
If you want calls from the GTI extensions to use the GTI trunk with the CallerID number of the individual cellphones, then the GTI trunk needs to be moved to the top of the default route sequence with no CallerID number specified in the GTI trunk or the outbound route. Instead, set the correct 11-digit CallerID numbers in each of the GTI extensions. This will not impact outbound calls from other extensions because the GTI trunk will indicate congestion forcing the calls out through the next trunk specified in the outbound route.
GTI Global Firewall WhiteList. On Incredible PBX servers and other IPtables platforms, add the following whitelist entries to your firewall:
/usr/sbin/iptables -I INPUT -p udp -m udp -s 99.198.122.166 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 99.198.110.51 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 96.127.174.38 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 37.18.129.170 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 37.18.129.171 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 37.18.129.172 --dport 5060:5069 -j ACCEPT /usr/sbin/iptables -I INPUT -p udp -m udp -s 37.18.129.173 --dport 5060:5069 -j ACCEPT
How to Proceed. If GTI Global cellular extensions are of interest for your customers, kindly contact us at support@incrediblepbx.com, and we’ll hook you up with the folks at GTI Global. There also is an extensive KnowledgeBase for those wanting more information.
Continue Reading: Last Chance to Jump onto Incredible PBX Cellular Bandwagon
Soup-to-Nuts Tutorial: Adding Cellular Extensions to Incredible PBX
Originally published: Monday, June 22, 2020
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
Midnight Madness: Introducing Incredible PBX 12 with Asterisk 12 and FreePBX
[iframe-popup id="4″]
The number "12″ always has held mystical prominence in our culture and so it is with Asterisk®. Just over 12 months ago, Digium first introduced Asterisk 12 at AstriCon in Atlanta and heralded a major change in the direction of the product. It was more than a wholesale revamping of the Asterisk feature set. There was a revolutionary new development methodology thanks to the untiring efforts of Matt Jordan and his incredibly talented development team. Unlike Asterisk releases of old, there were no serious breakages in existing applications and, where there were changes, they were carefully documented for all the world to see. Thank you, Matt & Co.
The release of Asterisk 12 also set in motion the development of FreePBX® 12 by the equally talented FreePBX Dev Team. What began as an effort simply to integrate all of the new components in Asterisk 12 quickly evolved into a major rewrite of the graphical user interface for Asterisk, no small feat given its history of starts and stops spanning nearly a decade of development. Just last week, FreePBX 12 was pronounced stable and production ready. If you thought Asterisk 12 was revolutionary, just wait until you try FreePBX 12. Simply amazing work by the FreePBX Development Team. Thank you.
While PBX in a Flash has offered a preview edition of Asterisk 12 and FreePBX 12 for quite a while, we’ve held off releasing the stand-alone Incredible PBX 12 for a number of reasons. First and foremost, we wanted Incredible PBX 12 to remain pure open source to point the way for others that want to enhance Asterisk 12 and FreePBX 12. Second, there were more than a few rough edges with both products that simply needed some time to evolve. The one year anniversary of Asterisk 12 and the stable release of FreePBX 12 seemed a fitting occasion to add our turnkey implementation of Incredible PBX to the mix.
The real beauty of Incredible PBX: there is no smoke and there are no mirrors. What you see is what you get. You begin with a base install of the Linux operating system. And then the open source Incredible PBX installer adds all of the pieces to integrate air-tight security with Asterisk 12, FreePBX 12, text-to-speech technology and dozens of applications for Asterisk into a seamless platform for either experimentation or production use. You can review the source code and embellish it as you see fit! Protecting your deployment is the IPtables firewall with a WhiteList for authorized user access coupled with Fail2Ban to monitor access attempts. This isn’t merely a security toolkit. Your server is actually locked down from the moment you complete the Incredible PBX install. Authorizing additional users is accomplished using simple administrator scripts. Or end-users can employ PortKnocker and Travelin’ Man 4 to simplify remote access. Automatic updates for security fixes and enhancements are an integral component of Incredible PBX. If the security alerts of the past month haven’t convinced you that updates are critically important, you probably should stop hosting your own PBX. Backups and restores also are simple. And the complete open source feature set of both Asterisk and FreePBX is activated to facilitate your development efforts. In short, you gain nothing by installing the individual components yourself, and you may lose a lot. With Incredible PBX, the heavy lifting has all been done for you with documented, open source code that makes it simple to add your own tweaks as desired. That’s what open source is all about!
We’ve chosen Ubuntu 14.04 as the platform on which to begin the Incredible PBX 12 adventure. More releases will follow in due course. But Ubuntu 14.04 is an extremely stable and well-supported LTS release of Linux that warrants a careful look. After all, the primary objective here is a stable telephony platform. The Ubuntu 14.04 LTS platform offers that in spades.
Building an Ubuntu 14.04 Platform for Incredible PBX 12
As a result of the trademark and copyright morass, we’ve steered away from the bundled operating system in favor of a methodology that relies upon you to put in place the operating system platform on which to run PBX in a Flash or Incredible PBX. The good news is it’s easy! With many cloud-based providers1, you can simply click a button to choose your favorite OS flavor and within minutes, you’re ready to go. With many virtual machine platforms such as VirtualBox, it’s equally simple to find a pre-built Ubuntu 14.04 image or roll your own.
If you’re new to VoIP or to Nerd Vittles, here’s our best piece of advice. Don’t take our word for anything! Try it for yourself in the Cloud! You can build an Ubuntu 14.04 image on Digital Ocean in under one minute and install Incredible PBX 12 for Ubuntu 14.04 in under 30 minutes. Then try it out for two full months. It won’t cost you a dime. Use our referral link to sign up for an account. Enter a valid credit card to verify you’re who you say you are. Create an Ubuntu 14.04 (not 14.10!) 512MB droplet of the cheapest flavor ($5/mo.). Go to the Billing section of the site, and enter the following promo code: UBUNTUDROPLET. That’s all there is to it. A $10 credit will be added to your account, and you can play to your heart’s content. Delete droplets, add droplets, and enjoy the free ride!
For today, we’ll walk you through building your own stand-alone server using the Ubuntu 14.04 mini.iso. If you’re using Digital Ocean in the Cloud, skip down to Installing Incredible PBX 12. If you’re using your own hardware, to get started, download the 32-bit or 64-bit Ubuntu 14.04 "Trusty Tahr" Minimal ISO from here. Then burn it to a CD/DVD or thumb drive and boot your dedicated server from the image. Remember, you’ll be reformatting the drive in your server so pick a machine you don’t need for other purposes.
For those that would prefer to build your Ubuntu 14.04 Wonder Machine using VirtualBox on any Windows, Mac, or existing Linux Desktop, here are the simple steps. Create a new virtual machine specifying either the 32-bit or 64-bit version of Ubuntu. Allocate 1024MB of RAM (512MB also works fine!) and at least 20GB of disk space using the default hard drive setup in all three steps. In Settings, click System and check Enable I/O APIC and uncheck Hardware Clock in UTC Time. Click Audio and Specify then Enable your sound card. Click Network and Enable Network Adapter for Adapter 1 and choose Bridged Adapter. Finally, in Storage, add the Ubuntu 14.04 mini.iso to your VirtualBox Storage Tree as shown below. Then click OK and start up your new virtual machine. Simple!
Here are the steps to get Ubuntu 14.04 humming on your new server or virtual machine once you’ve booted up. If you can bake cookies from a recipe, you can do this:
UBUNTU mini.iso install:
Choose language
Choose timezone
Detect keyboard
Hostname: incrediblepbx < continue >
Choose mirror for downloads
Confirm archive mirror
Leave proxy blank unless you need it < continue >
** couple minutes of whirring as initial components are loaded **
New user name: incredible < continue >
Account username: incredible < continue >
Account password: makeitsecure
Encrypt home directory < no >
Confirm time zone < yes >
Partition disks: Guided - use entire disk and set up LVM
Confirm disk to partition
Write changes to disks and configure LVM
Whole volume? < continue>
Write changes to disks < yes> < -- last chance to preserve your disk drive!
** about 15 minutes of whirring during base system install ** < no touchy anything>
** another 5 minutes of whirring during base software install ** < no touchy anything>
Upgrades? Install security updates automatically
** another 5 minutes of whirring during more software installs ** < no touchy anything>
Software selection: *Basic Ubuntu server (only!)
** another couple minutes of whirring during software installs ** < no touchy anything>
Grub boot loader: < yes>
UTC for system clock: < no>
Installation complete: < continue> after removing installation media
** on VirtualBox, PowerOff after reboot and remove [-] mini.iso from Storage Tree & restart VM
login as user: incredible
** enter user incredible's password **
sudo passwd
** enter incredible password again and then create secure root user password **
su root
** enter root password **
apt-get update
apt-get install ssh -y
sed -i 's|without-password|yes|' /etc/ssh/sshd_config
sed -i 's|yes"|without-password"|' /etc/ssh/sshd_config
ifconfig
** write down the IP address of your server from ifconfig results
reboot
** login via SSH to continue **
Installing Incredible PBX 12 on Your Ubuntu 14.04 Server
Adding Incredible PBX 12 to a running Ubuntu 14.04 server is a walk in the park. To restate the obvious, your server needs a reliable Internet connection to proceed. Using SSH (or Putty on a Windows machine), log into your new server as root at the IP address you deciphered in the ifconfig step at the end of the Ubuntu install procedure above.
WARNING: If you’re using a 512MB droplet at Digital Ocean, be advised that their Ubuntu setup does NOT include a swap file. This may cause serious problems when you run out of RAM. Uncomment ./create-swapfile-DO line below to create a 1GB swap file which will be activated whenever you exceed 90% RAM usage on Digital Ocean.
Now let’s begin the Incredible PBX 12 install. Log back in as root and issue the following commands:
cd /root wget http://incrediblepbx.com/incrediblepbx12.tar.gz tar zxvf incrediblepbx12.tar.gz rm incrediblepbx12.tar.gz #./create-swapfile-DO ./IncrediblePBX12.sh
The installer will first upgrade your Ubuntu 14.04 build to the latest modules. Then it will reboot. Rerun the installer again to kick off the Incredible PBX 12 installation process. Once you have agreed to the license agreement and terms of use, press Enter and go have a 30-minute cup of coffee. The Incredible PBX 12 installer runs unattended so find something to do for a bit unless you just like watching code compile. When you see "Have a nice day", your installation is complete. Write down your your three "knock" ports for PortKnocker. You can retrieve your PortKnocker setup like this: cat /root/knock.FAQ. Next, set your admin password for FreePBX 12 by running /root/admin-pw-change. Set your correct time zone by running /root/timezone-setup. To be sure your FreePBX module signatures are current, issue the following two commands:
amportal a ma refreshsignatures amportal a r
Log out and back in as root and the automatic update utility will bring your system current with security fixes and enhancements. Then you will be greeted with a status display shown at the top of this article.
You can access the Asterisk 12 CLI by typing: asterisk -rvvvvvvvvvv
You can access the FreePBX 12 GUI using your favorite web browser to configure your server. Just enter the IP address shown in the status display. The default username is admin with the admin password you set up above. If desired, you also can change it in FreePBX Administration by clicking Admin -> Administrators -> admin. Enter a new password and click Submit Changes then Apply Config. Now edit extension 701 so you can figure out (or change) the randomized passwords that were set up for default 701 extension and voicemail: Applications -> Extensions -> 701.
Setting Up a Soft Phone to Use with Incredible PBX
Now you’re ready to set up a telephone so that you can play with Incredible PBX 12. We recommend YateClient 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’ll need the IP address of your server plus your extension 701 password. Choose Settings -> Accounts and click the New button. Fill in the blanks using the IP address of your server, 701 for your account name, and whatever password you created for the extension. Click OK.
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:
123 - Reminders
222 - ODBC Demo (use acct: 12345)
947 - Weather by ZIP Code
951 - Yahoo News
*61 - Time of Day
*68 - Wakeup Call
TODAY - Today in History
Now you’re ready to connect to the telephones in the rest of the world. If you live in the U.S., the easiest way (at least for now) is to use an existing (free) Google Voice account. Google has threatened to shut this down but as this is written, it still works with previously set up Google Voice accounts. The more desirable long-term solution is to choose several SIP providers and set up redundant trunks for your incoming and outbound calls. The PIAF Forum includes dozens of recommendations to get you started.
Configuring Google Voice
If you want to use Google Voice, you’ll need a dedicated Google Voice account to support Incredible PBX 12. If you want to use the inbound fax capabilities of Incredible Fax, then you’ll need an additional Google Voice line that can be routed to the FAX custom destination using FreePBX. The more obscure the username (with some embedded numbers), the better off you will be. This will keep folks from bombarding you with unsolicited Gtalk chat messages, and who knows what nefarious scheme will be discovered using Google messaging six months from now. So keep this account a secret!
We’ve tested this extensively using an existing Google Voice account, and inbound calling is just not reliable. The reason seems to be that Google always chooses Gmail chat as the inbound call destination if there are multiple registrations from the same IP address. So, be reasonable. Do it our way! Use a previously configured and dedicated Gmail and Google Voice account, and use it exclusively with Incredible PBX 12.
IMPORTANT: Be sure to enable the Google Chat option as one of your phone destinations in Settings, Voice Setting, Phones. That’s the destination we need for The Incredible PBX to work its magic! Otherwise, all inbound and outbound calls will fail. If you don’t see this option, you’re probably out of luck. Google has disabled the option in newly created accounts as well as some old ones that had Google Chat disabled. Now go back to the Google Voice Settings.
While you’re still in Google Voice Settings, click on the Calls tab. Make sure your settings match these:
- Call Screening – OFF
- Call Presentation – OFF
- Caller ID (In) – Display Caller’s Number
- Caller ID (Out) – Don’t Change Anything
- Do Not Disturb – OFF
- Call Options (Enable Recording) – OFF
- Global Spam Filtering – ON
Click Save Changes once you adjust your settings. Under the Voicemail tab, plug in your email address so you get notified of new voicemails. Down the road, receipt of a Google Voice voicemail will be a big hint that something has come unglued on your PBX.
One final word of caution is in order regardless of your choice of providers: Do NOT use special characters in any provider passwords, or nothing will work!
Now you’re ready to set up your Google Voice trunk in FreePBX 12. After logging into FreePBX with your browser, click the Connectivity tab and choose Google Voice/Motif. To Add a new Google Voice account, just fill out the form. If you want unanswered calls to be routed to Google Voice for transcription, check the box. Be advised that IVR calls typically are not "answered" so check that box as well if you plan to use an IVR to respond to incoming Google Voice calls.
IMPORTANT LAST STEP: Google Voice will not work unless you restart Asterisk from the Linux command line at this juncture. Using SSH, log into your server as root and issue the following command: amportal restart.
If you have trouble getting Google Voice to work (especially if you have previously used your Google Voice account from a different IP address), try this Google Voice Reset Procedure. It usually fixes connectivity problems. If it still doesn’t work, enable Less Secure Apps using this Google tool.
Troubleshooting Audio and DTMF Problems
You can avoid one-way audio on calls and touchtones that don’t work with these simple settings in FreePBX: Settings -> Asterisk SIP Settings. Just plug in your public IP address and your private IP subnet. Then set ULAW as the only Audio Codec.
Adding Speech Recognition to Incredible PBX 12
To support many of our applications, Incredible PBX has included Google’s speech recognition service for years. These applications include Weather Reports by City (949), AsteriDex Voice Dialing by Name (411), and Wolfram Alpha for Asterisk (4747), all of which use Lefteris Zafiris’ terrific speech-recog AGI script. Unfortunately (for some), Google now has tightened up the terms of use for their free speech recognition service. Now you can only use it for "personal and development use." If you meet those criteria, keep reading. Here’s how to activate speech recognition on Incredible PBX. Don’t skip any steps!
1. Using an existing Google/Gmail account to join the Chrome-Dev Group.
2. Using the same account, create a new Speech Recognition Project.
3. Click on your newly created project and choose APIs & auth.
4. Turn ON Speech API by clicking on its Status button in the far right margin.
5. Click on Credentials in APIs & auth and choose Create New Key -> Server key. Leave the IP address restriction blank!
6. Write down your new API key or copy it to the clipboard.
7. Log into your server as root and issue the following commands:
# for Ubuntu and Debian platforms apt-get clean apt-get install libjson-perl flac -y # for RedHat and CentOS platforms # yum -y install perl-JSON # for all Linux platforms cd /var/lib/asterisk/agi-bin mv speech-recog.agi speech-recog.last.agi wget --no-check-certificate https://raw.githubusercontent.com/zaf/asterisk-speech-recog/master/speech-recog.agi chown asterisk:asterisk speech* chmod 775 speech* nano -w speech-recog.agi
8. When the nano editor opens, go to line 70 of speech-recog.agi: my $key = ""
. Insert your API key from Step #6 above between the quotation marks and save the file: Ctrl-X, Y, then Enter.
Now you’re ready to try out the speech recognition apps. Dial 949 and say the name of a city and state/province/country to get a current weather forecast from Yahoo. Dial 411 and say "American Airlines" to be connected to American.
To use Wolfram Alpha by phone, you first must install it. Obtain your free Wolfram Alpha APP-ID here. Then run the one-click installer: /root/wolfram/wolframalpha-oneclick.sh. Insert your APP-ID when prompted. Now dial 4747 to access Wolfram Alpha by phone and enter your query, e.g. "What planes are overhead." Read the Nerd Vittles tutorial for additional examples and tips.
A Few Words about the Incredible PBX 12 Security Model for Ubuntu
Incredible PBX 12 for Ubuntu 14.04 is an extremely secure turnkey PBX implementation. As configured, it is protected by both Fail2Ban and a hardened configuration of the IPtables Linux firewall. As installed, nobody can access your PBX without your credentials AND an IP address that is either on your private network or that matches the IP address of your server or the PC from which you installed Incredible PBX. Incredible PBX 12 is preconfigured to let you connect to many of the leading SIP hosting providers without additional firewall tweaking.
You can whitelist additional IP addresses for remote access in several ways. First, you can use the command-line utilities: /root/add-ip and /root/add-fqdn. You can also remove whitelisted IP addresses by running /root/del-acct. Second, you can dial into extension 864 (or use a DID pointed to extension 864 aka TM4) and enter an IP address to whitelist. Before Travelin’ Man 4 will work, you’ll need to add credentials for each caller using the tools in /root/tm4. You must add at least one account before dial-in whitelisting will be enabled. Third, you can temporarily whitelist an IP address by successfully executing the PortKnocker 3-knock code established for your server. You’ll find the details and the codes in /root/knock.FAQ. Be advised that IP addresses whitelisted with PortKnocker (only!) go away whenever your server is rebooted or the IPtables firewall is restarted. For further information on the PortKnocker technology and available clients for iOS and Android devices, review the Nerd Vittles tutorial.
HINT: The reason that storing your PortKnocker codes in a safe place is essential is because it may be your only available way to gain access to your server if your IP address changes. You obviously can’t use the command-line tools to whitelist a new IP address if you cannot gain access to your server at the new IP address.
We always recommend you also add an extra layer of protection by running your server behind a hardware-based firewall with no Internet port exposure, but that’s your call. If you use a hardware-based firewall, be sure to map the three PortKnocker ports to the internal IP address of your server!
The NeoRouter VPN client also is included for rock-solid, secure connectivity for remote users. Read our previous tutorial for setup instructions.
As one would expect, the IPtables firewall is a complex piece of software. If you need assistance configuring it, visit the PIAF Forum for some friendly assistance.
Incredible Backup and Restore
We’re pleased to introduce our latest backup and restore utilities for Incredible PBX. Running /root/incrediblebackup will create a backup image of your server in /tmp. This backup image then can be copied to any other medium desired for storage. To restore it to another Incredible PBX 12 server, simply copy the image to a server running Asterisk 12 and FreePBX 12 and run /root/incrediblerestore. Doesn’t get much simpler than that.
A Word About FreePBX Module Signatures
FreePBX 12 has implemented a new checksum mechanism to assure that modules are intact. Special thanks to the FreePBX Development Team for their work in extending this feature to modules outside the FreePBX-support modules. If other modules (other than ODBC configuration files) show invalid or missing signatures, you should do some investigating promptly!
Adding Incredible Fax to Your Server
Once you’ve completed the Incredible PBX install, log out and log back in to load the latest automatic updates. Then reboot. Now you’re ready to continue your adventure by installing Incredible Fax for Ubuntu. Special thanks to Josh North for all his hard work on this!
cd /root rm incrediblefax11_ubuntu14.sh wget http://incrediblepbx.com/incrediblefax11_ubuntu14.sh chmod +x incrediblefax11_ubuntu14.sh ./incrediblefax11_ubuntu14.sh
Just plug in your email address for delivery of your incoming faxes in PDF format. Then accept all of the defaults during the installation process. Once you complete the install, reboot your server. Then log in as root again and set your AvantFax admin password: /root/avantfax-pw-change. Now you can access both FreePBX 12 and AvantFax by pointing your browser to the IP address of your server. Please note that we’ve had problems logging into AvantFax with some versions of the Chrome browser. Works great with Firefox!
Next, log into FreePBX and set an Inbound Route for incoming faxes to Custom Destination: Fax (hylafax). Then try sending a fax to the phone number and be sure it arrives in your email.
You also can try enabling fax detection with any Google Voice number. Just edit the inbound route for the DID and make it look like this:
Incredible PBX 12 Automatic Update Utility
Every time you log into your server as root, Incredible PBX 12 will ping the IncrediblePBX.com web site to determine whether one or more updates are available to bring your server up to current specs. We recommend you log in at least once a week just in case some new security vulnerability should come along (again).
Where To Go Next?
Once you get Incredible PBX installed, you’ll want to read up on the dozens of applications for Asterisk which are included in the Incredible PBX feature set. We’ve previously covered this in a separate article for the Raspberry Pi platform, but the applications are the same. Here’s a link to the tutorials.
You can follow updates to Incredible PBX 12 in this thread on the PIAF Forum.
We would also encourage you to sign up for an account on the PIAF Forum and join the discussion. In addition to providing first-class, free support, we think you’ll enjoy the camaraderie. Come join us!
Originally published: Monday, November 3, 2014 Updated: Monday, December 1, 2014
Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a terrible place to handle support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forums. It’s the best Asterisk tech support site in the business, and it’s all free! Please have a look and post your support questions there. Unlike some forums, ours is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of users just like you. You won’t have to wait long for an answer to your question.
Need help with Asterisk? Visit the PBX in a Flash Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
Some Recent Nerd Vittles Articles of Interest…
- With some providers including ones linked in this article, Nerd Vittles receives referral fees which assist in keeping the Nerd Vittles lights burning brightly. [↩]