Home » Search results for 'voip.ms'

Search Results for: voip.ms

The Most Versatile VoIP Provider: FREE PORTING

Oldie But Goodie: VoIP.ms, The Most Versatile VoIP Provider



We all are fortunate to have an extraordinary selection of options when it comes to VoIP Providers. For redundancy and reliability, nobody quite matches Skyetel. For FreePBX® and SIP phone integration, ClearlyIP is the hands-down winner. And, if you’re searching for the Most Versatile VoIP Provider, look no further than VoIP.ms, now with a $10 signup credit with your first deposit to kick the tires. We are thrilled that all three of these providers are Platinum Sponsors of Nerd Vittles and our open source projects. Here’s our VoIP.ms signup link.

As we have often stressed, the beauty of VoIP is not having to put all your eggs in one basket when it comes to communications. Most of the offerings we write about are free when not in use. So, unlike in the MaBell days, you lose nothing by signing up with multiple providers and enjoying the best of all worlds. Today we want to highlight what makes VoIP.ms extra special.

VoIP.ms Points of Presence

When it comes to Points of Presence (POPs), VoIP.ms covers all the bases. This matters because the closer your VoIP provider is to the physical location of your PBX, the better your calls will be. In the case of VoIP.ms, your choice of POPs is impressive. In the United States, there are multiple POPs in Atlanta, Chicago, Dallas, Denver, Houston, Los Angeles, New York, San Jose, Seattle, Tampa, and Washington, D.C. In Canada, you can choose between multiple POPs in Montreal, Toronto, and Vancouver. For our international friends, there are POPs in Amsterdam, London, Paris, and Sydney.

VoIP.ms DID Options

In addition to free number porting, VoIP.ms has an impressive array of DIDs from which to choose. They offer DIDs in virtually every state, province, and country in the world as well as toll-free and fax numbers in many locations with per minute and unlimited calling options.

Obtaining VoIP.ms SIP URIs

There are now more than 2,000 VoIP networks that support SIP URI access. Using a SIP URI dialing prefix, you can call any of the referenced networks @sipbbroker.com. The beauty of SIP URI calling is the calls typically are free worldwide regardless of duration. There are a number of ways to obtain a SIP URI for your PBX. Perhaps the easiest is to set up the PUBLIC Incredible PBX cloud platform that we previously introduced. Then you can create as many SIP URIs as you like, and they can be used to perform any task that’s available with Asterisk®. If you’re not quite ready to make that leap, virtual SIP URIs are available from VoIP.ms for 25¢ a month. SIP URIs are treated just like DIDs with incoming calls billed at ⅒¢ per minute.

VoIP.ms Incoming Call Routing

For call routing, the options are equally impressive. In fact, you may decide you don’t need a PBX at all. VoIP.ms supports SIP and IAX2 trunk registrations using credentials or IP address, a customizable IVR, a call queue, conferencing, call forwarding, SIP URI forwarding, call hunting, ring groups, callback, DISA, custom music on hold, voicemail transcription, and impressive call failover options for each of the following conditions: busy, unreachable, and unanswered calls. You can also perform CNAM lookups on incoming calls as well as setting the ring time, customizing each DID’s voicemail setup, and choosing whether to record calls.

VoIP.ms Outbound Call Pricing

No article would be complete without some mention of pricing. VoIP.ms is not the cheapest provider on the planet. But, as the old saying goes, you get what you pay for. Calls to toll-free numbers are free. While that may seem obvious, it is the exception rather than the rule in the VoIP world. Calls to US-48 destinations are a penny a minute and are billed in six second increments. Calls to most Canadian destinations are about a half-cent per minute. Calls to Mexico are just over a penny a minute billed in one minute increments. International calls vary based upon destination and latest published rates. International calls are blocked unless you enable them, and you can choose the countries you wish to enable as well as a dollar limit.

VoIP.ms Messaging Services

One of our favorite VoIP.ms features is the variety of SMS and MMS messaging options they provide. Virtually all of their DIDs now support messaging. With incoming messages, you have the choice of routing the message to an email address, another SMS destination, the VoIP.ms Message Portal, an SMS URL callback destination, and now an SMS SIP account. Our tutorial below sets up SMS SIP messaging with Incredible PBX® 2020 or 2021. You then can send quick messages in response to incoming calls on your Clearly Anywhere softphone.

Configuring VoIP.ms for SMS SIP Messaging

Prerequisites: DID supports messaging, SMS SIP messaging enabled on the DID

First, create an Asterisk SubAccount using the SIP protocol with User/Password Authentication. In the Security section, enter the public IP address of your PBX, and Save your Settings. Next, acquire a DID in the VoIP.ms portal. Then choose the Manage DIDs option and edit your DID configuration. For Call Routing, select the SIP/IAX option and pick your SubAccount. Choose a DID POP near your PBX location. In the Message Service section, enable SMS SIP Account and pick your SubAccount. Then Apply Changes.

Configuring Incredible PBX for SIP Messaging

Prerequisites: PJsip VoIP.ms Trunk, PJsip Extension for SMS, sms-in and sms-out Contexts

Both PJsip Trunks and PJsip Extensions in FreePBX now support a Messages Context option in the Advanced tab of the setup GUI. Using the sms-in and sms-out contexts documented below, FreePBX now can process incoming and outgoing SMS messages. A typical use case in the Incredible PBX 2020 would be to quickly respond to an incoming call to the Clearly Anywhere app on your smartphone to indicate that you were in the midst of another call and would return the caller’s call. It is anything but a robust SMS messaging application for your smartphone, but it is a welcome addition for many mobile users that have to juggle both cellphone calls and office calls forwarded from a PBX to your smartphone. VoIP.ms has developed an excellent SMS Management Portal that is included in the VoIP.ms Dashboard. It allows you to read, respond, and manage SMS messages sent to your VoIP.ms DIDs.

Once you have completed the necessary setup steps on the VoIP.ms side, there are three steps to activate SMS SIP messaging with Incredible PBX: (1) create and register your VoIP.ms PJsip Trunk, (2) create and configure a PJsip extension to receive incoming calls and SMS messages, (3) add the sms-in and sms-out contexts to extensions_custom.conf dialplan.

(1) Create a PJsip Trunk for VoIP.ms in FreePBX to process calls and SMS messages:


In the PJsip Settings tab, fill out the General tab. The Username will be your VoIP.ms account number followed by an underscore and then the name of the SubAccount you created above, e.g. 12345_mypbx. The Password will be the password you assigned to your VoIP.ms SubAccount. For SIP Server, enter VoIP.ms POP assigned to your DID, e.g. atlanta1.voip.ms. Accept the remaining defaults in the General tab. Click on the Advanced tab and scroll down to Message Context and enter sms-in. Click Submit and Reload your Dialplan.

(2) Next create a PJsip Extension in the FreePBX portal. This will be used to process calls and send SIP messages. NOTE: Incredible PBX ships with a number of chan_sip extensions preconfigured. Do NOT use these. You need to create a PJsip extension. The General tab should look something like this:



Click on the Advanced tab and scroll down to Max Contacts and enter a number that is one more than twice the number of phones that will be connected simultaneously to this extension. For example, if you have 3 smartphones connecting to this extension, enter 7. Scroll down to Message Context and enter sms-out. Click Submit and Reload your Dialplan.

(3) Finally, cut-and-paste the following code into the bottom of extensions_custom.conf in the /etc/asterisk directory:

[sms-out]
exten => _.,1,NoOp(Outbound Message dialplan invoked)
exten => _.,n,NoOp(To ${MESSAGE(to)})
exten => _.,n,NoOp(From ${MESSAGE(from)})
exten => _.,n,NoOp(Body ${MESSAGE(body)})
;
; add your VoIPms info in the next 3 lines
exten => _.,n,Set(VOIPMS_ACCOUNT="123456_subacct")
exten => _.,n,Set(VOIPMS_POP="atlanta.voip.ms")
exten => _.,n,Set(VOIPMS_TRUNK="VoIPms-PJsip") ; actual VoIP.ms trunk in FreePBX
;
exten => _.,n,Set(NUMBER_TO=${CUT(CUT(MESSAGE(to),@,1),:,2)})
exten => _.,n,Set(EXTENSION_FROM=${CUT(CUT(MESSAGE(from),@,1),:,2)})
;
; Now map your sending extensions EXTENSION_FROM to corresponding DIDs NUMBER_FROM
exten => _.,n,Set(CASE_701=6005550101) ; ext 701 msgs originate from 6005550101
exten => _.,n,Set(CASE_702=6005550102) ; ext 702 msgs originate from 6005550102
exten => _.,n,Set(CASE_703=6005550101) ; ext 703 msgs originate from 6005550101
;
exten => _.,n,Set(NUMBER_FROM=${CASE_${EXTENSION_FROM}})
exten => _.,n,Set(ACTUAL_FROM="${NUMBER_FROM}" )
exten => _.,n,Set(ACTUAL_TO=pjsip:${VOIPMS_TRUNK}/sip:${NUMBER_TO}@${VOIPMS_POP})
exten => _.,n,MessageSend(${ACTUAL_TO},${ACTUAL_FROM})
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _.,n,Hangup()
;-------------------------------------------------------------------------

[sms-in]
exten => _.,1,NoOp(Inbound SMS dialplan invoked)
exten => _.,n,NoOp(To ${MESSAGE(to)})
exten => _.,n,NoOp(From ${MESSAGE(from)})
exten => _.,n,NoOp(Body ${MESSAGE(body)})
;
; enter your default incoming SMS extension below
; if you want SMS messages delivered to multiple extensions,
; clone additional MessageSend lines below with extension numbers
exten => _.,n,Set(EXTENSION=701)
;
exten => _.,n,Set(ACTUAL_FROM=${MESSAGE(from)})
exten => _.,n,Set(HOST_TO=${CUT(MESSAGE(to),@,2)})
exten => _.,n,Set(NUMBER_TO=${MESSAGE_DATA(X-SMS-To)})
exten => _.,n,MessageSend(pjsip:${EXTENSION}@${HOST_TO},${ACTUAL_FROM})
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _.,n,Hangup()
;-------------------------------------------------------------------------

