Off To Indonesia

Hi everyone,

Today, the rubber hits the road! My partner, Audrey, and I spent all Saturday running last minute errands, sending last-minute email questions (“should I bring a camping stove or not?”) and packing all sorts of equipment into two rubbermaid totes and our personal bags. Packing’s been a comically awkward fusion of my outdoor life with my professional life, packing everything from tarps and mosquito nets and hiking boots to literally 110 pounds of sensitive electronic equipment, all crammed into two rubbermaid totes and our personal bags. We’ve got eNodeBs, EPCs, one thousand SIM cards, mounting hardware, antenna cables, ethernet cables and routers, extras of everything, a power strip, and all sorts of other tools, all *just barely* under the airline weight requirements and padded as best we could with styrofoam. At 11pm we lugged it all down to the airport, and at 2am we were off to Jakarta. If you check it out on a map, you’ll notice that Jakarta’s actually way out of the way from Bokondini (as in, 7 extra hours of flying), but Jakarta’s where international flights have to land in order to clear customs and enter Indonesia.

We met our teammate Matt (who flew in from fieldwork in the Philippines) at the airport, and after a day or two, the three of us will head into the field, with a small regional flight taking us from Jakarta to Jayapura, an even smaller flight from Jayapura to Wamena, and then finally a truck ride out to Bokondini. Once in Bokondini, our plan is to stay with a couple of Christian missionaries who have been working in the local community for the past twenty years or so. Scott and Heidi have been instrumental in helping us figure out what the on-the-ground logistics will be, what we’ll need to bring and do, not to mention opening their homes to us! We’re already incredibly grateful for their support, and we haven’t even arrived yet 🙂

Okay – well that wraps it up for this post, stay tuned for more content and pictures as we move through Indonesia and get further out into the jungle!

Money Matters (Part 1)

Okay, okay, let’s talk about money… everyone’s favorite topic, right? No, but seriously: In all my efforts to get CoLTE up and talking to phones, I didn’t really think about the (glaringly obvious) fact that for us to offer service to the community, we’ll have to pay for it somehow. That means building a billing platform of some sort – a task which has turned out to be both really easy and really hard.

There’s a lot of stuff to cover on this topic, so I’m breaking it up into a series of posts. This post will introduce the basic technical concepts of what we built, how we keep track of network usage, and how customers interact with our system.

Keeping Track of the Bits

One of the really neat things about LTE, as compared to other cell networks, is that in LTE, everything is just IP packets. This actually lets us dramatically simplify the technical part of our billing system: we note the IP address that we assign each use, use ntopng to keep track of how many bytes a specific IP address sends and receives… and that’s it! This takes care of data, obviously, but also does everything else. Text messages? They’re just IMS traffic from one IP address to another, and counted in the data. Phone calls? VoLTE runs over IP, done. What if a user wants to use WhatsApp or Skype instead? We really couldn’t care less – it’s all just data. Count the bytes, multiply it by the rate we choose (we’ll discuss rates in Part 2) and call it a day.

Credit Purchase and Resale

In addition to monitoring network usage, we had to create ways for users to “top up,” or put money on their account, and then purchase service with that money. In the States, accounts are typically post-paid (i.e. you get a bill after the fact) whereas in a lot of other places, including Bokondini, all accounts are only pre-paid (i.e. you pay someone for credit ahead of time, and the network cuts you off if/when you hit zero). In most pre-paid networks, users top up or transfer credit via a text message interface, or in person at a store. However, since our system is LTE, and doesn’t have to be backwards-compatible with 2G, we decided to forego the traditional interfaces in place of just running a locally-hosted website. We ended up building out this site to handle a wide range of tasks, so by going to “network.bokondini” users see a website that provides them with a wide range of information about their account (data consumed, balance remaining, connection status, etc.) and enables them to perform basic operations such as using their current balance to buy a data package.

all3.png

Minutes as a “Fiat Currency”

To make matters even more interesting, pre-paid phone credit is often re-sold from one user to another, or traded for other goods and services. In Bokondini, there’s an entire retail economy of corner shop vendors that buy large amounts of cell phone credit at a bulk discount and then resell smaller portions to individual shoppers (e.g. “transfer ten dollars of credit, or 100 minutes, from my account to this phone number”) in exchange for cash.

The notion of credit resale actually makes our lives significantly easier, for two main reasons. First off, it creates a clear division between trading credit from one user to another, and “fiat”-ing new credit into the system to be traded. Obviously, the second action has to be very closely supervised, but we can get away with creating a bottleneck here (maybe we only allow one or two people to introduce new credit into the system) because the credit will then be traded and disperse through the community via these resellers.

