XMPP: A Comeback Story Pt. II - Making Anonymous Phone Calls & Texts With JMP.Chat

Bridge yourself to phone networks using an anonymous phone number and your XMPP client

Take Back Our Tech
Take Back Our Tech

Watch The Video Interview

When newcomers join XMPP for the first time they are often blown away by the simplicity and quality of the messaging, voice calls, and video calls. The second realization is that although they'd love to use XMPP 100% of the time - they don't know many people in real life that they can talk to.

I'm sure you're already spreading the magic of XMPP to friends and family, but while we wait - we can bridge the gap between ourselves and ourselves and the rest of the world using JMP.chat.

#TBOT Challenge

  • Tell 3 people you know about XMPP (share the first article) and begin an encrypted chat or voice/video call with them.
  • Watch today's video/read the article and evaluate if JMP.chat is right for you
  • If it is, register using the tutorial at the end of the article & video.
  • Let us know you did on our decentralized social media or XMPP group (tbot@group.chat.above.im)


Teebot wants you to follow us on these alternative social platforms:

#TakeBackOurTech Mastodon
XMPP Group
Telegram Channel
Telegram Discussion


Above Agency has a promotional partnership with JMP.chat. Customers of the above.phone & Above Privacy Suite receive their first month of JMP.chat free!

Above Privacy Suite – above.phone

We do not receive any money from promoting JMP.chat or referring new customers. We support their initiative because:

  • We celebrate the free & open source ecosystem that JMP.chat was created in
  • We believe in and support the useful bridge of XMPP to phone networks
  • We see the value in and support anonymous on-ramps to phone networks

What is JMP.chat?

JMP.chat is a collection of technologies that people can use to register real phone numbers to be used for calling and texting over XMPP.

Once you have registered your XMPP Account (Jabber ID or JID) to a phone number on JMP.chat, you can give the phone number out and receive calls & SMS within your XMPP client. You can also add phone numbers as contacts to initiate calls and send text messages.

JMP.chat and the underlying technology is all free & open source, and no personal information is needed to register your XMPP account to a phone number. This makes it a fairly anonymous way to use a phone number.

You can start the registration process through the official web site, select a phone number, and communicate with the JMP XMPP chatbot to complete the registration and pay for your service. Registering a phone number on JMP.chat costs $2.99 per month and can be paid in Bitcoin.

Your phone number on every device

How does it work?

The communication process between XMPP and phone networks happens in three stages:

  1. First your XMPP client will send a piece of XML through your XMPP server to JMP.chat/ Cheogram's XMPP server.
  2. Cheogram knows which phone number to dial based on the contact you're communicating to, and translates the XML messages so it can be understood by JMP.chat's telephony endpoint. The communication up to this point has been encrypted using TLS on each link.
  3. The telephony endpoint (Asterisk) receives the message and performs the dial out to start the phone call through a SIP (Session Initiation Protocol) provider. This part of the communication occurs over telephone networks and cannot be considered private.
  4. If the call connects, your device and the JMP.chat server begin streaming call data to each other, encrypted using a session key generated earlier on in the handshake.

Under The Hood

The magic of JMP.chat can be credited to a family of free & open source technologies that connect XMPP to the phone network (not all are listed here):

  • Soprani.ca - bridges the phone network to standard text/voice/video protocols
  • SGX - (Soprani.ca Gateway to XMPP) translates incoming messages on the phone network to XMPP for SMS, MMS pictures and group texts.
  • Cheogram - a set of technologies, used to connect XMPP accounts to phone numbers, also used to send XMPP messages to SMS on JMP.chat
  • Asterisk - an open source framework for communication applications. It runs on the JMP server used to send communications out towards phone networks

If you are a developer and interested in contributing, please see the Getting Started page of Soprani.ca



JMP.chat's privacy and transparency statement communicates the details of how data is processed, we have summarized them here for your convienience. Refer to the statement for the most accurate and up to date notice.

  • All metadata and content of your phone calls, texts, and pictures messages are not private traveling over phone networks. Your data will pass through many phone companies, including but not limited to the phone company of your recipient. Do not consider communications over cell networks private.
  • Metadata and content of text messages may be retained by JMP.chat for 7 days
  • Media in MMS messages and voicemail recordings need to be retained until retrieved by all of a users devices (the devices that are logged into your XMPP account), for up to 30 days.
  • JMP will comply with all legitimate Canadian law enforcement requests. Remember that countries that have a Mutual Legal Assurance Treaty with Canada have a mechanism to request data from companies like JMP.chat should it be used criminally.