In the pasted [sms-out] context, insert your actual VOIPMS_ACCOUNT, VOIPMS_POP, and VOIPMS_TRUNK name in the lines provided. Then map each extension from which you wish to send SMS messages to a VoIP.ms DID on your PBX in the lines provided. In the pasted [sms-in] context, enter the EXTENSION number which should receive incoming messages from the PJsip trunk in which you designated [sms-in] as the Message Context. There is no magic to the [sms-in] context name. If you have more than one PJsip trunk, simply create additional incoming contexts (such as [sms-in-2]) for each additional trunk and clone the [sms-in] code designating the desired extension to receive incoming messages from each DID. For the [sms-out] context, it can be used as the Message Context for multiple extensions that should be enabled to send outbound SMS messages.

Save the file, and reload the Asterisk dialplan: asterisk -rx "dialplan reload"

Once all the pieces are in place, SMS messages sent to your VoIP.ms DID will be delivered to the FreePBX trunk registered to the SMS SIP destination specified in your VoIP.ms DID setup. And here’s one more tip. If you happen to have a Yealink T46G (not T48G) or a Grandstream GXV phone that is also registered to that extension, the messages will also pop up on your desktop phone with an alert tone. On Grandstream GXV Android phones, we recommend dragging the SMS app to the main screen so that the incoming message count appears beside the SMS icon when new messages are received.

Our special thanks and much of the credit for this SMS/SIP solution for Asterisk goes to Stepan Novotill and the participants in this thread on the VoIP-Info Forum.

Signing Up for VoIP.ms Service

Please consider using the Nerd Vittles referral link should you decide to sign up for VoIP.ms services. These referral commissions help to defray the costs of maintaining Nerd Vittles and the Incredible PBX open source project. Many thanks.
 

Originally published: Monday, October 12, 2020  Updated: Saturday, August 28, 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.
 



Wazo Trunks Tutorial: Installing a VoIP.ms SIP Trunk



Setting Up a SIP Trunk at VoIP.ms

VoIP.ms has one of the best customer portals in the business. Spend some time getting familiar with it!

1. Sign up for a VoIP.ms account.

2. Login to your VoIP.ms account. You can order a DID here.1

3. Create a new Subaccount to use with Wazo. Usernames begin with your account number, an underscore character, and up to 12 alphanumeric characters of your choosing. Be sure to specify User/Password Authentication with Asterisk as the Device Type. The remaining defaults are fine. Here is a sample to follow:

4. If you add an Internal Extension Number to your subaccount during setup, then Wazo can receive SIP URI calls through VoIP.ms without exposing your Wazo server directly to the Internet. For example, if your VoIP.ms main account number was 199555, and you assigned the 701 extension number to your subaccount, and you registered your trunk to atlanta.voip.ms, then any device with SIP capabilities worldwide could call you at the following SIP URI at little or no cost: sip://199555701@atlanta.voip.ms.

5. If you purchased a DID from VoIP.ms, choose Manage DIDs to configure it for use with Wazo. Find your DID in the listing of your DIDs and click Edit DID icon. For Routing, choose SIP/IAX and assign your subaccount to the DID. For DID Point of Presence (POP), choose a server that’s close to your server.

6. If you want to enable Call Failover, first set up your alternate numbers or mobile numbers in DID Numbers:Call Forwarding. Then you can click Show Failover Options above and route unreachable calls to an alternate phone number, SIP URI, or another registered DID.

7. If your DID supports SMS messaging, you also can specify a forwarding email address and/or SMS number to receive SMS messages sent to this DID. You’d be amazed how many SMS messages we receive that are addressed to our home phone number which happens to be a VoIP.ms DID supporting SMS messaging.

Setting Up a VoIP.ms SIP Trunk on Wazo

SIP trunks are different than traditional Ma Bell phone lines. With SIP trunks, you need not use the same provider to process incoming and outgoing calls. With some SIP providers including VoIP.ms, incoming and outgoing calls are managed on the same server. To place outgoing calls with VoIP.ms, all you need is a subaccount with credentials. You do NOT need a DID. To receive calls from Plain Old Telephones, you will need a VoIP.ms DID. To receive SIP calls, you will need to create an Internal Extension Number as documented in Step #4 above.

In the Wazo GUI, create a new VOIP.ms SIP Trunk by choosing IPBX:Trunk Management:SIP Protocol. Click on + Add to open a new template.

In the General tab, fill in the blanks using your VoIP.ms subaccount credentials including the DID POP to which you wish to register your VoIP.ms trunk:

In the Register tab, check the Register option and fill in the blanks using your subaccount credentials from VoIP.ms as well as the VoIP.ms POP server:

In the Signalling tab, set DTMF, Monitoring, and specify your preferred Codec:

In the Advanced tab, set Insecure to ALL, Port = 5060, and From field-User to your subaccount name:

Click SAVE when you’ve finished.

Wazo will not actually process incoming and outgoing calls through this VoIP.ms trunk until you configure an outgoing route in IPBX:Call Management:Outgoing Calls and an incoming route using IPBX:Call Management:Outgoing Calls if you have a DID. Outgoing and Incoming call routing are covered in separate tutorials.

  1. If your DID is strictly for residential use, you may be able to take advantage of Martin’s offer of a $2 unlimited monthly flat rate price match with Anveo that was announced on DSLreports. Just open a support ticket after you sign up for the DID and mention Martin’s offer with a link to the DSL Reports thread. No guarantees! []

The Perfect Threesome: iNum + VoIP.ms + Google Voice

We’ve got a terrific new VoIP development for you today especially for those who travel internationally. For several years, a VoIP company called VoxBone has been pushing hard to establish an International Number™ (iNum™) for every phone on the planet so that every telephone could call every other telephone at little or no cost. They’re not quite there, but two recent events will certainly hasten the implementation. The first was an announcement from VoIP.ms that they would provide a free iNum DID and free iNum calling to every one of their customers with a credit balance in their account. The second was last week’s announcement from Google that they, too, would support free iNum calling worldwide using any Google Voice account. Today, we’ll show you how to take advantage of these two developments to begin making free calls worldwide using your PBX in a Flash™ server, a WiFi-enabled smartphone, and an available WiFi connection. Basically, the plan is to use free iNum calling to get back to your PBX for dial tone and then use DISA for free Google Voice calling in the U.S. and Canada.

Until everyone has an iNum or Google opens up Google Voice outside North America, the hidden beauty of iNum for those of us who have both is the cost savings that can be achieved by phoning home with iNum from anywhere in the world for free. And, once the call hits your Asterisk® PBX, it’s incredibly simple to route the call to DISA, prompt for a password, and then place a call to anywhere in the U.S. or Canada at no cost with PIAF2™ and Google Voice.

This can be accomplished in several ways. First, you can download a SIP phone and use it in conjunction with your VoIP.ms account and a smartphone to make free iNum calls from any WiFi hotspot in the world. Bria is our favorite on both the iPhone/iPad and Android platforms. If $10 is too rich for your blood, there are some free alternatives: CSipSimple for Android and 3CXPhone for Android or iPhone. A second alternative is to use Google Voice or Gtalk to connect back to your PIAF2 server via iNum and then use DISA and your local trunks to place outbound calls. A final alternative is to take advantage of the numerous local numbers now available in many countries to phone home using iNum. The only cost of these calls is the cost associated with calling the local number. You’ll find a list of the local phone numbers to make these calls on the iNum web site or in the footnote to this article.1 So today we’ll show you how to set up your PIAF2 server to support free iNum calling. It’s a 15-minute project.

VoIP.ms Setup. To get started, if you’re not already a customer, register for a voip.ms account by filling out their registration form.

Once you submit the form, you’ll have to confirm your registration by clicking on the link that is emailed to you. Then you’re ready to login with your email address and the password you set up when you created your account. That’ll bring you to the Main Portal Page for your new voip.ms account.

You’ll need a positive balance in your VoIP.ms account in order to create your free iNum account so deposit some money using PayPal or a credit card by clicking Finances, Add Funds. The minimum deposit is $25 which can be used to make penny a minute calls in the U.S. and Canada or equally reasonable calls to any phone number in the world. We won’t be doing any of that today. For today, all of our calls will be free thanks to iNum and the generous support of VoIP.ms. But the nest egg will be there as a backup to your other PIAF2 VoIP providers which is an excellent idea anyway.

Like Vitelity, VoIP.ms lets you create subaccounts to compartmentalize your VoIP services. This makes it easy to use VoIP.ms on multiple PIAF2 servers or even standalone SIP telephones. It also provides added security by separating out account names and passwords for VoIP services from your main VoIP.ms portal account that let’s you manage your settings and VoIP funding, a very good idea. So let’s first set up an account to use with Asterisk just to show you how easy it is.

From the Main Portal Menu, click on Subaccounts, Create Subaccount. The Subaccount creation form will display. Fill it out so it looks something like this. Just click on the form below to enlarge it if you want a better view.

Once you’ve clicked the button to create the subaccount, it takes about a minute for voip.ms to activate it. Then click Main Menu, Portal Home. The bottom of the portal page will now show your subaccount.

Let’s create one more subaccount. We’ll use this one so that we can access VoIP.ms from a standard SIP app running on our iPhone or Android device. We can use the subaccount either to make outbound calls directly from VoIP.ms on a pay per minute basis, or we can use it to make free iNum calls. To create the subaccount, repeat the process above and fill in the blanks using your own credentials and a very secure password. Be sure to choose ATA device, IP Phone or Softphone for the Device Type. We always leave International Calls Disabled unless we really plan to make international calls. This will not affect your ability to make iNum calls, and it reduces your financial exposure in the event your subaccount is compromised. Never, ever use auto-replenishment from your credit card on a VoIP provider account from any provider.

Before we get too far along, let’s activate your new iNum DID. Click on DID Numbers, Order DID. When the DID Order Form displays, click on the iNum link to order your free iNum DID.

When the iNum DID order form displays, fill out the form by clicking on the POP location nearest to your server. Then, in the SIP/IAX Routing column, be sure to select the Subaccount we created previously rather than the default Main Account. Finally click the Click Here to Order button.

You’ll get a Confirmation display that shows your new iNum DID. Write it down! We’ve already set up the proper routing for your new iNum DID in the previous step so you can ignore the Managing Your DID message.

