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

Freight forwarders are not known for being the most trusted companies. They’ve historically locked people into two-year contracts, overcharged SMS messages, and tracked web traffic to sell ads. That doesn’t even include the information they share with law enforcement or intelligence agencies.


What if you could use a smartphone without even having to deal with a carrier? Well, as is often the case, with the right open source tools, you can! The Cheogram app combined with the JMP service is an easy way to unlink your phone number from a SIM card.

What is cheogram?

Cheogram describes itself as “a suite of services that connects all open communication networks and allows you to reach all your contacts from a single app.”

In layman’s terms, it’s an instant messaging app that can also make phone calls as long as you sign in with an account that supports such features. Technically, it is an XMPP client with additional features required to interact with the telephone network.

XMPP, for the unfamiliar, is an open instant messaging protocol, similar to email, that allows anyone with an account on one server to easily message someone on another. This is in contrast to 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 separates you from your carrier, but it’s the app you install on your phone and interact with once you’ve got everything set up.

Cheogram is part of a software suite from Soprani.ca, a group working to develop liberty-respecting and interoperable communication tools based 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 can generally make voice calls to other XMPP accounts, just like you’re used to from any other modern messaging app. With JMP, you can initiate voice calls with phone numbers just like you would with other XMPP accounts. You can also take calls. Likewise, you can send messages in the form of SMS to phone numbers using the same interface you would use to send messages via XMPP.


Technically, JMP serves as a bridge. It enables the XMPP infrastructure to communicate with the telephony infrastructure.

Some of the advantages of JMP are that it uses free software and all source code is available online.

You can also register multiple phone numbers and have more than one account active on your phone at the same time. While a dual SIM phone limits you to two SIM cards and requires two separate phone plans, JMP lets you use as many numbers on your phone as you want—no SIM card required.

How to use Cheogram and JMP

If you’re willing to give Cheogram and JMP a shot, the first thing you need to do is go to JMP.chat and register a phone number.

Registration with JMP

After you select a number, JMP will ask you 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 we’ll stick with Jabber for this guide.

When you register a new account, JMP offers a recommended free public server. These volunteer-run servers are sometimes not 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 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 proceed to download the Cheogram app to complete the process.

Here’s how to download and set up 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. If you don’t want to download F-Droid, you can install its APK directly from the Cheogram website. The latter option requires you to check for updates yourself.

Once you’ve installed Cheogram, sign in with your Jabber ID. You will receive a message from JMP with instructions on how to complete the registration.

Downloads: Cheogram (free from F-Droid)

How to add a contact to Cheogram

Unlike a standard phone dialer, Cheogram requires you to add a number as a contact before making a call. To do this, tap on the speech bubble at the bottom right. Then press the + button that appears in its place and select add contact.

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

When Cheogram adds this contact, “@cheogram.com” is automatically appended to the end of the number. This is because Cheogram is an XMPP client at its core, 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 regular call. The number will automatically appear as a new contact in your contact list.

Make a call and send texts

Select who 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 invoke the dialer to press buttons, as you may need to do when dialing corporate numbers and dealing with the automated system picking up.

Your call history with the contact appears next to messages in the chat thread. To send an SMS message, just enter your text in the input field at the bottom of the chat.

Integrate Cheogram into your native dialer

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

You can change Cheogram as your default option instead of the number, which is tied to the SIM card that may be in your phone.

Porting an existing number

After you’ve tried JMP with the number you registered, you’re welcome to take your existing number with you from your current provider. Instructions are available on the JMP website.

You can now give up your carrier

Now that JMP works through Cheogram, you no longer need an active SIM card to make calls or receive text messages. You can communicate anywhere you have an internet connection; You can ditch your SIM card and rely on Wi-Fi instead.

However, you may still want to keep a SIM card active so you have constant access to cellular data and the ability to make 911 calls, which JMP numbers cannot dial.

Leave a Reply

Your email address will not be published. Required fields are marked *