Home » Posts tagged 'smtp'

Tag Archives: smtp

The Most Versatile VoIP Provider: FREE PORTING

Deploying a Non-Google SMTP RelayHost with Asterisk



This will not be the sexiest column you read this year, but it may be the most important. You need a reliable way for your VoIP-based PBX to deliver emails to you and your users when incoming voicemails arrive and when your server has problems. At least for Incredible PBX® platforms, we thought we had this solved with our Gmail Smarthost solution. But, alas, Google continues to move the goal posts and has announced that it will discontinue support for so-called "Less Secure Apps" on May 30, 2022. After watching Google blow up one of their apps after another over the years, you’d think we’d learn. But the ease of use and (free) pricing of Google offerings continues to entice until… another one bites the dust.

Why Do You Need a RelayHost? Many Internet Service Providers (ISPs) block downstream mail servers from sending email to reduce spam. If you have a PBX sitting behind a Comcast cable modem and you don’t have a business account, that would be you.

What Is a RelayHost? A RelayHost is an intermediate mail provider that provides last mile delivery of your server’s outbound email without your having to worry about the intricacies of setting up and properly configuring an SMTP gateway. Instead, your server pushes your outbound email messages to the smarthost using your credentials and leaves the rest of the delivery task to the RelayHost.

Choosing a RelayHost. Lucky for all of us, there are many RelayHost providers from which to choose. Most offer a free tier with 100 or more daily emails. For most PBXs, that is more than ample without spending a dime. If your server pushes out more than 100 emails a day, then there are commercial tiers of service available from these same providers. Here are some of the favorites recommended by our users: Twilio’s SendGrid, Mailjet, SendInBlue, and our own free MXroute offering. We would prefer you use our service as a last resort if you can’t get any of the other free offerings to work. We’ll show you how to set up Twilio’s SendGrid as a RelayHost to get you started.

Configuring a RelayHost with Incredible PBX. There’s good news and bad news. While all of these solutions offer a free tier, the setup process with some of these services can be a bear. We’ve attempted to take the pain out of this by walking you through the setup steps. For openers, configuring SendMail as an SMTP Smarthost is not for mere mortals so we’ll first migrate your PBX to Postfix to simplify the setup procedure. Here is a quick list of the tasks:

  1. Migrate Your PBX from SendMail to Postfix
  2. Obtain an Account with SmartHost Provider
  3. Configure Postfix Email Relay Using SmartHost Provider
  4. Test Outbound Mail

Migrating Incredible PBX 2022 to Postfix. Our new Incredible PBX 2022 build for Rocky 8 comes with both SendMail and Postfix preinstalled. So it’s simple to switch gears. Here are the commands:

systemctl stop sendmail
systemctl disable sendmail
systemctl start postfix
systemctl enable postfix
sed -i 's|-c sendmail|-c postfix|' /usr/local/sbin/pbxstatus
sed -i 's|SendMail| Postfix|' /usr/local/sbin/pbxstatus
systemctl status postfix

Migrating Incredible PBX 2021 to Postfix. By default, Incredible PBX 2021 servers do not include Postfix. So here are the steps to install Postfix and remove SendMail. These steps also apply to all releases of Incredible PBX on the Raspbian platform.

apt-get update
apt-get install postfix sasl2-bin -y
# choose No Configuration option when prompted in:
# dpkg-reconfigure postfix
systemctl stop sendmail
systemctl disable sendmail
systemctl start postfix
systemctl enable postfix
sed -i 's|-c sendmail|-c postfix|' /usr/local/sbin/pbxstatus
echo "incrediblepbx.com" > /etc/mailname
sed -i 's|SendMail| Postfix|' /usr/local/sbin/pbxstatus
systemctl status postfix

Creating a Free SendGrid Account. Begin by navigating to the SendGrid Start for Free link. Enter your Email Address and a 16-character password of your choice. Accept the Terms of Service and click Create Account. Fill in the Personal Information and click Get Started. Create a Single Sender Identity. Confirm receipt of the verification email. You can skip enabling Two-Factor Authentication if desired. Next, open the Email API tab and click Integration Guide. Choose SMTP Relay and create an APIKEY. Copy the generated APIKEY to a safe place. It cannot be deciphered again!

Now edit /etc/postfix/main.cf and add the following entries to the bottom of the file:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_security_level = encrypt
header_size_limit = 4096000
relayhost = [smtp.sendgrid.net]:587

Then create /etc/postfix/sasl_passwd and enter the following, replacing YOUR-APIKEY with your actual key from above:

[smtp.sendgrid.net]:587 apikey:YOUR-APIKEY

Complete the setup by issuing the following commands:

chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
systemctl restart postfix
systemctl status postfix

IMPORTANT NOTE: With SendGrid, the email address you entered for your Single Sender Identity must match the FROM: address on every outbound email message sent from your server. We’ll need to adjust the FROM: address in FreePBX before any voicemail emails can be successfully sent. Also, if you send emails from the command line, the syntax must be as shown here with your sender@yourdomain.com matching what was entered as your Sender Identity email address.

echo "test" | mail -r sender@yourdomain.com -s testmessage recipient@somedomain.com

At least with Gmail recipients, they may also see the following with messages from your PBX until they click Looks Safe:


Finally, be sure to adjust the FROM address for outbound voicemail messages in the FreePBX GUI. Login as admin and enter your Sender Identity Email Address in the Server Email field in Settings -> Voicemail Admin -> Settings -> Email Config.

You can check for errors by reviewing the Postfix mail log: tail /var/log/mail.log.

UPDATE: Setup scripts for Debian 10 and Rocky 8 can be downloaded here.