That completes the setup of your VoIP.ms account with your free iNum DID. Now let’s configure your PBX in a Flash server to support VoIP.ms and iNum. We’re assuming you already have a PBX in a Flash server configured with at least one Google Voice account activated. If not, stop here and complete that step using the PIAF2 tutorial and optionally the Incredible PBX 3 and Incredible Fax 2 tutorial.

Smartphone SIP Client Setup. We used the free cSipSimple Android app to set up a connection with our second subaccount at VoIP.ms using cSipSimple’s Basic Setup Wizard. Here are the entries required to gain connectivity:

Once your SIP client is connected to VoIP.ms through your smartphone, you can make free iNum calls using this dial syntax: 0118835100xxxxxxxx where xxxxxxxx is the last 8 digits of your iNum beginning with 0. As noted previously, you do NOT have to enable international calls on your VoIP.ms subaccount for these calls to go through.

PBX in a Flash iNum Setup. We’ll be using the FreePBX GUI to configure PBX in a Flash to support iNum. Using your browser, log into the IP address of your server: http://ipaddress/admin. When prompted for your username and password, use maint and whatever FreePBX password you assigned when your server was set up.

To simplify things, we’re going to set up 2 trunks: one for your VoIP.ms subaccount and another for iNum. Begin by choosing Trunks, Add SIP Trunk in the FreePBX GUI. For Trunk Name, use voipms. For Maximum Channels, choose 2. For the Dial Pattern, enter 1 | NXXNXXXXXX and, in Outgoing Settings for the PEER Details, enter the following using your subaccount name and password as well as the POP you chose for your subaccount:

canreinvite=yes
nat=yes
context=from-trunk
host=atlanta.voip.ms
secret=subacctpw
type=peer
username=137786_myinum
disallow=all
allow=ulaw
fromuser=137786_myinum
trustrpid=yes
sendrpid=yes
insecure=invite
qualify=yes

Leave all the fields for Incoming Settings blank. For the Registration String, the syntax is subacctname:subacctpw@atlanta.voip.ms:5060/8835100xxxxxxxx. Using our example and assuming you’re using the Atlanta POP, the entry would look like this where xxxxxxxx is your own 8-digit iNum beginning with 0:

137786_myinum:secretPassword21@atlanta.voip.ms:5060/8835100xxxxxxxx

Verify that your server got a successful registration with your VoIP.ms subaccount by clicking Tools, Asterisk Info, SIP Info.

Now click Setup, Trunks, Add Custom Trunk. For Trunk Name, use iNum. For Maximum Channels, choose 5. For Dial Pattern, use 0XXXXXX. including the period! For Custom Dial String, use SIP/0118835100$OUTNUM$@voipms.

Next, we need to create an Inbound Route. Use your full iNum DID number in the DID Number field, e.g. 8835100xxxxxxxx where xxxxxxxx is your personal iNum beginning with a 0. Activate CallerID Superfecta for the CID Lookup Source. And choose a Destination for the incoming iNum calls. This could be an extension, an IVR, or whatever else you’ve set up on your server. For now, route it to a working extension on your PBX so we can test it below. Then you can edit the inbound route and change it to any destination.

Finally, create an Outbound Route. Name the route OutiNum. For the Dial Pattern, use 0XXXXXX. with the trailing period. For the Trunk Sequence for Matched Routes, choose inum. After you save the trunk settings, move it to the top of your trunk listing in the right column of FreePBX. What this route does is allow you to call other iNum numbers (including your own) by simply dialing the last 8-digits of any iNum that begins with 8835100 or 0118835100. These 8 digits will ALWAYS begin with a 0.

Now let’s modify at least one of your existing Google Voice Outbound Routes so that you also can make iNUM calls with Google Voice by dialing from any extension using the full 8835100xxxxxxxx international number. Go to Outbound Routes and click on the name of one of your Google Voice trunks. Add the following new Dial Pattern and click Submit Changes: 8835100XXXXXXXX

Taking iNum for a Spin. To test things out, use a phone connected to an extension other than the one you chose to route incoming iNum calls to above. Dial the last 8 digits of your own iNum DID, and that extension should begin ringing. Answer the other extension and make sure you have audio in both directions. Next, dial your complete iNum DID beginning with 8835100. This should also cause the other extension to ring even though the call was initiated through your Google Voice trunk. If you’d like to get a Weather Report by Zip Code, we’ve set up an iNum for you to try. Just dial 09901997.
Enjoy!

Originally published: Monday, February 27, 2012



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…

  1. Local iNum Access Numbers include the following: []

VoIP Messaging and The Golden Rule with Incredible PBX



If you want to continue to use SMS and MMS messaging on your VoIP platform, then today’s navigation guide is worth a careful read. Suffice it to say, this is what happens when the feds shirk their responsibilities and leave it to the foxes to guard the chicken coop.

The Golden Rule with all oligopolies is that he who has the gold makes the rules. And, make no mistake, there are stringent new rules for VoIP messaging. Not surprisingly, the FCC has jumped on the cellphone provider bandwagon. You can read all about the new FCC rules here. And the cellphone oligopoly has implemented additional requirements of its own that are enforced through a new organization called The Campaign Registry (TCR).

Any business that sends text messages to U.S. or Canadian mobile phone numbers is now required to register with TCR and obtain a 10-digit long code (10DLC) number. This number is used to identify the sender of each text message and to help the mobile carriers filter out spam (according to the carriers). To register with TCR, businesses must provide information about their company, including their legal name, EIN, and contact information. They must also submit a sample text message and identify the purpose for which they will be using SMS messaging.

What are TCR’s messaging guidelines?

  • Obtaining permission from recipients before sending them text messages
  • Clearly identifying the sender in each text message
  • Providing a way for recipients to opt out of receiving future text messages
  • Avoiding sending spam or unsolicited text messages

Carriers have imposed additional restrictions for certain types of messages so-called SHAFT content: sex, hate, alcohol, firearms, and tobacco (CBD is included). And, unlike email messages, SMS traffic cannot be encrypted so the providers can and do scan the contents of every message that hits their networks. If a business fails to comply with TCR’s requirements, the sender may face penalties including fines and suspension from sending text messages through the cellphone carriers.

You might wonder how these new rules came about. The short answer is that politicians flooded the cell providers’ networks with text messages during the last election cycle. And, of course, the politicians conveniently exempted themselves from all the spam rules including SMS messaging. So the new rules, while appearing admirable to the public, have little if anything to do with the root cause of the problem, the politicians.

CAUTION: What follows is NOT legal advice. It is simply our reading of available literature pertaining to TCR and VoIP.ms rules and regulations. Do NOT rely upon this interpretation of the rules in making decisions regarding SMS deployments. Do your own research. Better yet, consult an attorney.

Keep in mind that the current exception to TCR verification will probably disappear within the next several months. A word to the wise: Go ahead and get registered and verified unless you plan to use your cellphone exclusively for messaging or your usage is clearly non-business. The upfront costs are minimal. Here is an excellent summary of the various 10DLC registration categories.

Assuming your VoIP messages don’t include SHAFT content and otherwise comply with the guidelines above, there remains an exception for messaging without TCR verification… at least for now. The current limits on 10DLC SMS traffic without verification are as follows:

  • Daily limit: 500 message segments
  • Monthly limit: 5,000 message segments
  • Per-recipient limit: 10 messages per day

A message segment is equal to 158 characters. So, a single text message can be composed of one or more segments, depending on its length.

There’s one additional gotcha. For traditional 10-digit numbers, only one SMS segment per second can be sent, and it cannot be increased. So be brief. For toll-free numbers, three SMS segments per second can be sent, and the restriction can be relaxed under certain circumstances. For short code messaging (initial cost is usually $1,500 or more per month to obtain a short code), 100 SMS message segments per second are permitted, and this limit can also be increased.

Now let’s return to our Navigation Guide for those that simply want to use VoIP messaging in the traditional ways that used to work, i.e. for a coach to schedule a little league practice or for you to tell your kid you’re going to be late picking them up from school.

Rule #1: If you have enabled SMS messaging on all of your VoIP phone numbers, do not use numbers on which you depend for critical input for outbound SMS traffic. The risk you run is that breaking one of the rules or limits above may get your number blacklisted from ALL future SMS message traffic.

Rule #2: Don’t break the daily, monthly, and per-recipient messaging limits EVER.

Rule #3: Don’t send SHAFT content over SMS even if you’re joking. Big Brother does not have a sense of humor.

Rule #4: Keep messages under 158 characters in length unless you’re using a toll-free number (158×3 message size limit).

Rule #5: Don’t send more than one message per second. For example, if you’re using a script to send a team notice of a little league practice, be sure to insert a one or two-second pause between each outbound message.

Rule #6: Only use a throw-away number to send outbound SMS messages. If the number gets blacklisted, discard the number.

The Safest VoIP Messaging Platform


As you might expect, the safest way to send and receive SMS messages is through a cellphone or something that looks like a cellphone to the carrier networks. Our review of the Cudy Router spotlights a device that fits the bill perfectly if you have an extra SIM card lying around. Using the web interface on this device, you can send and receive SMS messages using the SMS link on the System Status page because the SMS messages appear to originate from a device on the cell provider’s own network where there are limited restrictions.

Using VoIP.ms for SMS Messaging

Assuming you can comply with all of the restrictions above, here’s our recommendation for a VoIP provider that lets you continue sending messages at minimal cost. That provider is one of our old favorites, VoIP.ms. Using our signup link helps keep the Nerd Vittles lights on so thank you in advance.

So long as you have an SMS-enabled DID with VoIP.ms, SMS messaging costs $0.0075 per message with no additional fees. Below we’ll walk you through getting everything set up with Incredible PBX to take advantage of VoIP.ms SMS services.

Configuring VoIP.ms for SMS Messaging

