How to Replace Your Carrier on Android Using These Fully Open-Source Tools
Carriers aren’t known for being the most trustworthy of companies. They have a history of locking people into two-year contracts, overcharging for SMS messages, and tracking web traffic in order to sell ads. That’s not even getting into the information they share with law enforcement or intelligence agencies.
What if you could use a smartphone without having to deal with a carrier at all? Well, as is often the case, with the right set of open-source tools, you can! The Cheogram app combined with the JMP service is an easy way to un-tether your phone number from a SIM card.
What Is Cheogram?
Cheogram describes itself as “a set of services that connect all open communication networks together, allowing you to reach all your contacts from a single app.”
In layman’s terms, it’s an instant messaging app that is also capable of placing phone calls, as long as you sign in with an account that supports such features. In more technical terms, it’s an XMPP client with added features needed to interact with the telephone network.
XMPP, for the unfamiliar, is an open instant messaging protocol similar to email, where someone with an account on one server can easily message someone on another. This contrasts with more well-known instant messaging apps, like Apple’s iMessage or Facebook Messenger, where people can only talk to people who register accounts with the same company. XMPP is also sometimes known as Jabber, the protocol’s original name.
Cheogram isn’t actually the service that will detach you from your carrier, but it is the app you will install on your phone and interact with once you have everything set up.
Cheogram is part of a suite of software from Soprani.ca, a group working to make freedom-respecting and interoperable communication tools that rely on open standards. The easiest way to use Cheogram is to sign up for an account with another Soprani.ca offering known as JMP.
What Is JMP?
JMP is a service that provides you with a US or Canadian phone number to connect to an existing XMPP account.
XMPP accounts generally can place voice calls to other XMPP accounts, just like you experience on any other modern messaging app. With JMP, you can initiate voice calls with phone numbers the same way you can with other XMPP accounts. You can also receive calls. Likewise, you can send messages to phone numbers in the form of SMS using the same interface you would use to send messages via XMPP.
In technical terms, JMP serves as a bridge. It enables the XMPP infrastructure to communicate with the telephony infrastructure.
Some of the benefits of JMP are that it uses free software and the source code is all available online.
You can also register multiple phone numbers and have more than one account active on your phone at a single time. Whereas a dual-SIM phone limits you to two SIM cards and requires two separate phone plans, JMP lets you run as many numbers on your phone as you want—no SIM card required.
How to Use Cheogram and JMP
If you’re ready to give Cheogram and JMP a shot, the first step is to head over to JMP.chat and register a phone number.
Registering With JMP
Once you select a number, JMP will ask you whether you have a Jabber ID (remember, the terms Jabber ID and XMPP account are often used interchangeably) or need to register a new one. You can also tie your number to a Matrix account, but for this guide, let’s stick to Jabber.
If you are registering a new account, JMP will offer up a recommended free public server. These volunteer-run servers sometimes aren’t the most reliable, so if you plan to use JMP for your primary phone number, consider an XMPP provider with a proven track record like Conversations.im. Fun fact: the Cheogram app is actually based on Conversation.im’s Android app.
Once you’ve created a Jabber ID somewhere, JMP will ask you for the name of the Jabber ID that you’ve registered.
At this point, you’ve created a JMP account and connected it to your Jabber ID. You can now proceed to download the Cheogram app to finish the process.
How to Download and Set Up Cheogram
Unlike most Android apps, Cheogram isn’t available on Google Play. Instead, you need to download the app from the free and open-source F-Droid app store. Though if you don’t want to download F-Droid, you can install the APK directly from the Cheogram website. The latter option will leave you responsible for checking for updates on your own.
Once you have Cheogram installed, sign in using your Jabber ID. You will receive a message from JMP with instructions on how to complete registration.
Download: Cheogram (Free from F-Droid)
How to Add a Contact on Cheogram
Unlike a standard phone dialer, Cheogram requires you to add a number as a contact before placing a call. To do that, tap the chat bubble in the bottom right. Then hit the + button that appears in its place and select Add Contact.
Here, you can select which account to place the call using and whether to add a Jabber ID or a PSTN. Tap the latter and enter their 10-digit phone number.
When Cheogram adds this contact, it will automatically append “@cheogram.com” to the end of the number. This is because at its core Cheogram is an XMPP client, and this address tells the app how to connect the phone number.
When someone dials your number, your phone will ring and a notification will appear just as though you were receiving a regular phone call. The number will automatically appear as a new contact in your contact list.
Place a Call and Send Texts
Select who you wish to call from the list of contacts. You can tap the phone icon at the top to place a call. During the call, you can bring up the dialer to press buttons, as you might have to do when dialing corporate numbers and dealing with the automated system that picks up.
Your call history with the contact will appear in the chat thread alongside messages. To send an SMS message, simply enter your text in the entry field at the bottom of the chat.
Integrate Cheogram With Your Native Dialer
If you don’t want to open the Cheogram app to place calls, you can opt to use your native phone dialer instead. To do so, open Settings > Manage accounts in Cheogram, then select the cog next to Manage Phone Accounts to configure which accounts are active in your native dialer.
You can change Cheogram to be your default option instead of the number tied to the SIM card that may be in your phone.
Porting in an Existing Number
After trying out JMP with the number you registered, you’re welcome to port in your existing number from your current carrier. Instructions are available on the JMP website.
You Can Now Ditch Your Carrier
Now that you have JMP working through Cheogram, you no longer need an active SIM card to place calls or receive texts. You can communicate wherever you have an internet connection; you can ditch your SIM and depend on Wi-Fi instead.
However, you may still want to keep a SIM card active so that you have continuous access to mobile data and the ability to place 911 calls, which JMP numbers cannot dial.