Texting Gone Wild

Long Text Messages

SMS text messages are historically limited to 160 characters (70 characters if in unicode). Years ago, devices would refuse to send a longer message, forcing users to break the message up themselves. These days, however, most devices will allow a user to create a much longer message.

So, what happens when you send a longer message?

There are two ways to handle SMS messages of excess length:
1. Split the text into multiple shorter messages, which might be reassembled into one message by the receiver, or might be presented as multiple messages. Each message is shortened by a few characters, to put in a reconstruction header that the receiver can use to put it together.
2. Change the text to an MMS message, which actually uses the data plan to communicate.

What is this MMS of Which You Speak?

MMS is an alternative texting data format that can also do images, sound files, etc. On most devices, if you try to send a text with a picture or other media file, the entire message is automatically upgraded to MMS. As mentioned, this uses the data plan to send the content, but uses the SMS channel to send meta-data that advises the receiving device to load the actual message using its data plan.

“Legacy” SMS Support on VoIP.ms

Up until August 2020, VoIP.ms did not support MMS. Neither did the two most common means of sending and receiving text messages on their platform. They do provide an API whereupon you can write your own interface (as Michael did for item 1 below).
1. The android application VoIP.ms SMS is an open source project developed by Michael Kourlas, an independent programmer. It only supports SMS, never has done MMS. Also, this application relies on his servers to transfer data – for which I am thankful, because I appreciate the service!
2. The “legacy” web application, has no MMS.

In both “legacy” programs,
1. If you try to send a long message, it splits it up automatically, according to the standard.
2. You can’t send any media.
3. If someone sends you a long text message, it’s a crap shoot – if it is split up by the sender, the pieces come through. If it isn’t split up, the message is just silently lost.
4. If someone sends you media, the message is just silently lost.

“New” MMS Support on VoIP.ms

Image of SMS/MMS Menu Entry
Per above, in August 2020, VoIP.ms started supporting MMS using a new web interface from the main page -> DID Numbers -> SMS/MMS Message Centre, or directly at the SMS/MMS portal. Here, you can do full SMS and MMS send and receive.

The new portal works reasonably well, but it has its quirks:
– It might display a green dot beside a person’s name if they send you a new message… but it takes a while, and it won’t auto update for you. You have to click on their name again, to get the message to appear.
– It appears that a refresh is required every night at midnight eastern time. To do this, click DID Numbers -> SMS/MMS Message Center and wait for the refresh.
– If clicking on the menu item doesn’t work, hit “refresh” in your browser. At times, this will cause a login prompt to be displayed. If you enter your login credentials and it does not appear to do anything, the site is probably doing reverse proxy check – press “return to main site”, login there, and click ID Numbers -> SMS/MMS Message Center again.

Now, can you use VoIP.ms as a “complete” alternative to your cell phone texting? Well… yes, and no.

Android Application Support

The Android app has been updated to support MMS. It appears to be quite reliable. Kick Michael over a bit of cash if you use it and it works well for you.

Not All Providers Can Send to VoIP.ms Text System?

Yes, if it works, then you are away to the races. I use it all the time to keep contact with folks in the US and elsewhere.

The interesting thing is that some texting systems will not send to VoIP.ms text system, not sure why. There is some kind of “provider matrix” used by each telco for delivery of their texts to another telco, and for whatever reason, VoIP.ms isn’t on some lists. For instance, my bank in the USA tries and tries to send SMS texts to my VoIP.ms number to confirm my login, but it never works. The telco automation provider Twilio sometimes has trouble too.

It all seems kind of hit-and-miss. Maybe harassing the VoIP.ms guys would get them to chase it down and get onto those “choice matrix” lists, but I have not tried.

Text Message Provider Matrix

This text message “provider matrix” thing has been around for a long time. Long time ago I found that every telco has an incoming E-mail to text message portal – and found out that you can just carpet bomb all of them with the telephone_number@each_telco. Those telcos who don’t have the specified number will silently ignore. By extension, connection between telcos is probably done the same way. If VoIP.ms were not on the list, then they would not get the message, and would not receive the text.

Other Means of Getting Your VoIP.ms Text Messages

You can also have text messages forwarded to a “real” cell phone, but you do have to remember if you reply that it comes from that “real” cell phone – so your correspondents will send to one number, get back from another. Worse if that number is out of country – you reply, it comes from your “real” cell phone, and you get charged for it.

You can also have incoming text messages bundled into an E-mail, but not sure how you would reply to that.

VoIP.ms SMS and Call Forwarding

So, here is how to set up VoIP.ms for SMS texting and call forwarding.

