Going Mobile with JMP.chat
Last modified December 25, 2024I have the problem of churning through technology and software at an ridiculous impressive rate.
You can check out some of what I use on my /uses page, but the upshot is I end up burning through a lot of options, testing and comparing them to each other until I feel like a solid winner emerges.
This leads to things like my settling on kitty terminal after comparing with wezterm and alacritty (although ghostty is an up-and-comer that looks promising there as well) or bic.sh vs. mkdocs or hugo.
Sometimes, it leads to settling on a certain process. For my mobile phone setup, this has been some combination of a Google Pixel or Motorola phone + LineageOS for years now. I got more streamlined at churning through new phones, but problems would still arise from time to time around issues in the rooting process, a bad LineageOS upgrade, or just concerns around losing the device entirely. Since I’m pretty much de-googled by now, relying on their services for backups and transferring data wasn’t an option.
Syncthing is a lifesaver for dead-simple syncing files between phones and laptops/desktops. Etesync for contacts, calendar, and task syncing. And ente.io for continuous backup of important photos if I miss anything between syncthing runs.
However, that still leaves a big question mark around backing up and restoring text messages and chats, and voicemails. Those were still a little too tied to an individual device and SIM card for my liking, which along with my other habit for churning through mobile service providers made the process of switching phones or providers more fragile than I wanted.
The Solution
Going without a number entirely isn’t an option as I have a number of people and groups that are still SMS/MMS only for the time being, so any solution would need to be able to port in my existing number and handle all the usual functionality of text, groups, and voice calling.
The big player here is Google Voice, which I already had a second number on for using to sign up for non-critical services, but that comes with its own problems. It’s tied to Google Services, which made it more difficult to use with LineageOS as well as being tied to the Google Voice app. It also doesn’t seem to have great support for multi-number usage which I would require if I were to port in.
JMP
Enter JMP: first-class support for multiple numbers, uses open standards like XMPP, and a strong commitment to open source via their Soprani.ca projects that back the service.
For $5 a month, the setup involves the following:
Signing up for the service and initiating a port-in of existing numbers. Initially, you’ll start with a JMP provided number you can accept from a random list offered, or search for available numbers based on area code or a vanity pattern like ~1234
to find numbers with 1234
in that order somewhere in the number.
Then, an XMPP server is required to serve as the home base for your JMP accounts to handle the longer-term storage and connection between your devices and JMP’s routing of text messages and media. Luckily, you can get a Snikket server included with the JMP subscription.
After a couple days (if you choose to port in over the default number), the ported numbers are ready to use. The Cheogram app by the same developers behind JMP has the best support for some of the more specific JMP features like importing contacts from your phone’s address book and better dialer integration via the native phone app on Android.
From here on out, use your phone as normal, subbing in Cheogram instead of your phone’s builtin messaging app!
2 Years of JMP
So 2 years into using JMP, would I recommend it? Yes!
At least, for more tech-savvy people looking for similar benefits I was. Being a relatively new service (just out of beta in 2023), there are still a number of papercuts that can be annoying when you hit them.
Prior to the recent addition of new routes that can be requested to have your number moved to via support, these issues could pop up:
- Being classified as a virtual number, not all online services would accept JMP numbers as valid.
- Group messages were limited to 10 members (+ yourself)
- overzealous censorship of certain words in messages
On the new, more premium route I haven’t seen issues with the above, but have seen instances of:
- rare, but a couple instances of delays in sending and receiving messages up to a few hours
- known issue of being unable to interact with Google Voice numbers
- initial issue with incoming calls that required a message to support who got it resolved after reaching out to the provider
Recently I haven’t seen anymore issues, and chalk it up to the fact I was an early adopter of the new route, but it could be especially frustrating to new users of JMP who aren’t comfortable doing a minimum of debugging and chatting with support.
Other general caveats right now include:
- RCS support is only in testing right now, with the developers stating it will be some time before it’s fully rolled out
- 911 calling won’t work fully due to how VoIP and 911 services interact and location information won’t be properly transmitted, so calling 911 with the onboard dialer should be preferred (which is mandated to work even without being signed up for a cell service through a traditional provider)
- the Cheogram app is currently Android only. Since XMPP is an open standard, any XMPP app will work (like Snikket on Apple devices) although they’ll lack some features that make interacting with the JMP service more convenient like dialer integration and a simplified flow for creating group texts
Phoning It In
Overall I’ve found JMP to not be without its flaws, but extremely worthwhile for what I want out of a service like this.
It offers the ability to bridge with the standard text messaging ecosystem with features that are difficult for even other much larger companies to offer, while also respecting user freedoms.
You’re not locked into their app, their XMPP server, or even their actual service (they offer support for registering to your twilio or vonage accounts as well, albeit those have fewer features and setup isn’t as seamless).
All that to say, if you’re looking around for a way to decouple a number from a SIM or mobile provider I haven’t found a better service than JMP that doesn’t require you to be locked into an ecosystem like Google. Other competitors either lack crucial features or cost more, and none have the commitment to openness that JMP and its developers have shown.
I definitely see myself sticking with JMP for the long haul, and urge anyone that’s at all curious about this sort of setup to give it a shot! Support is incredibly helpful, and there’s a public XMPP channel where the developers and users are active and constantly discussing the service, debugging issues and working on making it better as it matures.