Originally published: Thursday, March 17, 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.
 



One-Minute Wonder: It’s Incredible PBX 2022 for VirtualBox




If you’re new to the VoIP world and want to kick the tires to see what you’re missing, then today’s one minute setup is for you. You can use almost any desktop computer you already own to bring up the VirtualBox® edition of Incredible PBX® 2022.

If you’ve followed Nerd Vittles over the years, you already know that VirtualBox from Oracle® is one of our favorite platforms. Once VirtualBox is installed on your desktop computer, adding Incredible PBX is a snap. Download the latest Incredible PBX 2022 image from SourceForge, double-click on the downloaded image, check the initialize MAC address box, and boom. In less than a minute, your PBX is ready to use with the very latest Rocky 8 platform and Asterisk® 18 build plus all of the FreePBX® 15 GPL modules. There are no hidden fees or crippleware to hinder your use of Incredible PBX for as long as you like. If you set up an account with our Platinum provider, Skyetel, you can start making calls in minutes. Of course, the Incredible PBX feature set is included as well which brings you nearly three dozen applications for Asterisk® that will revolutionize your communications platform. Speech-to-text, voice recognition, and a Siri-like telephony interface are as close as your SIP phone.

Installing Oracle VM VirtualBox

Oracle’s virtual machine platform inherited from Sun is amazing. It’s not only free, but it’s pure GPL2 code. VirtualBox gives you a virtual machine platform that runs on top of any desktop operating system. In terms of limitations, we haven’t found any. We even tested this on an Atom-based Windows 7 machine with 2GB of RAM, and it worked without a hiccup. So step #1 today is to download one or more of the VirtualBox installers from VirtualBox.org or Oracle.com. Our recommendation is to put all of the 100MB installers on a 4GB thumb drive.1 Then you’ll have everything in one place whenever and wherever you happen to need it. Once you’ve downloaded the software, simply install it onto your favorite desktop machine. Accept all of the default settings, and you’ll be good to go. For more details, here’s a link to the Oracle VM VirtualBox User Manual.

NOTE: The Incredible PBX 2022 VM requires a VirtualBox 6.x platform. Adjust screen size in View -> Virtual Screen.

Installing the Incredible PBX 2022 Image

To begin, download the Incredible PBX 2022 image (3.5 GB) onto your desktop.

Next, double-click on the Incredible PBX .ova image on your desktop. Be sure to check the box to initialize the MAC address of the image if you’re using an older version of VirtualBox. Then click Import. Once the import is finished, you’ll see a new Incredible PBX 2022 virtual machine in the VM List of the VirtualBox Manager Window. Let’s make a couple of one-time adjustments to the Incredible PBX configuration to account for possible differences in sound and network cards on different host machines.

(1) Click once on the Incredible PBX virtual machine in the VM List. Then (2) click the Settings button. In System tab, verify Hardware Clock in UTC Time is checked. In the Audio tab, check the Enable Audio option and choose your sound card. In the Network tab for Adapter 1, check the Enable Network Adapter option. From the Attached to pull-down menu, choose Bridged Adapter. Then select your network card from the Name list. Then click OK. That’s all the configuration that is necessary for Incredible PBX 2022.

Running Incredible PBX 2022 in VirtualBox

Once you’ve imported and configured the Incredible PBX 2022 Virtual Machine, you’re ready to go. Highlight the Incredible PBX 2022 virtual machine in the VM List on the VirtualBox Manager Window and click the Start button. The standard Linux boot procedure will begin and, within a few seconds, you’ll get the familiar Linux login prompt. During the bootstrap procedure, you’ll see a couple of dialogue boxes pop up that explain the keystrokes to move back and forth between your host operating system desktop and your virtual machine. Remember, you still have full access to your desktop computer. Incredible PBX is merely running as a task in a VM window. Always gracefully halt Incredible PBX just as you would on any computer.




 
Here’s what you need to know. To work in the Incredible PBX virtual machine, just left-click your mouse while it is positioned inside the VM window. To return to your host operating system desktop, press the right Option key on Windows machines or the left Command key on any Mac. On Linux desktops, press the right Ctrl key. For other operating systems, read the dialogue boxes for instructions on moving around. To access the Linux CLI, login as root with the default password: password. Change your root password when you are prompted to do so. Then update your admin password for web access: ./admin-pw-change. Also update your admin password for web applications: ./apache-pw-change. You’ll need these admin passwords to access the web GUI to manage your PBX as well as to use the AsteriDex and Reminders web apps. The above password updates are automatically requested when you first activate the virtual machine. You can update all of your other passwords using the scripts provided in /root.

Setting the Date and Time with VirtualBox

On some platforms, VirtualBox has a nasty habit of mangling the date and time of your virtual machine. Verify that you have enabled the Hardware Clock in UTC Time option for your virtual machine as documented above. If pbxstatus still shows an incorrect time, manually set the date and time and then update the hardware clock. Here’s how assuming 08130709 is the month (August), day (13), and correct time (7:09 a.m.) of your server:

date 08130709
clock -w

Configuring Skyetel for Incredible PBX 2022

If you’d like to try out the Skyetel service at no charge, here’s the drill. Sign up for Skyetel service to 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, and address. 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 2022:

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

If VirtualBox is sitting behind a router or firewall on a private LAN, you’ll need to forward ports UDP 5060, 5061, and 10000-20000 in your router to the private LAN address of your Incredible PBX server. Also edit your extensions in the GUI and set NAT=YES in the Advanced tab of every extension. In Settings -> Asterisk SIP Settings, click the Detect Network Settings button and then Submit your changes and reload the Asterisk dialplan when prompted.