How The Project Came Together

Denver (ossguy) & Stephen (singpolyma) met at the University of Waterloo Computer Science program. It was here they became proponents of free/libre/open-source software and started working with different technologies, including XMPP.

Both Denver and Stephen became aware of the limitations of VoIP as a communications solution, such as the lack of picture messaging. They collaborated together to create the first version of JMP which bridged XMPP & SMS. Around this time, a member of their community submitted a prototype of an Asterisk server could receive incoming SIP calls and notify an XMPP client. Denver & Stephen took this prototype and built upon it worked together to get inbound calls working, and JMP with SIP voice was added by the end of 2017.

As the XMPP community quickly developed, they added more features and an easy registration process, and today its a wonderful companion technology to use ontop of XMPP for phone communications.

To hear more updates from them:

JMP Blog

JMP.chat Features

  • Send and receive text & picture messages (SMS & MMS) between JMP numbers and any other Canadian or US phone number, as well as most countries in the world.
  • Send and receive group and text messages. (currently in alpha)
  • Make phone calls to Canadian or US numbers.
  • Receive inbound calls internationally from most countries.
  • Receive voicemail if you don't answer in voice message and transcribed formats.


Teebot wants you to follow us on these alternative social platforms:

#TakeBackOurTech Mastodon
XMPP Group
Telegram Channel
Telegram Discussion

How To Sign Up

  1. Go to https://jmp.chat
  2. Search for a phone number (use an area code)

3. Select your desired phone number by clicking on it. If you have a Jabber ID (XMPP Address) already, click on 'I already have a Jabber ID...'. If you don't then follow along with our first XMPP article.

4. Then enter your Jabber ID in the field that appears so that JMP.chat can reach out to you to begin the registration process.

5. Now logon to your XMPP client to find a new message from Cheogram (cheogram.com). Follow the prompts to verify your account, select your payment currency, and your payment method. Customers of the Above Privacy Suite get their first month free and no payment is needed.


Personal Review

JMP is the much needed extension of XMPP that will serve current XMPP users well and bring countless others to the ecosystem. Its also a tunnel phone communications that dramatically improves the privacy of the individual. The following are a few observations I've made in its connection with phone tracking and ways you might use it.

  • There is only one point of connection to the phone network and that is through JMP. In the first article on phone privacy we observed how each cellular connection was associated with a cell tower and logged. This gives cellular service operators and agencies privy to those logs great ability to identify someone based on the locations the phones were used. In addition, the techniques of cell phone triangulation and physical tracking devices installed on towers are heavily used. JMP takes many of these mechanisms out of the equations since you are not connecting to a nearby cellphone tower, leading to greater privacy and anonyminity for the origin of the call.
  • As far as I know, this is the least amount of personal information needed to get VoIP phone service. You just need your XMPP account and to use the web based front-end. Other services I've seen at this level of anonyminity cost far more and have less features, such as SMS only on a web based front end.
  • The JMP experience fits in incredibly well alongside your existing XMPP clients. You have a way to make phone calls and text messages from your computer or laptop, all synced together. Being able to send pictures, join MMS group messages, and receiving voice mail audio clips and transcription is the icing on the cake.

Considerations of Use

If you want your JMP account to stay private and separate from your identity, I would recommend the following guidelines:

  • Protect yourself by registering your XMPP account anonymously as possible, avoid using your real name or a username tied to your real identity.
  • Use a trusted VPN at all times when connecting to the JMP Website and using your XMPP server, this will limit the personal information both of these parties have access to.
  • Do not give away your identity in your phone calls or text messages. This may be difficult especially when contacting previous contacts, you may need to establish you are contacting them through JMP on a separate channel.
  • The more calls and texts you make to previous acquaintances, the easier it is for programs like Hemisphere to link your JMP number to your previous phone numbers. Get your contacts onto XMPP by sharing the first XMPP article so you don't need to worry about this. If you need to stay in touch with previous contacts while maintaining relative anonyminity, have them get a new phone number as well.

Let's end this article with gratitude for the developers in the Free & Open Source Software community who continue to keep hacking for the greater good.

Till next time - #TakeBackOurTech.


Take Back Our Tech

Lets use technology that doesn't use us.