Home » Incredible PBX » CentOS/SL Platform » Oldie But Goodie: VoIP.ms, The Most Versatile VoIP Provider

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:

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()

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.

1 Comment

Comments are closed.