Finally, login to the FreePBX web GUI as admin using the password you assigned when you set up the virtual machine. Navigate to Connectivity -> Trunks and edit the Skyetel-pjSIP trunk. Change the Disable Trunk setting from Yes to No. Then click Submit and reload your dialplan when prompted. That’s it.

Configuring VoIP.ms for Incredible PBX 2022

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

Configuring SendMail with Incredible PBX 2022

In order to receive voicemails by email delivery, outbound mail functionality from your server obviously is required. If you’ve deployed your server in your home, your Internet Service Provider probably blocks downstream mail servers such as Incredible PBX from sending mail. This is done to reduce SPAM. In this case, you will need to configure SendMail using either your ISP or Gmail as an SMTP Relay Host. We have built aninstall script to set up a SmartHost using Gmail. Simply run it and insert your Gmail username and password or App Password.

cd /root
wget http://incrediblepbx.com/enable-gmail-smarthost-rocky8.tar.gz
tar zxvf enable-gmail-smarthost-rocky8.tar.gz
rm -f enable-gmail-smarthost-rocky8.tar.gz
./enable-gmail-smarthost-for-sendmail

Configuring a Softphone 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 can be a separate board in your computer from a company such as Digium. Or it can be a standalone SIP device such as the Incredible PBX SIP phone. 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 in the Incredible PBX Wiki 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 navigating to Applicaations -> Extensions -> 701 in the FreePBX GUI.

Configuring Incredible PBX 2022 for VirtualBox

In order to take advantage of all the Incredible PBX applications, you’ll need to obtain IBM text-to-speech (TTS) and speech-to-text (STT) credentials as well as a (free) Application ID for Wolfram Alpha.

This Nerd Vittles tutorial will walk you through getting your IBM account set up and obtaining both your TTS and STT credentials. Be sure to write down BOTH sets of credentials which you’ll need in a minute. For home and SOHO use, IBM access and services are mostly FREE even though you must provide a credit card when signing up. The IBM signup process explains their pricing plans.

To use Wolfram Alpha, sign up for a free Wolfram Alpha API account. Just provide your email address and set up a password. It takes less than a minute. Log into your account and click on Get An App ID. Make up a name for your application and write down (and keep secret) your APP-ID code. That’s all there is to getting set up with Wolfram Alpha. If you want to explore costs for commercial use, there are links to let you get more information.

In addition to your Wolfram Alpha APPID, there are two sets of IBM credentials to plug into the Asterisk AGI scripts. Keep in mind that there are different usernames and passwords for the IBM Watson TTS and STT services. The TTS credentials will look like the following: $IBM_username and $IBM_password. The STT credentials look like this: $API_USERNAME and $API_PASSWORD. Don’t mix them up. 🙂

All of the scripts requiring credentials are located in /var/lib/asterisk/agi-bin so switch to that directory after logging into your server as root. Edit each of the following files and insert your TTS credentials in the variables already provided: nv-today2.php, ibmtts.php, and ibmtts2.php. Edit each of the following files and insert your STT credentials in the variables already provided: getquery.sh, getnumber.sh, and getnumber2.sh. Finally, edit 4747 and insert your Wolfram Alpha APPID.

Using AsteriDex with Incredible PBX

AsteriDex is a web-based dialer and address book application for Asterisk and Incredible PBX. It lets you store and manage phone numbers of all your friends and business associates in an easy-to-use SQLite3 database. You simply call up the application with your favorite web browser: http://pbx-ip-address/asteridex4/. When you click on a contact that you wish to call, AsteriDex first calls you at extension 701, and then AsteriDex connects you to your contact through another outbound call made using your default outbound trunk that supports numbers in the 1NXXNXXXXXX format.

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

Taking Incredible PBX 2022 for a Test Drive

You can take Incredible PBX on a test drive by dialing D-E-M-O (3366) from any phone connected to your PBX.

With Allison’s Demo IVR, you can choose from the following options:

  • 0. Chat with Operator — connects to extension 701
  • 1. AsteriDex Voice Dialer – say "Delta Airlines" or "American Airlines" to connect
  • 2. Conferencing – log in using 1234 as the conference PIN
  • 3. Wolfram Alpha Almanac – say "What planes are flying overhead"
  • 4. Lenny – The Telemarketer’s Worst Nightmare
  • 5. Today’s News Headlines — courtesy of Yahoo! News
  • 6. Weather by ZIP Code – enter any 5-digit ZIP code for today’s weather
  • 7. Today in History — courtesy of OnThisDay.com
  • 8. Chat with Nerd Uno — courtesy of SIP URI connection to 3CX iPhone Client
  • 9. DISA Voice Dialer — say any 10-digit number to be connected
  • *. Current Date and Time — courtesy of Incredible PBX

We Missed You During February

If you missed us last month, we missed you, too. We took a brief timeout to get some new eyeballs. Ah, the miracles of modern medicine. As the old song says, "I Can See Clearly Now." It’s been 35 years since I saw the world without the need for glasses. It’s good to be back.



Originally published: Monday, March 7, 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.
 



  1. Many of our purchase links refer users to Amazon when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from Amazon to help cover the costs of our blog. We never recommend particular products solely to generate Amazon commissions. However, when pricing is comparable or availability is favorable, we support Amazon because Amazon supports us. []

The SMS Toolkit: Integrating Text Messaging into Asterisk