As noted, you’ll need to order a DID from VoIP.ms that supports SMS. Then enable SMS messaging in the DID setup and specify either an email address or cellphone number for delivery of incoming SMS messages addressed to that DID. If you happen to have a Yealink T46G (not T48G) or a Grandstream GXV phone that is also registered to that extension, the messages will also pop up on your desktop phone with an alert tone if you also enable "Link the SMS received to this DID to a SIP Account" and register the phone to a PJsip extension with the additions which follow. On Grandstream GXV Android phones, we recommend dragging the SMS app to the main screen so that the incoming message count appears beside the SMS icon when new messages are received. If you’re a clever programmer, you also can retrieve incoming messages from the Asterisk log by searching for "Inbound SMS dialplan invoked." The message will be in the following From and Body lines. Or tail /var/log/asterisk/full will look something like this:


To support sending SMS messages, enable the SOAP and REST/JSON API in the VoIP.ms Main Menu, set a very secure API password, and whitelist the IP addresses of each server from which you wish to send SMS messages.

Configuring Incredible PBX to Send SMS Messages

1. Login to your Incredible PBX 2027 server as root and issue the following commands:

cd /root/sms-voip.ms
rm -f /root/sms-voip.ms/*
pip install python-dotenv
wget http://incrediblepbx.com/sendsms-voipms.tar.gz
tar zxvf sendsms-voipms.tar.gz
rm sendsms-voipms.tar.gz
nano -w sendsms

2. When the editor opens, scroll down and replace 8431234567 with your SMS-enabled DID

3. Replace yourname@gmail.com with your VoIP.ms login email address

4. Replace your-API-key with your VoIP.ms API password

5. Save the file: Ctrl-X, Y, then ENTER

6. Send an SMS test message to your cell phone using the following syntax:

/root/sms-voip.ms/sendsms 10-digit-SMS-recipient "Your SMS message"

Configuring Incredible PBX to Receive SMS Messages

To receive SMS messages through FreePBX® using a compatible SIP phone or through the Asterisk CLI, you first must use a PJsip trunk to connect to VoIP.ms. Sample General Settings for the trunk are shown below. In the Advanced tab, set Message Context to sms-in.


You also must create a PJsip extension or use the preconfigured 701 PJsip extension. In the Advanced tab, set Message Context to sms-out.

Finally, edit extensions_custom.conf in /etc/asterisk and add the following code to the bottom of the file:

[sms-out]
exten => _.,1,NoOp(Outbound Message dialplan invoked)
exten => _.,n,NoOp(  TO: ${MESSAGE(to)})
exten => _.,n,NoOp(FROM: ${MESSAGE(from)})
exten => _.,n,NoOp(BODY: ${MESSAGE(body)})
;
; add your VoIPms info in the next 3 lines
exten => _.,n,Set(VOIPMS_ACCOUNT="123456_subacct")
exten => _.,n,Set(VOIPMS_POP="atlanta.voip.ms")
exten => _.,n,Set(VOIPMS_TRUNK="VoIPms-PJsip") ; actual VoIP.ms trunk in FreePBX
;
exten => _.,n,Set(NUMBER_TO=${CUT(CUT(MESSAGE(to),@,1),:,2)})
exten => _.,n,Set(EXTENSION_FROM=${CUT(CUT(MESSAGE(from),@,1),:,2)})
;
; Now map your sending extensions EXTENSION_FROM to corresponding DIDs NUMBER_FROM
exten => _.,n,Set(CASE_701=6005550101) ; ext 701 msgs originate from 6005550101
exten => _.,n,Set(CASE_702=6005550102) ; ext 702 msgs originate from 6005550102
exten => _.,n,Set(CASE_703=6005550101) ; ext 703 msgs originate from 6005550101
;
exten => _.,n,Set(NUMBER_FROM=${CASE_${EXTENSION_FROM}})
exten => _.,n,Set(ACTUAL_FROM="${NUMBER_FROM}" )
exten => _.,n,Set(ACTUAL_TO=pjsip:${VOIPMS_TRUNK}/sip:${NUMBER_TO}@${VOIPMS_POP})
exten => _.,n,MessageSend(${ACTUAL_TO},${ACTUAL_FROM})
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _.,n,Hangup()
;-------------------------------------------------------------------------

[sms-in]
exten => _.,1,NoOp(Inbound SMS dialplan invoked)
exten => _.,n,NoOp(  TO: ${MESSAGE(to)})
exten => _.,n,NoOp(FROM: ${MESSAGE(from)})
exten => _.,n,NoOp(BODY: ${MESSAGE(body)})
;
; enter your default incoming SMS extension below
; if you want SMS messages delivered to multiple extensions,
; clone additional MessageSend lines below with extension numbers
exten => _.,n,Set(EXTENSION=701)
;
exten => _.,n,Set(ACTUAL_FROM=${MESSAGE(from)})
exten => _.,n,Set(HOST_TO=${CUT(MESSAGE(to),@,2)})
exten => _.,n,Set(NUMBER_TO=${MESSAGE_DATA(X-SMS-To)})
exten => _.,n,MessageSend(pjsip:${EXTENSION}@${HOST_TO},${ACTUAL_FROM})
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _.,n,Hangup()
;-------------------------------------------------------------------------


In the pasted [sms-out] context, insert your actual VOIPMS_ACCOUNT, VOIPMS_POP, and VOIPMS_TRUNK name in the lines provided. Then map each extension from which you wish to send SMS messages to a VoIP.ms DID on your PBX in the lines provided. In the pasted [sms-in] context, enter the EXTENSION number which should receive incoming messages from the PJsip trunk in which you designated [sms-in] as the Message Context. There is no magic to the [sms-in] context name. If you have more than one PJsip trunk, simply create additional incoming contexts (such as [sms-in-2]) for each additional trunk and clone the [sms-in] code designating the desired extension to receive incoming messages from each DID. For the [sms-out] context, it can be used as the Message Context for multiple extensions that should be enabled to send outbound SMS messages.

Save the file, and reload the Asterisk dialplan: asterisk -rx "dialplan reload"

Introducing the FreePBX SMS Connector Module

Bill Simon recently released another messaging alternative with his SMS Connector Module for FreePBX. The beauty of his new approach is it lets you use Sangoma’s User Control Panel (UCP) to send and receive messages with Incredible PBX 2027. It also supports messaging on both Sangoma’s and ClearlyIP’s SIP phones including the Incredible PBX SIP phones. Here’s the setup process with Incredible PBX 2027 for non-business messaging using VoIP.ms.

At VoIP.ms…
1. Create a Subaccount and DID/Trunk
2. Enable SMS on the trunk and Link SMS Messages received on this Trunk to your SubAccount
3. Enable VoIP.ms API, create an API Password, and Whitelist the public IP address of your server
4. Copy your VoIP.ms email address and API Password for use on your server’s SMS setup

On Your Incredible PBX server…
1. Login to the FreePBX GUI as admin
2. Create a PJsip Trunk for VoIP.ms
3. In Advanced Settings, set Message Context to voipms-sms-in
4. In Admin -> User Management, create a password for extension 701
5. Add the following context to the end of /etc/asterisk/extensions_custom.conf:

[voipms-sms-in]
exten => _.,1,NoOp(Inbound Voip.ms SMS dialplan invoked)
same => n,Set(TO=${MESSAGE_DATA(X-SMS-To)})
same => n,Set(FROM=${CUT(MESSAGE(from),\",2)})
same => n,Set(ENV(QUERY_STRING)=provider=voipms\;to=${TO}\;from=${FROM}\;message=${URIENCODE(${MESSAGE(body)})})
same => n,Set(ENV(REQUEST_METHOD)=GET)
same => n,System(php /var/www/html/smsconn/provider.php)
same => n,Set(ENV(QUERY_STRING)=)
same => n,Hangup()
;-------------------------------------------------------------------------

6. Reload your dialplan: rm /tmp/* ; fwconsole reload

Install and Configure SMS Connector Module…
1. Login to your server as root and issue the following commands:

fwconsole ma downloadinstall https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/SMSconnector/smsconnector-16.0.11.tar.gz
fwconsole reload

2. In the FreePBX GUI, navigate to Connectivity -> SMS Connector
3. Click Provider Settings and enter your email address for Username and API Secret for VoIP.ms. Click Submit.
4. In SMS Connector menu, click Add Number and enter your DID and PJsip extension 701 to associate with it.
5. Enter VoIP.ms as Provider and click Save Changes.

Using User Control Panel (UCP)…
1. If you have not already done so, apply these UCP patches for Incredible PBX:

mysql -u root -ppassw0rd asterisk -e "update freepbx_settings set value = 'Latest-16' where keyword = 'MIRROR_BRAND_VERSION'; "
mysql -u root -ppassw0rd asterisk -e "update admin set value = 'true' where variable = 'need_reload'; "
rm -f /tmp/*
fwconsole reload
fwconsole ma downloadinstall ucp
rm -f /tmp/*
fwconsole reload

2. Open UCP from FreePBX GUI
3. Login as 701 with your new password
4. Click + in Upper Left of display and add SMS Module for 701.
5. When SMS Module appears on UCP console, click Start Conversation
6. Send a test message to your cellphone
7. Reply to the SMS message from your cellphone
8. Reply should appear in UCP within 20-30 seconds

Let’s close today with a final cautionary note. The Bell Sisters define non-business usage as conversational messaging much like what most already do using their cellphones. If you push the envelope, you risk $100 fines for every message sent. Unless you are a lawyer or have deep pockets to hire one and fight The Oligopoly, you are well advised to obtain a 10DLC number and avoid any potential issues going forward.

Originally published: Monday, November 6, 2023



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.
 



Faxing Returns for Incredible PBX 2027 Platforms



As you may know, the introduction of Rocky 8, Debian 11, Ubuntu 22.04, and PHP 7.4 blew our HylaFax/AvantFax/IAXmodem faxing solution out of the water leaving all of the Incredible PBX 2027 builds with no fax capabilities. With some tips from our long-time contributor, Bill Simon, we are happy to report that an alternative solution is now available. It now provides BOTH incoming and outgoing fax support with email PDF delivery of all received faxes. While there are numerous free and paid options that support Outbound Faxing, we now have added an easy-to-use script that provides this functionality on Incredible PBX 2027 platforms.

Inbound Faxing Solution with Incredible PBX 2027

The new inbound faxing solution works much like it did with HylaFax and IAXmodem. You configure your Inbound Routes in FreePBX® to listen for fax tones. When an incoming fax is detected, the call is transferred to a SpanDSP fax context in Asterisk®. The incoming fax is then recorded as a .tiff image. When the recording is finished, we use the TIFF2PDF application to convert the image to a PDF file which is then emailed to a designated email address which you configure as part of this fax setup procedure. The prerequisite, of course, is to assure that Incredible PBX 2027 can send emails. This was covered in the initial setup tutorials, but we will repeat it below for slow learners.

Let’s first get your Incredible PBX 2027 platform configured to detect and process incoming fax calls. Log into your server as root and issue the following commands.

1. For Rocky 8 platforms: yum install libtiff && yum install libtiff-tools
    For Debian, Ubuntu, and Raspberry Pi platforms: apt install libtiff-tools -y

2. Issue the following commands to put the inbound fax context in place:

sed -i '/^\[custom-fax/,/^$/d' /etc/asterisk/extensions_custom.conf
echo '
[ext-group](+)
exten => fax,1,Noop(Fax detected)
exten -> fax,2,Goto(custom-fax-iaxmodem,s,1)

[custom-fax-iaxmodem]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Verbose(3,Incoming Fax)
exten => s,n,Set(FAXEMAIL=)     ; fax email address of recipient
exten => s,n,Set(FAXDEST=/tmp)  ; folder where faxes will be stored
exten => s,n,Set(tempfax=${STRFTIME(,,%C%y%m%d%H%M)})
exten => s,n,ReceiveFax(${FAXDEST}/${tempfax}.tif)
exten => s,n,System(/usr/bin/tiff2pdf -o "${FAXDEST}/${tempfax}.pdf" "${FAXDEST}/${tempfax}.tif")
exten => s,n,System(/usr/bin/echo "Incoming fax is attached." | /usr/bin/mail -s "Incoming FAX  Received" -A "${FAXDEST}/${tempfax}.pdf" "${FAXEMAIL}")
exten => s,n,Hangup

' >> /etc/asterisk/extensions_custom.conf

3. Update the fax context to include your email address for delivery of inbound faxes. Insert your email address in the code below replacing yourname@gmail.com:

sed -i 's|FAXEMAIL=|FAXEMAIL=yourname@gmail.com|' /etc/asterisk/extensions_custom.conf

4. Download and install the Fax module for FreePBX:

fwconsole ma downloadinstall fax
rm /tmp/*
fwconsole reload

5. Open the FreePBX GUI and check to be sure you still have a Custom Destination called Fax (HylaFax). If not, create it:

Target: custom-fax-iaxmodem,s,1
Description: Fax (HylaFax)
Return: No

6. In the FreePBX GUI, modify each of your Inbound Routes to support incoming faxes from the DIDs you’ll be using for inbound faxes. In the new Fax tab, edit the settings as shown below, save the settings, and reload your dialplan.

 Yes
 SIP
 No
 5
 Custom Destinations
  Fax (HylaFax)

7. Be sure you have configured Outbound Email with SendMail using the instructions below before continuing.

8. Send a test fax from FaxZero to one of your fax-enabled DID’s while watching the Linux CLI for issues.


Configuring Gmail as Smart Relay Host

Most Incredible PBX implementations will be on networks managed by companies like Comcast, Spectrum, and AT&T that block downstream mail servers (that’s you) from sending email. The solution is to use Gmail or your local ISP as a smart relay host to send mail from your server. You’ll need this to deliver voicemails and faxes via email. Here’s how to set it up using a Gmail account.

IMPORTANT: You MUST obtain and use a Gmail App Password instead of your Gmail account password when running the script below. If you’re a Google hater, here’s an alternative.

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

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

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

Outbound Faxing Solutions with Incredible PBX 2027

We’ve now developed a sendfax.sh script for use on Incredible PBX 2027 platforms. It lets you send any PDF document as a fax by simply copying the file to the /tmp directory and running the sendfax.sh script. You’ll be prompted for the name of the PDF file to send, the trunk to use for the call, and the phone number of the destination fax in the format required by your designated trunk. Make certain that you have provided the appropriate CallerID number in your Trunk setup, or the outbound calls may fail. After you complete the steps above to enable Inbound Faxing, issue the following commands to install this new Outbound Faxing addition:

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

Now let’s be sure your platform has the necessary components to support Outbound Faxing.

On Rocky 8 platforms, issue the following commands:

yum install libtiff
yum install libtiff-tools
yum install ghostscript

On Debian, Ubuntu and Raspberry Pi platforms, issue the following commands:

 apt update
 apt install libtiff-tools -y
 apt install ghostscript -y
 

Next edit /root/sendfax.sh and enter the callerid, faxheader, and faxstationid for your new Outbound Faxing Engine.

Disable the messages prompting for these components by issuing the command:
touch /etc/pbx/.sendfax

Finally, for installs before 9/27/2023, if you will be using a PJsip trunk to send outbound faxes, issue the following command to adjust the syntax in the sendfax.sh script. This is automatic for new installs.

sed -i 's|SIP/$mytrunk/$faxnumber|PJSIP/$faxnumber@$mytrunk|' /root/sendfax.sh

Now you’re ready to take Outbound Faxing for a test drive. Deposit a PDF file in the /tmp directory of your server. Then issue the following command to begin the Outbound Faxing process: /root/sendfax.sh. When prompted, enter the file name of your PDF file, the trunk name which will be used to make the call, and the phone number for the fax destination. That’s all the setup that’s required.

When you run the script, it will stay active until the fax has been delivered in order to alert you as to whether the fax transmission was successful. If, for some reason, the fax transmission fails, you can resend it with the following commands:

cp -ap /root/sendfax.call /tmp/cf
rm -f /var/spool/asterisk/outgoing_done/cf
mv /tmp/cf /var/spool/asterisk/outgoing/

You can verify receipt of the new fax attempt by waiting a reasonable time and then issuing these commands:

cd /var/spool/asterisk/outgoing_done
date -d @`cat cf | grep StartRetry | cut -f 2 -d "(" | cut -f 1 -d ")"`
cat cf | grep Status


While it is no longer possible to send faxes directly using AvantFax, there are some additional alternatives. A free one is faxzero.com, which lets you send 5 free faxes a day with up to 3 pages of text plus a cover sheet. A second alternative for infrequent use is to pay FaxZero $2.09 per fax to send up to 25 pages with an optional cover page. Another option is to send and receive faxes from your computer or mobile phone using a dedicated fax number from a service such as FaxDeck. Outbound faxing works almost identically to AvantFax. FaxDeck lets you send and receive up to 300 pages to the U.S. and Canada for $5 a month. Or, for $10 a month, you can send and receive up to 1,000 pages. That’s a penny per page which is less than the cost of most VoIP calls. Many of our recommended providers including Skyetel, ClearlyIP, VoIP.ms, and Vitelity also offer dedicated fax numbers as well as email-to-fax solutions.

Originally published: Monday, January 30, 2023    Updated: September 27, 2023



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.
 



VirtualBox Wonder: It’s Incredible PBX 2027-D for Debian 11




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 purchase a $1 a month phone number in your choice of area codes from CallCentric. Setup instructions here. If you decide VoIP is not for you, you don’t have to buy anything else ever. And you can use almost any desktop computer you already own to bring up the VirtualBox® edition of Incredible PBX® with Debian 11. Apple’s new ARM-based Macs unfortunately do not support VirtualBox. Here’s a great alternative for you.

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 2027-D image for Debian 11, double-click on the downloaded image and boom. In less than a minute, your PBX is ready to use with the very latest components of Asterisk® 20 and FreePBX® 16. There are no hidden fees or crippleware to hinder your use of Incredible PBX for as long as you like. 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 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 many desktop operating systems including Linux, Windows, and Intel-based Macs. 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 6.1 installers. Our recommendation is to put all of these 100MB installers on a USB 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: A VirtualBox 6.1 platform is required. Adjust screen size in View -> Virtual Screen.

Installing the Incredible PBX for Debian 11 Image

To begin, download the Incredible PBX 2027-D image with Debian 11 (3.7 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 2027-D 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 2027-D virtual machine in the VM List. Then (2) click the Settings button. In System tab, check Hardware Clock in UTC Time. 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.

Running Incredible PBX 2027-D in VirtualBox

Once you’ve imported and configured the Incredible PBX Virtual Machine, you’re ready to go. Highlight the Incredible PBX 2-27-D 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 may 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 2027-D 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.

Setting Your Incredible PBX Passwords

When the base install finishes and the VM restarts, log back in as root. Change your root password by issuing the command: passwd. 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.

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 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 User/Password Authentication. Create a username and password for your subaccount. For Transport, choose UDP. For Device Type, choose Asterisk. 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.

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. Click on the custom-Settings tab and replace anveo-pin with your actual Dialing Prefix. Click Submit and Apply Config to complete the setup.

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


The easiest way to get started is to download a free softphone onto your desktop. We recommend Zoiper 5 for personal use. You can download and install it from here. Once installed, you’ll first need to decipher your extension password for an extension you wish to use to connect to Zoiper. Log into your Linux CLI and switch to the root user as documented above. Then run: /root/show-passwords. Specify 701 and 705 as the starting and ending extensions. Make note of the 701 extension password. Run pbxstatus and make note of your LAN IP address, e.g. 179.xx.yy.zz. Next, start up Zoiper from your desktop and choose the free version. For the desired account enter: 701@179.xx.yy.zz:5061 where 179.xx.yy.zz is the local IP address of your virtual machine. For the password, enter the 701 extension password you deciphered above. Press ENTER twice to complete the connection. When the dialer appears, try out some of the free Incredible PBX applications below.

NOTE: You must use the Keypad option shown in the right window of Zoiper after your call is connected for any app that prompts for keyboard input.

Here are some numbers to try:

123 - Reminders
222 - Timeclock for Employees (try 12345)
223 - AsteriDex Lookup & Dialer (try 335 for Delta Airlines)
947 - Weather by ZIP Code (requires keyboard entry of ZIP code)
951 - Yahoo News
TODAY - Today in History
LENNY - The Telemarketer's Worst Nightmare

If you are a Mac user, another great no-frills softphone is Telephone. Just download and install it from the Mac App Store. For Android users, check out the terrific new VitalPBX Communicator. Works flawlessly with Incredible PBX.

Configuring a Softphone Extension on a Smartphone

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

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

Configuring Incredible PBX 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 16 Modules Current

We strongly recommend that you periodically update all of your FreePBX modules to eliminate bugs and to reduce security vulnerabilities. From the Linux CLI, log into your server as root and issue the following commands:

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

Taking Incredible PBX 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

Originally published: Monday, September 4, 2023



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

Adding Incredible PBX Goodies & More to VitalPBX 4



As continued use of FreePBX® becomes more and more precarious because of deprecated components and looming incompatibility with Asterisk® 21, the appeal of 3CX and VitalPBX as a VoIP platform becomes increasingly compelling. Whether you’re a home user, a small business, or a call center, VitalPBX provides a solution to meet your requirements. To make the transition a bit less painful, today we introduce a number of popular Incredible PBX applications for VitalPBX 4. And, as always, all of the Incredible PBX additions are free, open source, and GPL code.


If you’re unfamiliar with the VitalPBX VoIP platform, here are some features that may be of interest. First, it runs on the latest Debian 11 platform and is Asterisk-based freeware with optional commercial components. Most GPL applications designed for FreePBX will run equally well under VitalPBX without modification. Second, VitalPBX provides multi-tenant functionality with the purchase of a commercial module. Third, VitalPBX supports Asterisk High Availability (HA) failover at no cost using an open source script provided by the VitalPBX developers. Complete tutorial here. Compare this to the FreePBX HA offering which retails for $1,500. Commercial modules offer Microsoft Teams integration as well as the full complement of Sonata Suite Call Center offerings: Billing, Switchboard, Stats, Dialer, and Recordings. Faxing, Paging, Queues Callback, and Phone Provisioning modules are also available at modest cost. Keep reading if any of these are of interest to you.


Getting Started with VitalPBX

Before you can install VitalPBX applications, you’ll obviously need a VitalPBX server. You can build the platform with on-premise hardware, or in the cloud using one of our recommended providers, or on a Raspberry Pi. We recommend at least 4GB of RAM and at least a 30GB disk. Two gigs of RAM will suffice with a 2GB swap file. VitalPBX can be deployed using the VitalPBX ISO, or you can start with a fresh Debian 11 platform and then run the VitalPBX install script:

wget https://repo.vitalpbx.com/vitalpbx/v4/apt/debian_vpbx_installer.sh
chmod +x debian_vpbx_installer.sh
apt install sudo
./debian_vpbx_installer.sh

For Raspberry Pi deployments, here are the steps using a 32GB microSD card:

Begin by downloading Raspberry Pi Imager for PC, MAC, or Ubuntu desktop. Run the Imager from your desktop computer with the following settings after inserting your 32GB microSD card into your desktop machine (see the sidebar for an inexpensive microSD/USB device):

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

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

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

Once your Raspberry Pi has restarted, login as root with your root password and run the debian_vpbx_installer.sh script from above.

Adding a Whitelist & Hardening Your Firewall

We’ve built firewall whitelist rules for some of our favorite providers: Skyetel, BulkVS, VoIP.ms, Acrobits, SignalWire, Nexmo, Callcentric, and Anveo Direct. Also included are all private LAN, non-routable IP addresses and the default OpenVPN addresses. Issuing the following commands will install this whitelist and overwrite your existing firewall whitelist, if any. WARNING: The existing VitalPBX Firewall exposes all of your SIP ports as well as SSH, HTTP, and HTTPS so deploy VitalPBX behind a hardware-based firewall unless you significantly harden the VitalPBX Firewall ports. If you’re sure you’ve whitelisted the IP addresses of all your remote PCs, extensions, and trunk providers in Admin -> Firewall -> Access Control, then you can harden your firewall and protect your server by deleting the following entries in Admin -> Firewall -> Rules: HTTP, HTTPS, SSH, PJSIP, SIP, and IAX2. Then test all your connections to make certain they still are accessible. For future additions, we strongly recommend using OpenVPN addresses which require no new Firewall additions.

cd /root
wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/whitelist.sql
mysql -u root ombutel < whitelist.sql
vitalpbx apply-firewall
iptables -nL

gTTS Text-to-Speech Engine for VitalPBX

We've tested and implemented at least a half dozen text-to-speech engines to support Asterisk applications including Festival, FLITE, Amazon's Polly, IBM's Bluemix TTS, Pico TTS, and more. None are better than Google's free gTTS engine. Here's how to deploy it with VitalPBX to support all of your applications requiring TTS support. Login to your server as root and issue the following commands:

apt-get update
apt-get -y install jq libsox-fmt-all
apt-get -y install python3-pip
pip install --upgrade pip
pip3 install --upgrade pip
ln -s /usr/bin/pip3 /usr/bin/pip
pip install gTTS

Adding Custom Contexts Support to VitalPBX

In addition to the commercial modules, there are a number of free VitalPBX add-ons, one of which is Custom Contexts. We would recommend adding all of the free ones to get started. After logging into the web interface as admin, navigate to Admin -> Add-ons -> Add-ons. Click the Check Online button to load the latest available add-ons. Then click the Install icon for the following add-ons: System API, Authentication Codes, Bulk Extensions, Custom Contexts, Phone Books, and Task Manager. Once these add-ons are installed, you can install the following components.


Adding Incredible PBX Starter Kit to VitalPBX

We've put together a collection of some of our favorite Incredible PBX applications to enhance the VitalPBX platform. These include telephone apps like Yahoo News Headlines (dial 951), NWS Weather Reports by ZIP Code (947), Today in History (86329), and Telephone Reminders (123). In addition, we've reworked the pbxstatus utility (above) which will display whenever you log into your server as root from the Linux command line.

Many of these applications rely upon the gTTS text-to-speech engine so be sure you install it before proceeding.

To install the Incredible PBX collection, log into your server as root and issue the following commands:

cd /etc/asterisk/vitalpbx
cp extensions__80-IncrediblePBX.conf /root/extensions__80-IncrediblePBX.conf.bak
cd /
wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/incrediblepbx.tar.gz
tar zxvf incrediblepbx.tar.gz
rm -f incrediblepbx.tar.gz
asterisk -rx "dialplan reload"
echo "0 0 * * * root /var/lib/asterisk/agi-bin/run_recurring >/dev/null 2>&1" >> /etc/crontab
echo "3 0 * * * root /var/lib/asterisk/agi-bin/run_reminders >/dev/null 2>&1" >> /etc/crontab

Using Telephone Reminders with VitalPBX

Nerd Vittles Telephone Reminder System has been reworked for VitalPBX 4 and PHP 8.1. It lets you schedule reminders for future events (at least 4 minutes in the future) by telephone by dialing 123. When the appointed date and time arrives, Asterisk swings into action and places a call to the number you designate to deliver a customized reminder message. Recurring reminders also are supported. You can set up reminders that place calls daily or on weekdays as well as weekly, monthly, and annually. This means it can be used to wake you up in the morning, or to remind Granny to take her medicine every day, or to remind your Little League team of practice times and locations, or to remind you and your customers of scheduled and recurring events. External reminder calls are supported using your default outbound route's dial string, e.g. NXX-NXX-XXXX.

The complete tutorial for Telephone Reminders 4 is available here. The web interface is not yet supported on the VitalPBX platform; however, this Telephone Reminders app adds features that are not available in the *38 offering included in the VitalPBX Feature Code listing. Among these are optional recurring reminders as well as the ability to revise your reminder message before actually scheduling it.

Headline News & Weather Forecasts & Today in History

These three applications are self-explanatory. The best way to learn about them is to dial the three extensions from any phone registered on your VitalPBX server: Headline News (dial 951), Weather Forecasts by ZIP Code (dial 947), and Today in History (dial T-O-D-A-Y)

Adding OpenVPN to VitalPBX

The most secure method for accessing VitalPBX is to place your server behind a hardware-based firewall and use OpenVPN from the client PCs and phones to access the server. VitalPBX includes an OpenVPN add-on that includes both a server and a free 2-client license. For unlimited clients, you can purchase the commercial module for $120. In the alternative, you can deploy your own OpenVPN server and clients using this Nerd Vittles tutorial for Debian.

If you already have an OpenVPN server in operation, create an OpenVPN client for VitalPBX and name it incrediblepbx.ovpn. Copy it into the /etc directory of your VitalPBX server. Then issue the following commands and reboot to activate OpenVPN on your VitalPBX server:

apt-get update
apt-get -y install openvpn unzip
cd /
wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/openvpn-vitalpbx.tar.gz
tar zxvf openvpn-vitalpbx.tar.gz
rm -f openvpn-vitalpbx.tar.gz
shutdown -r now

Getting Started with Faxing

If your deployment is for a home or home office, then VitalPBX offers a free faxing component for a single trunk. We've tested this with VoIP.ms, and it works flawlessly. Begin by enabling the Virtual Faxes module. For your Trunk, enable FAX Detection and T.38, if desired. For your Fax Device, provide a Description, Destination Email, and CallerID Name and Number. For your Inbound Route, enable Fax Detection and Fax Destination of Fax Devices selecting the Destination Description you assigned to your Fax Device. Now place a test call to your DID from FaxZero.com. The Fax Sending module worked equally well.

Adding CallerID Names for Incoming Calls

Legal Disclaimer: Most CNAM providers have restrictions regarding caching of CNAM data. The courts consistently have ruled that phonebook data is not copyrightable. And every PBX caches CNAM data. After all, that's what CDR logs are all about. Consult with your own attorney if you have concerns, or simply stop reading here. 🙂

Some providers of DIDs also offer CallerID Name (CNAM) service for incoming calls. With VoIP.ms, it's optional and costs $0.008 per call. With BulkVS, it's mandatory and costs $0.003 per call. With many DID providers, you will only receive the CallerID Number on incoming calls. Thus was born our CallerID Trifecta and later Superfecta add-ons many years ago. Most of the free sources from yesteryear have disappeared, and we've only found two commercial sources that are reasonably priced at $0.003 per call: BulkCNAM (from the BulkVS folks) and EZCNAM at same price with a 25¢ credit to let you try out their service. Both work well.

Once you have installed Custom Context module for VitalPBX as well as the Incredible PBX Starter Kit from above, here are the steps to implement CNAM lookups on your incoming calls. First, sign up for an account with one or both of the providers and obtain a SOAP API Key from BulkCNAM or a traditional API key from EZcnam. Then login to your server as root and create an executable install script using the following template for BulkCNAM:

cd /root
rm -f superfecta-bulkcnam
wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/superfecta-bulkcnam
sed -i 's|SOAP-API-KEY|actual-key|' superfecta-bulkcnam
sed -i '\:// BEGIN CallerID Superfecta:,\:// END CallerID Superfecta:d' /etc/asterisk/vitalpbx/extensions__80-IncrediblePBX.conf
cat superfecta-bulkcnam >> /etc/asterisk/vitalpbx/extensions__80-IncrediblePBX.conf
asterisk -rx "dialplan reload"


Or create an executable install script using the following template for EZCNAM:

cd /root
rm -f superfecta-ezcnam
wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/superfecta-ezcnam
sed -i 's|=API-KEY|=actual-key|' superfecta-ezcnam
sed -i '\:// BEGIN CallerID Superfecta:,\:// END CallerID Superfecta:d' /etc/asterisk/vitalpbx/extensions__80-IncrediblePBX.conf
cat superfecta-ezcnam >> /etc/asterisk/vitalpbx/extensions__80-IncrediblePBX.conf
asterisk -rx "dialplan reload"


In your install script of choice, replace actual-key with the SOAP API key or API key you obtained from the provider. Make the script executable (chmod +x) and then run it to install the new script in your dialplan. Then reload dialplan: asterisk -rx "dialplan reload"

As deployed, the [superfecta] context assumes you want incoming calls routed to extension 501. You can modify this in /etc/asterisk/vitalpbx/extensions__80-IncrediblePBX.conf and reload your dialplan.

In the VitalPBX GUI, login as admin and navigate to PBX -> Applications -> Custom Contexts and create a new Custom Context and reload the dialplan:

Description: CallerID Superfecta
Context: superfecta
Extension: s
Priority: 1

Destination:

Custom Contexts -> Incredible PBX

In PBX -> Calls Routing -> Inbound Routes, edit your existing Inbound Route for your incoming DID and set the Inbound Destination to: Custom Contexts -> CallerID Superfecta. Then reload your dialplan.

How It Works: When an incoming call from a new caller is detected, the Superfecta script will greet the caller and ask the caller to press 7. Once the caller presses 7, the Superfecta script will look up the CNAM entry matching the CallerID Number and then route the call to extension 501. Successful callers are whitelisted and logged in the Asterisk database: database show cidname. When the same caller calls again, the call will be routed to extension 501 without prompting to press 7. Additional routing options are available by editing the [superfecta] context.

Configuring Gmail as SMTP Relay Host

The VitalPBX Portal includes the option to configure either a self-hosted email server (which may or may not work depending upon your upstream provider) as well as an SMTP relay host such as Gmail. You'll find it under Admin -> System Settings. In the alternative, you may prefer to do it yourself. Here's how.

1. Log into your server as root and issue the following command:

dpkg-reconfigure postfix

Click OK on the first dialog. Choose Internet Site as your Type of Mail Configuration. Accept the defaults for the System Mail Name, Root and Postmaster Recipient, and Other Destinations. Choose Yes for Forced Synchronous updates. Accept the defaults for the Local Networks, Default Mailbox Size, and Local Address Extension Character. Choose IPv4 for the Internet Protocol.

2. Once Postfix is reconfigured, edit /etc/postfix/main.cf. In the second section of code beginning with relayhost =, replace the relayhost= line with the following block of commands:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_fallback_relay =

3. Create the following new file using your Gmail account name and password.

nano -w /etc/postfix/sasl_passwd:

[smtp.gmail.com]:587 yourname@gmail.com:yourpassword

5. Change the permissions on the sasl_passwd file:

chmod 600 /etc/postfix/sasl_passwd

6. Use postmap to compile and hash the sasl_passwd file:

postmap /etc/postfix/sasl_passwd

7. Restart Postfix: systemctl restart postfix

8. apt -y install mailutils

9. Send yourself a test email: echo "test" | mail -s "Test Mail" somebody@gmail.com

Free Voicemail Transcription of Messages

For many years, Incredible PBX has included documentation to deploy IBM's Speech-to-Text (STT) engine to transcribe voicemail messages and deliver them by email for missed calls. Today we are pleased to bring that same functionality to VitalPBX 4. To get started, make certain that you have outbound email functioning on your server using the steps in the previous section. Then open an account with IBM and sign up for their LITE Speech-to-Text service. This provides you with 500 minutes a month of free STT transcription; however, you must use it at least once every 30 days or risk having your STT account terminated. So you may wish to setup up a recurring weekly reminder at a time when your extension will not otherwise be answered. Set up a short message to assure that voicemail transcription will be triggered. This will keep your LITE plan active without using many of your allocated minutes.

Once you have signed up for the STT-LITE service, navigate to Resources:AI/Machine Learning:STT in the LITE Tier and obtain or create an API Key and URL. Copy both the API Key and URL to your desktop. You'll need them as part of the VitalPBX component install below.


Next, login to your VitalPBX server as root and issue the following commands:

cd /root
apt -y install dos2unix lame
wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/sendmailibm.tar.gz
tar zxvf sendmailibm.tar.gz
rm -f sendmailibm.tar.gz
nano -w sendmailibm
# insert your API Key and URL and Save file: Ctrl-X, Y, ENTER
cp -p sendmailibm /usr/local/sbin/.
cp -p voicemail__60-1-transcript.conf /etc/asterisk/vitalpbx/.
asterisk -rx "dialplan reload"

When the nano editor opens in step 6 above, insert your API Key and URL in the spaces provided. Then save the file: Ctrl-X, Y, then ENTER. Continue with the remaining steps above to complete the install.

By default, this setup assumes that incoming calls are delivered to an extension on your PBX. Assuming that is extension 501, open the VitalPBX GUI and edit your Extension's settings by adding your email address in General Settings and in the Voicemail tab specify Enable Voicemail and Attach Voicemail YES. If you wish to delete the messages from your server after sending the email, specify Delete YES. Then save your settings and reload your dialplan.


Finally, make a test call to that extension and don't answer. Leave a brief message and hang up. The transcribed voicemail together with an MP3 recording of the message should arrive within a minute or two.

You Snooze, You Lose

Sorry to say our supply of free licenses to one of our favorite add-ons, the $100 Starter Kit, has been exhausted. If we get additional ones to hand out, we'll post an update here. Here's what's included in the VitalPBX Starter Kit:


Originally published: Monday, August 7, 2023    Updated: September 13, 2023



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.
 



Building a Dirt-Cheap Communications Platform with VoIP



There are literally thousands of options when you finally ditch your landline and stagger into the VoIP world. We’re often asked, "What would you recommend if price was the major criteria?" Our response goes something like this. You get what you pay for and our recommended providers continue to be ClearlyIP and Skyetel in no particular order. Having said that, if price is your primary consideration, here’s our Plan B which we use regularly.

First, a word of explanation. This is not the Ma Bell days any longer so you’re not limited by cost to a single provider. It costs little more to have several VoIP providers than to have one since most VoIP services are pay-as-you-go. So, in our least costly category, we actually recommend two providers, BulkVS for VoIP calling and VoIP.ms for VoIP messaging. Faxing also works incredibly well with both of these providers. Just follow our fax tutorial to get started. In terms of deployment, it means you will have one primary phone number for making and receiving calls and a second number for sending and receiving SMS messages. Incoming SMS messages can optionally be delivered to either your primary email account and/or a third phone number such as your cellphone.

Obtaining a phone number to make and receive phone calls through BulkVS will set you back 6¢ a month with a 25¢ initial setup fee. Incoming calls are $0.0023 per minute. Optional 911 support is 49¢/month. Outbound calls to North America are $0.004 per minute. SMS messaging at BulkVS is cost-prohibitive. A phone number (DID) at VoIP.ms to send and receive both calls and messages runs $0.85 per month. Incoming calls run $0.009 per minute. Outbound U.S. calls are a penny a minute while calls to Canada are $0.0052 per minute. SMS messages are $0.0075 per message while MMS messages are 2¢.

We’ll be using Incredible PBX 2027 and PJsip with Asterisk® 20 and FreePBX® 16 to set the trunks up today. We’ll configure the default route for outbound calling to be BulkVS with VoIP.ms as an outage failover. All incoming calls from both DIDs can be directed to a phone, ring group, or IVR of your choice. For SMS messaging, we’ll use the FreePBX GUI to set things up. Scripts also are provided in /root/sms-voip.ms to send messages. We’ll configure the VoIP.ms messaging defaults to also relay incoming messages to both an email address and a cellphone. For additional alternatives, check out our VoIP.ms tutorial.

Getting Started with BulkVS

To get started, click the sign up link on the main BulkVS page. Then fund your account with $25 using PayPal. Or you can sign up for Net 15 billing and pay by check or credit card if you’re not in a rush to get started.

BulkVS offers two ways to set up your BulkVS trunking: IP-based authentication and SIP registration. If you don’t have a firewall which means you’re not using Incredible PBX, the first method is a little safer because nobody can spoof the IP address of your Asterisk® PBX. But it’s not for everyone. For example, if you’re behind a NAT-based firewall or if your server has a dynamic IP address, then IP-based authentication really isn’t an option. Similarly, if you don’t have control of the router that your PBX is sitting behind, then IP-based authentication won’t work since you have to forward both the SIP port (UDP 5060) and the RTP ports (10000-20000) to your PBX. The beauty of SIP registrations is they work from almost anywhere including double-NAT environments. We’ll cover the SIP registration approach below which will work for everyone. See our BulkVS tutorial for additional options.

BulkVS Setup with PJsip Registration

Step 1: Go to Inbound -> DIDs – Purchase and buy one or more DIDs for your PBX.

Step 2: Go to Interconnection -> Host – Add and add your PBX’s public IP address. Leave the port as 5060 for both chan_sip and chan_pjsip setups.

Step 3: Go to Interconnection -> Trunk Group – Add and create a Trunk Group.

Step 4: Go to Interconnection -> Trunk Group – Manage and add the Primary IP Address for your new Trunk Group. Set Delivery Type to 11DIGITS.

Step 5: Go to Interconnection -> SIP Registration and write down the credentials for one of the SIP credentials you wish to use to register your new trunks.

Step 6: Go to Inbound -> DIDs – Manage and select each telephone number. Then set the Trunk Group to the SIPREG Trunk Group you chose in the previous step. Click Update button.

Step 7: Wait 15 minutes for the new IP and Trunk Group settings to propagate to SBC nodes.

FreePBX PJsip Setup with BulkVS Registration

On your Incredible PBX server, navigate to Connectivity -> Trunks after logging into the FreePBX GUI as admin. Choose Add a PJsip trunk. Name the trunk BulkVS and then click on the pjsip Settings tab. Fill out the form as shown below substituting the BulkVS registration account name you chose above. Any of the three SIP registrations offered for your account under Interconnection -> SIP Registration in the BulkVS portal will work as long as you use the matching password.

Next, click on the Advanced tab and enter the following in the Match (Permit) field.

162.249.171.198,76.8.29.198,69.12.88.198,192.9.236.42,52.206.134.245

In the Codecs tab, enable ULAW and ALAW. Then click Submit and reload your dialplan.

With PJsip registrations, you may also need to add the following lines to the end of extensions_custom.conf in /etc/asterisk using your actual DID. Then reload your dialplan: asterisk -rx "dialplan reload"

[from-sip-external]
; BulkVS
exten => 18005551212,3,Goto(from-trunk,${DID},1)

VoIP.ms Messaging Services

One of our favorite VoIP.ms features is the variety of SMS and MMS messaging options they provide AT LOW COST. Virtually all of their DIDs now support messaging. With incoming messages, you have the choice of routing the messages to an email address, another SMS destination, the VoIP.ms Message Portal, an SMS URL callback destination, and now an SMS SIP account. The steps below set up SMS SIP messaging with Incredible PBX 2027. You also can send quick messages in response to incoming calls using your Clearly Anywhere softphone.

Configuring VoIP.ms for SMS SIP Messaging

Prerequisites: DID supports messaging, SMS SIP messaging enabled on the DID

First, use our VoIP.ms signup link to create a VoIP.ms account. Next, create an Asterisk SubAccount using the SIP protocol with User/Password Authentication. In the Security section, enter the public IP address of your PBX, and Save your Settings. Next, acquire a DID in the VoIP.ms portal. Then choose the Manage DIDs option and edit your DID configuration. For Call Routing, select the SIP/IAX option and pick your SubAccount. Choose a DID POP location near your PBX. In the Message Service section, enable SMS SIP Account and pick your SubAccount. Then Apply Changes.

Configuring Incredible PBX for SIP Messaging

Prerequisites: PJsip VoIP.ms Trunk, PJsip Extension for SMS, sms-in and sms-out Contexts

Both PJsip Trunks and PJsip Extensions in FreePBX now support a Messages Context option in the Advanced tab of the setup GUI. Using the sms-in and sms-out contexts documented below, FreePBX now can process incoming and outgoing SMS messages. A typical use case in the Incredible PBX 2027 would be to quickly respond to an incoming call to the Clearly Anywhere app on your smartphone to indicate that you were in the midst of another call and would return the caller’s call. It is anything but a robust SMS messaging application for your smartphone, but it is a welcome addition for many mobile users that have to juggle both cellphone calls and office calls forwarded from a PBX to your smartphone. VoIP.ms has developed an excellent SMS Management Portal that is included in the VoIP.ms Dashboard. It allows you to read, respond, and manage SMS messages sent to your VoIP.ms DIDs.

Once you have completed the necessary setup steps on the VoIP.ms side, there are three steps to activate SMS SIP messaging with Incredible PBX 2027: (1) create and register your VoIP.ms PJsip Trunk, (2) create and configure a PJsip extension to receive incoming calls and SMS messages, (3) add the sms-in and sms-out contexts to extensions_custom.conf dialplan.

(1) Create a PJsip Trunk for VoIP.ms in the FreePBX GUI to process calls and SMS messages:


In the PJsip Settings tab, fill out the General tab. The Username will be your VoIP.ms account number followed by an underscore and then the name of the SubAccount you created above, e.g. 12345_mypbx. The Password will be the password you assigned to your VoIP.ms SubAccount. For SIP Server, enter VoIP.ms POP assigned to your DID, e.g. atlanta1.voip.ms. Accept the remaining defaults in the General tab. Click on the Advanced tab and scroll down to Message Context and enter sms-in. Click Submit and Reload your Dialplan.

(2) Next create a PJsip Extension in the FreePBX portal. This will be used to process calls and send SIP messages. NOTE: Incredible PBX 2027 ships with a number of extensions preconfigured. Only extension 701 is a PJsip extension. Do NOT use the others. If needed, create an additional PJsip extension for messaging. The General tab should look something like this:



Click on the Advanced tab and scroll down to Max Contacts and enter a number that is one more than twice the number of phones that will be connected simultaneously to this extension. For example, if you have 3 smartphones connecting to this extension, enter 7. Scroll down to Message Context and enter sms-out. Click Submit and Reload your Dialplan.

(3) Finally, cut-and-paste the following code into the bottom of extensions_custom.conf in the /etc/asterisk directory:

[sms-out]
exten => _.,1,NoOp(Outbound Message dialplan invoked)
exten => _.,n,NoOp(To ${MESSAGE(to)})
exten => _.,n,NoOp(From ${MESSAGE(from)})
exten => _.,n,NoOp(Body ${MESSAGE(body)})
;
; add your VoIPms info in the next 3 lines
exten => _.,n,Set(VOIPMS_ACCOUNT="123456_subacct")
exten => _.,n,Set(VOIPMS_POP="atlanta.voip.ms")
exten => _.,n,Set(VOIPMS_TRUNK="VoIPms-PJsip") ; actual VoIP.ms trunk in FreePBX
;
exten => _.,n,Set(NUMBER_TO=${CUT(CUT(MESSAGE(to),@,1),:,2)})
exten => _.,n,Set(EXTENSION_FROM=${CUT(CUT(MESSAGE(from),@,1),:,2)})
;
; Now map your sending extensions EXTENSION_FROM to corresponding DIDs NUMBER_FROM
exten => _.,n,Set(CASE_701=6005550101) ; ext 701 msgs originate from 6005550101
exten => _.,n,Set(CASE_702=6005550102) ; ext 702 msgs originate from 6005550102
exten => _.,n,Set(CASE_703=6005550101) ; ext 703 msgs originate from 6005550101
;
exten => _.,n,Set(NUMBER_FROM=${CASE_${EXTENSION_FROM}})
exten => _.,n,Set(ACTUAL_FROM="${NUMBER_FROM}" )
exten => _.,n,Set(ACTUAL_TO=pjsip:${VOIPMS_TRUNK}/sip:${NUMBER_TO}@${VOIPMS_POP})
exten => _.,n,MessageSend(${ACTUAL_TO},${ACTUAL_FROM})
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _.,n,Hangup()
;-------------------------------------------------------------------------

[sms-in]
exten => _.,1,NoOp(Inbound SMS dialplan invoked)
exten => _.,n,NoOp(To ${MESSAGE(to)})
exten => _.,n,NoOp(From ${MESSAGE(from)})
exten => _.,n,NoOp(Body ${MESSAGE(body)})
;
; enter your default incoming SMS extension below
; if you want SMS messages delivered to multiple extensions,
; clone additional MessageSend lines below with extension numbers
exten => _.,n,Set(EXTENSION=701)
;
exten => _.,n,Set(ACTUAL_FROM=${MESSAGE(from)})
exten => _.,n,Set(HOST_TO=${CUT(MESSAGE(to),@,2)})
exten => _.,n,Set(NUMBER_TO=${MESSAGE_DATA(X-SMS-To)})
exten => _.,n,MessageSend(pjsip:${EXTENSION}@${HOST_TO},${ACTUAL_FROM})
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _.,n,Hangup()
;-------------------------------------------------------------------------

In the pasted [sms-out] context, insert your actual VOIPMS_ACCOUNT, VOIPMS_POP, and VOIPMS_TRUNK name in the lines provided. Then map each extension from which you wish to send SMS messages to a VoIP.ms DID on your PBX in the lines provided. In the pasted [sms-in] context, enter the EXTENSION number which should receive incoming messages from the PJsip trunk in which you designated [sms-in] as the Message Context. There is no magic to the [sms-in] context name. If you have more than one PJsip trunk, simply create additional incoming contexts (such as [sms-in-2]) for each additional trunk and clone the [sms-in] code designating the desired extension to receive incoming messages from each DID. For the [sms-out] context, it can be used as the Message Context for multiple extensions that should be enabled to send outbound SMS messages.

Save the file, and reload the Asterisk dialplan: asterisk -rx "dialplan reload"

Once all the pieces are in place, SMS messages sent to your VoIP.ms DID will be delivered to the FreePBX trunk registered to the SMS SIP destination specified in your VoIP.ms DID setup. And here’s one more tip. If you happen to have a Yealink T46G (not T48G) or a Grandstream GXV phone that is also registered to that extension, the messages will also pop up on your desktop phone with an alert tone. On Grandstream GXV Android phones, we recommend dragging the SMS app to the main screen so that the incoming message count appears beside the SMS icon when new messages are received.

FreePBX Inbound & Outbound Route Configuration

Finally, we need to tell FreePBX how to route calls and messages into and out of your PBX. In the FreePBX GUI under Connectivty -> Inbound Routes, add a new route for BulkVS specifying the 11-digit DID you purchased from BulkVS. Choose a Destination for the incoming calls, save your settings, and reload the dialplan. Repeat this process for your VoIP.ms DID making sure to enable faxing if you’ve completed the fax tutorial.

Next, navigate to Connectivity -> Outbound Routes and modify the default Outbound Route for all outgoing calls. Assign the BulkVS trunk as the first entry in the call sequence and the VoIP.ms trunk as the second entry. In the Dial Patterns tab, you would want match patterns for 1NXXNXXXXXX and NXXNXXXXXX. For the latter entry, be sure to add a Prepend entry of 1. Then save your settings and reload the dialplan.

Originally published: Monday, July 10, 2023



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.