How to Replace Your Carrier on Android Using These Fully Open Source Tools

Carriers are not known to be the most trustworthy companies. They have a habit of locking people into two-year contracts, overloading SMS messages, and tracking web traffic in order to sell ads. It doesn’t even enter 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? Well, as is often the case, with the right set of open source tools, you can! The Cheogram application associated with the JMP service is an easy way to disconnect your phone number from a SIM card.

What is the 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 application”.

Simply put, it is an instant messaging app that is also capable of making phone calls, as long as you log in with an account that supports those features. In more technical terms, it is an XMPP client with additional functionality needed to interact with the telephone network.

XMPP, for the uninitiated, is an open instant messaging protocol similar to email, where someone with an account on one server can easily send a message to someone on another. This contrasts with better-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 original name of the protocol.

Cheogram isn’t actually the service that will detach you from your carrier, but it’s the app you’ll install on your phone and interact with once you’ve set everything up.

Cheogram is part of a suite of software from Soprani.ca, a group working to create freedom-respecting and interoperable communication tools that are based on open standards. The easiest way to use Cheogram is to create 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 log into an existing XMPP account.

XMPP accounts can generally make voice calls to other XMPP accounts, just like you do on any other modern messaging app. With JMP, you can initiate voice calls with phone numbers in the same way as with other XMPP accounts. You can also receive calls. Likewise, you can send messages to phone numbers as SMS using the same interface you would use to send messages via XMPP.


In technical terms, JMP serves as a bridge. It allows the XMPP infrastructure to communicate with the telephony infrastructure.

Some of the advantages of JMP are that it uses freeware and the source code is fully available online.

You can also save multiple phone numbers and have more than one account active on your phone at a time. While 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 without a SIM card.

How to use Cheogram and JMP

If you’re ready to try Cheogram and JMP, the first step is to go to JMP.chat and register a phone number.

Registration with JMP

Once you select a number, JMP asks if you have a Jabber ID (remember that the terms Jabber ID and XMPP account are often used interchangeably) or if you need to register a new one. You can also link your number to a Matrix account, but for this guide, let’s stick to Jabber.

If you create a new account, JMP will offer you a recommended free public server. These volunteer-run servers are sometimes not the most reliable, so if you’re considering using JMP for your primary phone number, consider a proven XMPP provider like Conversations.im. Fun fact: the Cheogram app is actually based on Conversation.im’s Android app.

Once you have created a Jabber ID somewhere, JMP will ask you for the name of the Jabber ID you registered.

At this point, you have created a JMP account and connected it to your Jabber ID. You can now download the Cheogram app to complete the process.

How to download and configure Cheogram

Unlike most Android apps, Cheogram is not available on Google Play. Instead, you need to download the app from the free and open-source F-Droid app store. However, if you don’t want to download F-Droid, you can install the APK directly from the Cheogram website. This last option will leave you responsible for checking for updates on your own.

Once Cheogram is installed, log in using your Jabber ID. You will receive a message from JMP with instructions on how to complete the registration.

To download: Cheogram (Free from F-Droid)

How to add a contact on Cheogram

Unlike a standard phone dialer, Cheogram asks you to add a number as a contact before placing a call. To do this, tap the chat bubble in the bottom right. Then press the + button that appears in its place and select Add contact.

Here you can select which account to use to make the call and whether you want to add a Jabber ID or PSTN. Tap the latter and enter their 10-digit phone number.

When Cheogram adds this contact, it will automatically add “@cheogram.com” to the end of the number. Indeed, 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 as if you were receiving a normal phone call. The number will automatically appear as a new contact in your contact list.

Make a call and send SMS

Select the person you want to call from the contact list. You can tap the phone icon at the top to make a call. During the call, you can bring up the dialer to press buttons, just 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 next to the messages. To send an SMS message, simply enter your text in the input field at the bottom of the chat.

Integrate Cheogram with your native composer

If you don’t want to open the Cheogram app to make calls, you can choose to use your native phone dialer instead. To do this, open Settings > Manage Accounts in Cheogram, then select the cog next to Manage phone accounts to configure active accounts in your native dialer.

You can make Cheogram your default option instead of the SIM linked number that may be in your phone.

Porting an existing number

After trying JMP with the number you registered, you can transfer your existing number from your current carrier. Instructions are available on the JMP website.

You can now abandon your carrier

Now that JMP works through Cheogram, you no longer need an active SIM card to make calls or receive SMS. You can communicate wherever you have an Internet connection; you can ditch your SIM card and depend on Wi-Fi instead.

However, you can still keep an active SIM card so you have continued access to mobile data and the ability to make 911 calls, which JMP numbers cannot dial.

Comments are closed.