Unless you’ve been living under a rock, you probably already know that most folks spend a lot more time texting on their smartphones rather than talking. So it only made sense to develop some useful SMS tools to get the most out of your Asterisk® PBX. Today we’re pleased to introduce version 1 of an SMS Toolkit for Incredible PBX® using any SMS-enabled DID from either Vitelity or VoIP.ms. Just text a simple message to your PBX, and Incredible PBX will do the heavy lifting and either call you back with the results or reply to your text message. You can whitelist an IP address in your firewall or retrieve news headlines or a weather forecast. You can also look up a phone number in your AsteriDex phone book and place a call through your PBX using either the Voice Dialer or speed dial codes. You can enable call forwarding from your PBX extension to your smartphone, or a simple SMS command brings the calling flexibility of DISA to your smartphone. Here’s a list of supported SMS commands:

  • help – Plays a list of supported SMS commands
  • news – Retrieves latest news headlines from Yahoo
  • weather – Retrieves weather report by zip code
  • wolfram – Siri-like query to Wolfram Alpha
  • whitelist – Whitelist a new IP address in your firewall
  • disa – Use DISA calling from your smartphone with password
  • cf on – Enable call forwarding from PBX extension to smartphone
  • cf off – Disable call forwarding from PBX extension
  • cf status – Status of call forwarding on PBX extension
  • asteridex – Use AsteriDex Voice Dialer to place a call from PBX
  • odbc – Use AsteriDex speed dial codes to place a call from PBX
  • sms – Dictate an SMS message and deliver from Google Voice on PBX

Prerequisites for SMS Toolkit Deployment

To get started, you’ll need a DID from Vitelity or VoIP.ms that supports SMS messaging. You’ll be hard-pressed to beat our Vitelity DID special which is summarized at the end of this article, but the choice is all yours. The way this works is you provide a forwarding email address in the Vitelity or VoIP.ms portal for delivery of incoming SMS messages. These emails will be sent to your PBX where we will use SendMail and our mailcall script to process the messages and deliver the results. SMS messaging is a free add-on with both Vitelity and VoIP.ms DIDs unlike some other providers.

Since Vitelity or VoIP.ms will be delivering incoming SMS messages by email, it means you’ll also need a dedicated account and fully-qualified domain name (FQDN) for your server, e.g. smsuser@mypbx.mydomain.com. While a dynamic IP address will work if you implement automatic FQDN updating on your PBX, a static IP address for your PBX is obviously preferable and all of our recommended cloud solutions provide that including RentPBX, Digital Ocean, Vultr, and HiFormance.

Implementing the SMS Toolkit for Asterisk

Let’s walk through the steps to put all the pieces in place for the SMS Toolkit:

  1. Add a Dedicated Account to Linux for SMS Messaging
  2. Configure PBX for Receipt of Incoming SMS Emails
  3. Obtain and Configure DID with Vitelity or VoIP.ms
  4. Install and Configure MailCall Components

1. Adding a Dedicated Account to Linux

To simplify the task of sifting through incoming emails, we’ll want to create a new Linux user account that can be dedicated to receipt of SMS email messages. The second and third commands will verify that the account has been created with support for incoming mail. Just log into your server as root and issue the following commands:

adduser smsuser --shell=/bin/false --no-create-home --system -U
ls /var/mail/smsuser
mail -u smsuser

 

2. Configuring SendMail to Receive Inbound Email

By design, both SendMail and the Incredible PBX firewall block incoming email. We’re going to change that but, in doing so, we wish to caution that we don’t want to turn your server into an open mail relay for the spammers of the world. Once we’ve opened up your server to receive email, it’s important to test it to be sure it’s not insecure. Because the SMS Toolkit is intended to be a dedicated application just for you as administrator of your server, it’s equally important not to publicize the FQDN of your server. Once the spammers find your email address, incoming email can be just a big a problem as serving as an open mail relay.

To add a firewall rule in Incredible PBX to support incoming SMTP mail traffic, issue the following commands:

echo "iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT" >> /usr/local/sbin/iptables-custom
iptables-restart

Configuring SendMail to receive incoming email requires a few changes in /etc/mail/sendmail.mc followed by a restart of the SendMail service.

Using your favorite editor: nano -w /etc/mail/sendmail.mc

1a. Search for the following line:

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

1b. Replace that line with the following two lines:

dnl # DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
FEATURE(`dnsbl',`dnsbl.njabl.org',`"550 Mail from " $&{client_addr} " rejected"')dnl


2a. Search for the following line:

FEATURE(`accept_unresolvable_domains')dnl

2b. Replace the line with the following and save the file:

dnl # FEATURE(`accept_unresolvable_domains')dnl

 
3. If you need an FQDN or dynamic DNS support, you can’t beat free. Here are some options.

4. Issue the following commands to complete the setup and restart SendMail:

yum -y install sendmail-cf
cd /etc/mail
make
echo "127.0.0.1 insert-your-server-FQDN-here" >> /etc/hosts
service sendmail restart

 
5. Using a browser from your desktop PC, test your server’s IP address to make certain it is not an open mail relay. All tests should report "Relaying Denied" or "Invalid route address."

6. Test your new mail account by sending an email to smsuser@your-server’s-fqdn. Wait a bit and check for email: mail -u smsuser. Then delete the email: > /var/mail/smsuser

3a. Configuring Vitelity DID for SMS Email Relay

With Vitelity DIDs, the first step is to order a DID that supports SMS, most do. Next, you need to decide whether this DID will be used for other purposes, such as serving as a trunk on your PBX for receipt of incoming calls. If this is your plan, then review the Vitelity offer at the bottom of this page. You’ll be hard-pressed to beat the price or the feature set. And you’ll also be providing support for our open source projects. Vitelity has been a Platinum Sponsor of Nerd Vittles for almost a decade.

If you only want to use the DID to support SMS messaging, then there’s little reason to sign up for the unlimited calling plan. Instead, choose the pay-per-minute (PPM) plan for your DID. It costs $1.49 a month. Don’t even both registering the trunk which will save your having to pay for misdialed calls and spam. SMS messages are free.

Once your DID is set up, go to My Numbers -> Local in the Vitelity web portal and choose SMS from the Action pull-down menu of your new DID:

In the SMS dialog, set up a password for messaging, disable international messages, and enter the email forwarding address for your incoming SMS messages. Save your settings, and you’re good to go.

3b. Configuring VoIP.ms DID for SMS Email Relay

If you plan to dedicate a DID to SMS messaging, two advantages of the VoIP.ms offering are (1) the price ($0.85/month on the pay by the minute plan with $0.40 setup fee and (2) you can forward incoming SMS messages to another SMS number (such as your smartphone) in addition to an email address if you want to use the DID for traditional SMS messaging while also deploying our SMS Toolkit. As noted above, there’s no charge for SMS messages at this time although VoIP.ms has warned (for years) that they may begin charging a penny a message. As long as Vitelity is free, I wouldn’t worry. 🙂

To get started, sign up for a VoIP.ms account and order a DID with SMS support. A cellphone is displayed beside each DID that supports SMS in their ordering page. As with Vitelity, there’s no need to register the trunk on your PBX if you only plan to use the SMS messaging component. Once your DID is provisioned, choose DID Numbers -> Manage DIDs in the VoIP.ms portal. Then edit the DID you just purchased. At the bottom of the form, fill in the SMS section as shown below:

4. Installing and Configuring MailCall on your PBX

MailCall was specifically designed for Incredible PBX 13-13 Full Enchilada but should work without modification with the latest version of Incredible PBX for Issabel 4. For other platforms including Debian, Ubuntu, and Raspbian, some adjustments may be necessary, and we have not yet had time to work out the kinks. There will be some so please hold off. Just to restate the obvious. Many of the MailCall features will not work until they are first configured on your server, e.g. Voice Dialing, Wolfram Alpha, and Voice SMS Messaging. All of the setups are covered in the Full Enchilada tutorial.

After logging into your server as root, issue the following commands to install MailCall:

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

 

For the DISA and Firewall WhiteList components of MailCall, a 5-digit PIN is required for obvious reasons. This needs to be set in two places: (1) in two chunks of dialplan code (/tmp/sms-dialplan.txt) to be added and (2) at the top of the mailcall script itself (/root/mailcall). Just search for XXXXX and replace the five X’s with a 5-digit secure PIN in all three places. Then issue the remainder of the commands below:

nano -w /tmp/sms-dialplan.txt
nano -w /root/mailcall
cat /tmp/sms-dialplan.txt >> /etc/asterisk/extensions_custom.conf
echo "asterisk ALL = NOPASSWD: /sbin/iptables" >> /etc/sudoers
echo "*/2 * * * * root /root/mailcall > /dev/null 2>&1" >> /etc/crontab
asterisk -rx "dialplan reload"

 

As a security precaution, you can only use SMS Toolkit to forward and unforward calls to your cellphone from a PBX extension designated for your use. You can associate more than one cellphone with a given extension, but you can’t associate multiple extensions with a single cellphone. To set up the association between your cellphone and an extension on your PBX, issue the following command while logged in as root where 8431234567 is your cell phone number and 701 is the associated extension:

asterisk -rx "database put CELL 8431234567 701"

 

Sending an SMS message of CF ON to your DID from 8431234567 will automatically forward extension 701 calls to your cell. Sending CF OFF will disable call forwarding for extension 701. Sending CF STATUS will retrieve the current status of call forwarding for extension 701.

Finally, a few words about the SMS whitelist command. It can be used in two ways. If you just text whitelist, then you will get a call back that first prompts for your PIN. You then will be prompted for the IP address to whitelist. Using your cellphone, enter the IP address using * for periods, e.g. 1*2*3*4 becomes 1.2.3.4. The alternative whitelist option doesn’t require a callback. Just send a text message with whitelist pin ip-address using periods, not *, e.g. WHITELIST 98765 1.2.3.4 would whitelist 1.2.3.4 if your PIN was correctly entered as 98765 and matches the entry in /root/mailcall. Enjoy!

Published: Monday, February 26, 2018



NEW YEAR’S TREAT: If you could use one or more free DIDs in the U.S. with unlimited inbound calls and unlimited simultaneous channels, then today’s your lucky day. TelecomsXChange and Bluebird Communications have a few hundred thousand DIDs to give away so you better hurry. You have your choice of DID locations including New York, New Jersey, California, Texas, and Iowa. The DIDs support Voice, Fax, Video, and even Text Messaging (by request). The only requirement at your end is a dedicated IP address for your VoIP server. Once you receive your welcome email with your number, be sure to whitelist the provider’s IP address in your firewall. For Incredible PBX servers, use add-ip to whitelist the UDP SIP port, 5060, using the IP address provided in your welcoming email.

Here’s the link to order your DIDs.

Your DID Trunk Setup in your favorite GUI should look like this:

Trunk Name: IPC
Peer Details:
type=friend
qualify=yes
host={IP address provided in welcome email}
context=from-trunk

Your Inbound Route should specify the 10-digit DID.

Why not add 300 New Wholesale Providers to Make Asterisk Shine while visiting TelecomsXchange. Enjoy!



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…

Introducing Phone Genie for Asterisk (Email Edition)

From Our Disney Cruise Family Scrapbook Almost two years ago, we introduced Phone Genie for Asterisk®. It let you reconfigure your Asterisk system remotely using your favorite web browser. This included the ability to set and adjust call forwarding, call waiting, and Do Not Disturb for any Asterisk extension. In addition, you could enter Asterisk CLI commands and execute a number of Linux system commands, all from the convenience of your web browser. Phone Genie for Asterisk remains one of the all-time favorite downloads of our readers.

Unfortunately, you don't always have access to a web browser when you're away from your Asterisk server. So today we introduce the perfect complement to the original Phone Genie with our new Email Edition. By following this quick tutorial, you can configure your Asterisk server to respond to any Asterisk CLI command which can be sent from almost any email client on the planet. And we'll perform all this magic with less than a dozen lines of bash scripting. Asterisk CLI commands have almost limitless possibilities. Use Phone Genie to check the status or change the functionality of just about any component on your server.

How It Works. The best way to explain how all of this works is to use a simple example. Let's assume you've left home and forgot to transfer your inbound calls for extension 701 to your cellphone. What we'll do is send a simple email message to a special user account on your Asterisk server that we've set up specifically to handle email directives for your server. Unlike most email addresses, we want this one to be unintuitive so strangers aren't sending messages to your server all the time. Let's assume the address is kxt1498@myserver.dyndns.org for this example. Using any email client, just address a message to that account. For the subject of the message, we'll use the following:

Asterisk: database put CF 701 6781234567

It doesn't really matter whether you include a message with the email. As long as the subject of the email is in the proper form, that's all that matters. The command above activates call forwarding for extension 701 and sends the calls to 6781234567. The command uses standard Asterisk CLI syntax.

On your Asterisk server, we'll have a simple bash script that runs every minute or two to check for new emails in the kxt1498 user's mailbox. If it finds a new message, it will parse the subject line, make certain there is a password match, and then send the command (unaltered) to the Asterisk Command Line Interface for processing. Here's an overview of all the CLI commands. The results of executing the command will be emailed to the address you've configured in the script. This works as both confirmation that your command has been executed and a security alert that your Asterisk system has been accessed using the Email Edition of Phone Genie. In the above example, you would receive an email at the address you've configured in the script with a subject of PhoneGenie. The body of the email would look like this:

Updated database successfully...database put CF 701 6781234567

Prerequisites. This software assumes you are using one of the Asterisk aggregations built on CentOS 5. We've tested it with PBX in a Flash. You'll also need an SMTP server (SendMail or Postfix) that is configured to send and receive emails to and from destinations on the Internet. You do not need a POP3 or IMAP mail server! We've tested this with Asterisk 1.4, but it should work fine with Asterisk 1.6 as well. FreePBX 2.5 or later is required for some functions.

Security Warning. Before we begin, let's pause for a moment to review the enormity of your problems if you do this wrong and to remind you that YOU ARE PROCEEDING AT YOUR OWN RISK. PBX in a Flash in particular is shipped with all outside access to your SMTP server blocked. We've obviously got to remove that layer of security for this software to function properly. But you need to be especially careful with SMTP servers because they can be used to relay SPAM to the entire world if you fiddle with settings that you don't understand. So... DON'T MAKE IMPROVEMENTS THAT AREN'T COVERED HERE UNLESS YOU KNOW WHAT YOU'RE DOING!

This software also gives certain email messages elevated privileges on your Asterisk server so that Asterisk itself can be reconfigured. If you compromise the email account name and password for this application, anybody worldwide can pretty much destroy the functionality of your server. In addition, calls to a certain extension could be rerouted to a very expensive destination on a cruise ship sailing around the world. If your dialplan permitted these calls and you had an account with automatic replenishment from a credit card or bank account, you've got a very expensive problem on your hands. That's one reason that reliable email notification of every Phone Genie transaction is critically important. If you're not getting timely notifications of each Phone Genie transaction, DO NOT USE THIS SOFTWARE until that problem is resolved!

Should you detect that your system has been compromised by receiving an email that indicates a command has been executed on your Asterisk server that you did not initiate, you should immediately disable or remove the script so that no further Phone Genie emails are processed on your server. Be sure to preserve any unprocessed Phone Genie emails for authorities as these may contain important information regarding the source of the emails. These email messages usually are deleted once Phone Genie completes execution of the associated Asterisk commands.

Overview. Here's the drill for today. First, we'll adjust both your hardware- based and IPtables firewalls to allow inbound email delivery to your Asterisk server. Second, we'll remove SendMail from your system and install and configure Postfix to handle the SMTP email chores. This will greatly simplify the security issues in locking down your server from unwanted emails. Depending upon your Internet service provider, installation of Postfix may break outbound email delivery from your server if your provider happens to block outbound traffic on port 25. We'll show you how to fix it. Third, we'll add a new user account on your Asterisk server that will be used exclusively to handle Phone Genie messages. Fourth, you're going to need a fully-qualified domain name for your Asterisk server so that email can be delivered reliably to your server. We'll walk you through getting this set up. Fifth, we'll install and configure the Phone Genie software and run some simple tests to make certain everything is working as it should. Sixth, we'll add the Phone Genie script as a cron job which will be run every couple of minutes to check for incoming Phone Genie emails. Finally, we'll review some of the Asterisk commands that can be executed using the Email Edition of Phone Genie for Asterisk.

Security Design. We've obviously given a great deal of thought to the security issues surrounding this application. The security model we've adopted works like this. First, for an email to get through to your Asterisk server, one and only one email address will work from the Internet. All other inbound email from the Internet will be rejected by Postfix. We strongly suggest you leave it that way. Your email address consists of the special username that we will create on your server plus a (hopefully new) fully-qualified domain name that points to your server. You are well advised to use and keep secret both a non-intuitive and complicated username AND a non-intuitive and complicated, fully-qualified domain name. Only this combination will let the email message through the Postfix filter! Using the correct username and a different FQDN that may also point to your server's correct IP address will nevertheless be rejected by Postfix. The third piece in the security model is the password. If you examine the sample Subject above, you will note that it begins with the word "Asterisk" followed by a colon, a space, and then the Asterisk CLI command. The word "Asterisk" is actually the password, and it can be changed to any password you like. So, if you change your password to FooBaR, then the subject of your message should look like this. Note that the colon followed by a space are also required!

FooBaR: database put CF 701 6781234567

Finally, it should be obvious but... DON'T SEND THESE EMAILS FROM AN UNTRUSTED CLIENT OR A PC IN A PUBLIC PLACE because your email message may get stored in a place that someone else could decipher how to access your server. If you wouldn't leave a $1000 bill beside the computer from which you're sending the email, don't send it! Otherwise, you may lose a good bit more than $1,000. To give you some idea of what's at risk with a compromised system, try sending the following email using your correct email address and password:

FooBaR: help

</sermon>

Firewall Configuration. For purposes of our example today, we're assuming that your Asterisk server is sitting behind a hardware-based firewall/router on a private subnet and that your Asterisk server includes a functioning software-based IPtables Linux firewall. This is the default PBX in a Flash setup that we always recommend. On your hardware-based firewall, you will need to redirect incoming TCP port 25 traffic to TCP port 25 on the private IP address of your Asterisk server. This change often requires a reboot of your firewall/router. Once that change is complete, log into your Asterisk server as root and edit /etc/sysconfig/iptables on PBX in a Flash systems. We need to add a new rule to IPtables which allows incoming TCP port 25 traffic through the firewall. Scroll to the bottom of the file and insert the following lines just above the COMMIT line:

# Allow inbound SMTP traffic on TCP port 25
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT

Save your additions to the file and then reload IPtables and your network:

service iptables stop
service iptables start
service network restart
service iptables status | grep "tcp dpt:25"

The last command should return an entry from IPtables showing TCP port 25 traffic is now being ACCEPTed into the server. If not, check your entries and repeat the process until this works.

Postfix Installation. Let's continue by removing SendMail from your server and installing Postfix. They both perform the same email functions, but the complexity of SendMail makes the likelihood of a configuration error too risky for us to sleep well. If you understand the intricacies of SendMail and feel comfortable implementing the security model we've described above, by all means, have at it. We'll be happy to share your results with the rest of our user community. In the meantime, here's the Postfix solution. While still logged into your server as root, issue the following commands to uninstall SendMail and install Postfix:

rpm -e --nodeps sendmail
yum -y install postfix

Choosing a Username and FQDN. Before we configure Postfix, you need to decide upon a user account name for your Asterisk server to manage Phone Genie messages. And you also need a fully-qualified domain name which points to the public IP address of your Asterisk server. As mentioned above, we strongly recommend that the username and FQDN be obscure and unguessable. For example, a combination of letters and numbers that don't spell words are good choices. Something like dlrpzh7b3@dhf34.nerdvittles.com will help you sleep well. If you don't have a static IP address and dedicated domain for your server that you can manage, then use an equally obscure FQDN from a provider such as dyndns.org. Something like dhf34.dyndns.org works. You then can configure your Asterisk server to automatically keep your dynamic IP address current. We're going to use these entries as examples below. Obviously, you should choose different entries!

To create the new user account on your server using whatever name you have chosen, here are the commands to issue while still logged into your server as root. Just substitute your chosen username for dlrpzh7b3 in both commands. Be sure to choose a secure password, too.

useradd dlrpzh7b3
passwd dlrpzh7b3

Configuring Postfix. Now let's get Postfix set up for maximum protection. First, move to postfix directory: cd /etc/postfix. Now edit main.cf: nano -w main.cf. Search for the inet_interfaces line in the file: Ctrl-W, inet_interfaces =. Add a hash mark to the beginning of each uncommented inet_interfaces line so that your entries look like this:

#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost

Next, search for mydestination in the file: Ctrl-W,mydestination =. Comment out each of the lines except the one that looks like this:

mydestination = $myhostname, localhost.$mydomain, localhost

Now add the private IP address of your Asterisk server and your FQDN chosen above to the line so that it looks like this. Don't forget the commas and keep everything on one line.

mydestination = $myhostname, localhost.$mydomain, localhost, 192.168.0.118, dhf34.nerdvittles.com

Finally, move to the last line in the file and make it look like this, all on one line:

smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/access, permit_mynetworks, reject_unauth_destination

Save your changes to the file: Ctrl-X, Y, then Enter. Now edit /etc/postfix/access. Move to the very bottom of the file and add two new lines with the following entries using the actual email address and FQDN you chose above instead of the examples. The first line tells Postfix to allow emails addressed to the specified email recipient. The next line tells Postfix to reject all other emails addressed to anyone at this domain. Other domains and public IP addressing are blocked by our mydestination entry above.

dlrpzh7b3@dhf34.nerdvittles.com OK
dhf34.nerdvittles.com REJECT recipient rejected

Save your changes to the file: Ctrl-X, Y, then Enter. Now issue the following two commands:

postmap /etc/postfix/access
service postfix restart

Testing Postfix. Now comes the important part. We need to make sure that outbound emails from your Asterisk server are delivered. And we need to make sure that incoming emails ONLY to the one email address you've designated are received and that all other emails from the Internet are rejected. We can't stress enough how important all three of these tests are. If your Postfix implementation doesn't pass all three, DO NOT PROCEED!

Testing outbound email with Postfix is easy. While logged into your server as root, issue the following command using a destination email address (instead of yourname@gmail.com) where you regularly receive emails:

echo "Hi there" | mail -s Test yourname@gmail.com

Count to 20 and refresh your email's Inbox. If the message is there, you've passed Test #1. If not, check your junk mail folder. If it's still not there, try another email address if you have one. Still no cigar? Then your Internet Service Provider is probably blocking email generated from downstream email servers. For tips on remedying the problem, see this message thread on the PBX in a Flash forums. You might also want to review the Postfix tutorial on dyndns.com. Here's another good tutorial on setting up a Gmail relay using Postfix. Then run the test again until you achieve success.

Testing inbound email to your designated email address is Test #2. Use a web client and send an email message to dlrpzh7b3@dhf34.nerdvittles.com substituting the actual email address you have chosen for your server. Count to 20, log into your server as root and type the following command to retrieve email for user dlrpzh7b3: mail -u dlrpzh7b3. The server should report that you have one new message. Type "d 1" and then "q" to delete the message and quit the mail app. If no email arrives, check the Inbox on your sending client to see if the message bounced and, if so, why. Check your email entries in /etc/postfix/access and /etc/postfix/main.cf for typos and review the steps in Configuring Postfix above. Then repeat the test until you successfully send a message to your designated email address.

Testing inbound email to an unauthorized email address on your Asterisk server is Test #3. For this test, we want to make sure that an email sent to the root account on your server fails. What you'll need for this test is the FQDN that was chosen above. Then, using a mail client, send an email message to root@dhf34.nerdvittles.com using your actual FQDN. Count to 20, log into your server as root, and type: mail. The message you sent should NOT be in the Inbox. Repeat the test by sending a message to root and dlrpzh7b3 @the actual IP address of your Asterisk server. These, too, should both fail. Once you get a passing grade on all three tests, we can move on. The hard part is behind you!

Installing Phone Genie. While logged into your server as root, issue the following commands:

cd /root
wget http://pbxinaflash.net/source/nv/phonegenie.tgz
tar zxvf phonegenie.tgz
rm phonegenie.tgz

Configuring Phone Genie. While still logged into your server as root, edit phonegenie.sh. You will note that there are 3 fields that need to be configured at the top of the file: user, pw, and notify. The user field is the designated user account name that will be used for incoming emails (dlrpzh7b3 in our example). The pw field is the word in every email Subject that precedes the colon, space, and Asterisk CLI command (Asterisk in our example). The notify field is a reliable email address where you regularly receive emails promptly. This is where the results of your Phone Genie email commands will be sent. Choose this email address wisely, as if your bank account depended upon it. It does! Once you have filled in the 3 fields (preserving the quotation marks around each entry), save the file with your changes.

Testing Phone Genie. Now we're ready to try everything out. Using an email client, send an email message to dlrpzh7b3@dhf34.nerdvittles.com (using your actual Phone Genie email name and FQDN). For the Subject, enter the following (substituting the password you created above for Asterisk)... Asterisk: help

After counting to 20, log into your Asterisk server as root and issue the following command:

/root/phonegenie.sh

You should see a display of all of the Asterisk CLI commands and within a minute or so, you should receive an email with the same information at the email address you entered into the notify field in phonegenie.sh in the previous step.

Installing Phone Genie as a Cron Job. Once you have tested several Phone Genie emails manually and you're satisfied that everything is working reliably, you can set up the Phone Genie shell script as a cron job. It should be set to execute every minute or every couple of minutes throughout the day and night. Edit /etc/crontab and insert the command shown below to have the script execute every 2 minutes:

*/2 * * * * root /root/phonegenie.sh > /dev/null

Sample Phone Genie Commands. In addition to all of the traditional Asterisk CLI commands, Phone Genie also supports a number of commands that are specific to FreePBX. These additional commands let you configure call forwarding, call waiting, do not disturb, system speed dials, and blacklist entries on your Asterisk server. For Asterisk CLI command syntax, consult voip-info.org. For FreePBX command syntax, see the listing below. Enjoy!

database put CF 302 8338116666 * Call Forwarding Enable
database del CF 302 * Call Forwarding Disable

database put CFB 302 8238221234 * Call Forwarding on Busy Enable
database del CFB 302 * Call Forwarding on Busy Disable

database put CFU 302 8038445689 * Call Forwarding Unavailable Enable
database del CFU 302 * Call Forwarding Unavailable Disable

database put CW 302 ENABLED * Call Waiting Enable
database del CW 302 * Call Waiting Disable

database put DND 302 YES * Do Not Disturb Enable
database del DND 302 * Do Not Disturb Disable

database put blacklist 6781234567 1 * Blacklist a number
database del blacklist 6781234567 * Remove blacklisted number

database put sysspeeddials 99 6781234567 * Set up Speed Dial 99
database del sysspeeddials 99 * Remove Speed Dial 99
(NOTE: Be sure you enable Feature Code *0 prefix in FreePBX!)

We wish all of you a very Merry Christmas!



Need help with Asterisk? Visit the PBX in a Flash Forum.
Or Try the New, Free PBX in a Flash Conference Bridge.


whos.amung.us If you're wondering what your fellow man is reading on Nerd Vittles these days, wonder no more. Visit our new whos.amung.us statistical web site and check out what's happening. It's a terrific resource both for us and for you.


 

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