Important Term “DID”

The first thing to know is a specific term.  DID, or “direct inward dial”, is your telephone number that can be called.  In other contexts, it can mean the phone that will be connected to, when someone dials that number.  In our context, it will just be the number.

Why the distinction?  Outbound calls use a different system.  Simple as that.  Leave that for another time.

Follow the Money?

Bear in mind that, although the base cost for each DID is ridiculously low, nothing is free.  SMS texts cost something like ¾ cent each, inbound and outbound calls cost by the minute (something around 1 cent per minute).  I find this acceptable, because there’s no way that I could ever even come close to the cost of my old phone bill!


OK, first thing is to create your account and fund it.  All amounts are in USD.  I would suggest using PayPal to fund it, and I’d suggest putting in US20 or US30 to start.  You can set an “alarm” on your account to send an E-mail when your balance falls below a certain amount.

Once you’ve got your account and it is funded, then for the task at hand, here are the main management menu items you will use.

Set Up Call Forwarding Target

First, set up a call forwarding target.  Select “Call Forwarding” and create an entry pointing to where you want calls to be potentially redirected to.  You can create more than one – you can select which one is the actual target, for each DID.

Here’s a sample entry screen.  You don’t have to touch anything else except to put the 10 digit phone number of the target to forward calls to.

Ordering Arbitrary DID(s)

If you don’t have any DID(s) yet, you will have to go to “Order DID” first, and create them.  The word “order” is a bit of a misnomer, because it’s all automatic and practically immediate.  You can create as many as you want, and it’s quick.  You can pick a telephone number in pretty well any area code in North America, and some numbers overseas.  Be conscious of their cost, they don’t all cost the same in monthly cost or in inbound & outbound per-minute charges.

Porting Your Number In

You can also “port” your existing number from a cell phone or landline phone carrier to VoIP.ms.  It’s a bit of a process – not that hard, you just have to read the procedure and go through the steps.  The telcos are anal about making sure you follow the steps – they are trying to prevent port-out fraud, which has happened in the past, with disastrous consequences – think “SIM hijacking”, not nice.  

Anyway, it is standard practice these days to set a port PIN on any mobile DID.  This is wise to do.  Be sure to keep it private.  If set, then without this PIN, port requests are ignored.  Of course, keep track of that port PIN, or else you won’t be able to perform a port either 😊   Keep these things in your password manager (use LastPass – don’t pass “go”, don’t do anything else – just do it).

When you port your cell phone number, be sure to indicate that it’s a mobile/cell phone.

Managing the DID Settings

Anyway, once you have any kind of DID in your account , go to “Manage DID(s)”:

On the left, under “Actions”, you will see three coloured icons – an orange pencil & paper (edit this DID settings), a blue paper with lines on it (read-only view this DID settings), and optionally a green cell phone, which indicates that this DID supports SMS & MMS.  

Click the orange pencil & paper icon, which should bring you to this screen:

Select “call forwarding”, and if necessary, drop the selection box and choose where to route the call.

Scroll down and choose the DID point of presence:

This simply is the Internet server location that you will connect to, when you come around to using a VoIP phone.  I would select one close to your primary use location.  You can change it later, but for your VoIP phone to work (inbound and outbound), your VoIP phone must point to the same server name.

Continue to scroll and you will see the SMS settings.  Above that are a few key settings related to the cost of calls, review each one.  

For SMS, you have to “enable SMS/MMS” and, if you want to SMS/MMS forward, to select this option and put the 10 digit target telephone number in here as well. 

The “SMS/MMS URL Callback” option is for use with the VoIP.ms Android SMS application, see below.  You can leave it unchecked, but the value should be “https://us-central1-voip-ms-sms-9ee2b.cloudfunctions.net/notify?did={TO}“, per below.

Save the changes, and it should work!

Installation of Android App to Support Near-Native Texting

There are a few limitations, but it works very well for me.  It’s how I keep in touch with my friends in Phoenix (and formerly of Phoenix 😊).  I ported my US cell phone number to VoIP.ms and use this app to text with them.

Here is the Android application:

Now, the difficult part – setting it up.  The app is open source, and its help page looks like this:

You have to enter that string into the DID\’s “callback” entry (see above),  then enable the API connection back on VoIP.ms, see below

Enabling the API Connection

From the VoIP.ms main page, select “Main Menu”, then “SOAP and REST/JSON API”:

Put in an API password (this will be what you give to the Android app, above), enable the API, and ensure that the “Enable IP Address” is set to  You can restrict the IP address here, if it is well defined and won’t change.