Second off, the notion of “fiat” here makes us a lot safer and more resilient to many different scams and attacks. This is because with the one exception of creating credit, no real money ever changes hands or goes away. If one user cheats or steals from the account of another user, or hacks the system to add credit to their account, we can simply undo the transaction, or manually edit the balances ourselves: no value is ever actually lost for good.

All right – that’s enough money talk for today. Stay tuned for Part 2, coming out soon, in which I talk about the different possible billing models, what our expenses look like, and how we need to generate revenue.

Update: Part 2 and Part 3 are now available.

 

Connecting To The Outside World

One of the most interesting and hardest-to-describe things about local networks, as opposed to big-scale national ones, is exactly how they connect to the rest of the world. More than any other part of this project, the answer to these kinds of questions is “it depends!” In this post, I’m going to do my best to provide the long-form answer to this question and explain how things interconnect – in general, as well as our exact case in Bokondini.

Internet Access

The Internet was designed from the ground-up to be a decentralized “network of networks,” and this design makes it incredibly easy to add a network to the Internet: you pay an ISP for a connection, hook up a router to it, and you’re done! Though the scale’s a bit different, this process is pretty much identical, whether you’re hooking up a small home network or building a telecom company. This isn’t an exaggeration at all: small-scale regional ISPs literally just buy a super-fast Internet connection from a bigger ISP, the same way you do at home, and then divide and resell it to their local customer base.

In our case, the mountains around Bokondini are too rugged for traditional wired connections, so we’re using satellite Internet. Though it’ll cost us 300 USD/month for a 1Mbps connection (no joke!!!) and be pretty slow, it’s literally the only option we have.

Calls and Texts

So if hooking up to the Internet’s that easy, hooking up to the phone network’s probably similar, right? Wrong! It’s actually quite a process to register yourself as a phone network, and get assigned a block of phone numbers. This is the case for several overly-technical reasons, but the main one is that the Internet was designed to easily allow smaller networks to hook-in, whereas the telephone network (known as the PLMN, for Public-Land-Mobile-Network) grew up served by a much, much smaller number of operators. As a natural result, there’s no simple or easy system for a small network like ours to request a small set of numbers, mainly because that never happens. I’d love to learn more about this system and go through the process down the road, but for now, we currently do not have any plans to register our network in the PLMN.

Note that not having a PLMN hookup doesn’t actually affect our ability to support calling and texting, at least on a local scale. The nice thing about not being connected to the PLMN is that we can still assign our users whatever made up phone numbers they want, and we can still use these numbers for routing calls and texts within the network – we just can’t connect to the rest of the world.

Over-The-Top (OTT) Services

If hooking up to the Internet is easy, but hooking up to the phone network is hard… some of you might be thinking “why not just use the Internet for voice and text?” Great idea! In the cellular world, running voice and text over the data connection is known as “over the top” service provision, and it dramatically simplifies everything, for a number of reasons. Popular examples of over-the-top services include Skype, WhatsApp, Facebook Messenger, Google Voice, and many, many more.

There are tons of really good reasons to use OTT services: first off, they’re typically much cheaper than buying a phone plan. Second, all they need is Internet, so they work just fine over WiFi. Third, since the Internet was designed to be more decentralized than the PLMN, they don’t deal with issues like roaming.

Unfortunately, OTT services also have some drawbacks. First, whereas the telephone network is understood and supported worldwide, OTT services typically don’t interconnect with each other, which leads to complicated issues of fragmentation (i.e. you talk to John on WhatsApp, Matt on Skype, and Fred on Facebook) and a negative user experience. Second, in almost all OTT services, communication must be routed through the provider’s servers. This typically isn’t a huge problem in well-connected areas, but in our case, it means that a call from one user to another would go over that 1 Mbps satellite link twice for no good reason. Finally, and most importantly, since OTT services just do their own thing and don’t interconnect with the PLMN, they can’t support a lot of telephone-specific features such as emergency calls. This isn’t just unsafe, but actually has legal implications, and is why Skype has that big disclaimer saying “Skype is not a replacement for your phone and can’t be used for emergency calling.”

Bringing It All Together

Okay, so let’s recap: our network in Bokondini’s going to have a relatively slow and expensive satellite Internet connection. With this connection, our users can do anything they want: email, web surfing, etc. Additionally, our users can make phone calls and send texts to other users within the network, but can’t call anyone outside the network. Finally, our users can also use any Internet-based OTT services (WhatsApp, Skype, etc.) to call people outside the network.