Inter-Carrier Text Messaging

Over Ten Billion Text Messages a day still flow through my software.

The
Product

If you send a message today that happens to go to a friend on another network, there is a good chance it goes through my software.

Inter-Carrier text messaging is one of those types of systems that are at their best when you have no idea they exist. Essentially, early on in mobile phones, text messaging only worked within a carrier. i.e. you could only send to someone on the same carrier as you. Early advertisements actually tried to spin this as ‘you and your friend can join together and you can send text messages’.  Of course that spin didn’t last too long.

Today, I understand over 10 billion messages a day flow through the inter-carrier system. (It started out as 100,000 on the first day)

Carriers didn’t want to take on the interconnection work because it would have been daunting… getting agreements and doing software development with every other peer-carrier. That route would have resulted in n times n agreements. Instead they opted to have a third party deal with the inter-connection.

MobileSpring (Eventually acquired by RealNetworks) developed a product where it took in the ‘destination phone not on my network’ traffic from a carrier and routed it to other carriers (and eventually to another ‘inter-carrier’ company that by industry agreement took on the other 50% of the countries inter-carrier traffic).

MobileSpring’s first customer was Sprint. Initially, since there were no other carriers at that point the message was converted into email (and vice versa).

Initially the product worked off of something called the LERG, that mapped the first 6 digits of a phone number to the carrier that owned those digits. Shortly after introduction, ‘wireless number portability’ became law and people were able to move their numbers from carrier to carrier. This made it so we had to query a central number authority for every message.

The
Work

I was the main architect of the system and the person that directly interfaced to the carriers. I also wrote, in J2EE the central routing piece.

I have some great war-stories on this project:

We got a POC going through ‘roaming’ from some tiny, literally mom-and-pop carrier in some rural community. We had a few phones on this network to test. When our company was, as so many startups are, in the ‘if we don’t get the Sprint contract we’re out of business’ phase. I did a demo of this in the ‘yes or no’ meeting with Sprint at their massive campus in Overland Park, Kansas. 20 Sprint executives there to see it… well something happened, I no longer remember what, and I blurted out the B-word (“oh that’s a bug”)… we thought it was over at that point. Eventually, when we had a good working relationship with them, the PM told me that it was that incident that sealed the deal… they said they admired our honesty and thought they could work with us on those inevitable 3AM, it was broken calls (of which there ended up being many… and my wife hated that she couldn’t get back to sleep)

Well it, and all kinds of other carrier-based components did sometimes crash back then, and yes, 3AM was a prime time for that. People generally don’t know that this system exists. All you know is that a conversation with a friend abruptly stopped. Well, when we would get it back running there were thousands of messages to their friends that said in effect: ‘What did I say to offend you to stop replying?’.

Another good war-story is… well midnight on New Year’s Eve… unlike other times during the year when there is a steady and predictable amount of traffic, everyone thinks it’s a great idea to hit send at exactly midnight. The first year ‘the country blew up’ (lots of components failed)… messages were lost and queues clogged. (What is supposed to happen, in network parlance is there is supposed to be ‘back-pressure’ all the way to the sending phone, telling the phone’s owner that the message couldn’t be sent. I ended up being on a call for the next 3 New Years on a big county wide conference call from the first Eastern midnight, through to the Western one.

Other Work