There aren’t any because there’s no point. And no, I hope this won’t be the standard.
There are two things called “RCS”: there’s a theoretical specification; and exactly one implementation that has managed to get any real traction, and that’s purely because it’s pushed by Google.
The RCS spec was attempted by various companies and all implementations died when they figured out they’d have to make them compatible and open their servers to each other. Even if they wanted to it would be a mess.
SMS succeeded because it doesn’t need servers, it’s just pieces of text being sent around.
Google is the only one still pushing their RCS because they figure if they tie their version of it into Android they will own the messaging on Android forever. They don’t want interoperability either.
If Google gets their way and their RCS becomes the EU standard it will lock the EU into a proprietary platform from one of the most vile data predators in the world.
Is the Google version of RCS not compatible with someone else’s RCS, then?
As in, I take it nobody else wants to run a server because it costs money, right? But suppose I did, and I had an RCS app to run with it. Would someone using my app be able to send a message to an Android user using Google Messages?
No. Google Messages only talks to Google’s servers.
The way it’s supposed to work is Google has some servers and an app, and you have your own servers and own app, and when someone sends a message from your app it goes your app > your server > Google server > Google app. And the same in reverse.
But in reality Google doesn’t let anybody’s servers talk to theirs and tries to make everybody use their app and their servers. Which they can afford to do because they own Android and can shove their app down anybody’s throat.
SMS uses servers, those servers just happen to be your telco’s servers. RCS was designed to work the same way, exchanging messages via servers hosted by carriers.
Nobody cared about RCS so Google took it upon themselves to host their own RCS server. Now most people who use RCS, use Google’s servers.
Assuming spec compliancy, anyone can make an app that communicates with a carrier’s servers, or with Google’s servers for that matter. In practice, the standard is obscure and the lack of system integration will have RCS apps fighting over who gets to do the RCS registration for your phone number.
Custom ROMs and such will probably get RCS support outside of Google Messages at some point in the future, and perhaps rooted phones will be able to use those same apps as well when that eventually happens. However, as it stands, RCS on Android would allow you to use one single app for rich messaging, and all other apps (including the Android system APIs) would have to fall back to SMS.
Furthermore, the RCS Google supports actually uses an E2EE scheme that isn’t publicly documented. That means your custom RCS app will likely need to reverse engineer Google’s encryption code (I believe it’s based on Signal for one on one, and MLS for groups?) or you won’t be able to read half of the messages.
SMS only transits the telco infrastructure, it doesn’t need servers in the client-servers sense, RCS does. Not only that but RCS needs them because it includes hosting for things like images and videos that are sent in messages.
I don’t think Google will allow anybody to partake in “their” RCS, the least of all custom ROMS. They will make it another thing like SafetyNet, designed to maintain their own control.
SMS very much needs servers. SMS messages go from your device to the SMSC which will store the message and try to transmit it to your phone in case your phone isn’t on or connected. In theory you could set up direct SMS messaging, but in practice there’s a layer of indirection because messages would get lost.
Since SMS can’t do anything but text, MMS is required to send images and videos, and those too travel through an MMSC so messages are available when your phone is offline (or if it doesn’t support MMS, which was something MMS had to be designed for). MMS can’t work directly between clients, it had to go through a server.
Like everything designed for carriers, MMS is a mess of moving parts and optional services that only a committee could’ve designed:
SMSCs and MMSCs may not be available over the internet, but they are very much a client-server architecture. The store-and-forward server approach is also what Signal and supposedly WhatsApp use.
Are there any FOSS RCS apps? Should this be the ‘open’ standard the EU are enforcing?
There aren’t any because there’s no point. And no, I hope this won’t be the standard.
There are two things called “RCS”: there’s a theoretical specification; and exactly one implementation that has managed to get any real traction, and that’s purely because it’s pushed by Google.
The RCS spec was attempted by various companies and all implementations died when they figured out they’d have to make them compatible and open their servers to each other. Even if they wanted to it would be a mess.
SMS succeeded because it doesn’t need servers, it’s just pieces of text being sent around.
Google is the only one still pushing their RCS because they figure if they tie their version of it into Android they will own the messaging on Android forever. They don’t want interoperability either.
If Google gets their way and their RCS becomes the EU standard it will lock the EU into a proprietary platform from one of the most vile data predators in the world.
Is the Google version of RCS not compatible with someone else’s RCS, then?
As in, I take it nobody else wants to run a server because it costs money, right? But suppose I did, and I had an RCS app to run with it. Would someone using my app be able to send a message to an Android user using Google Messages?
No. Google Messages only talks to Google’s servers.
The way it’s supposed to work is Google has some servers and an app, and you have your own servers and own app, and when someone sends a message from your app it goes your app > your server > Google server > Google app. And the same in reverse.
But in reality Google doesn’t let anybody’s servers talk to theirs and tries to make everybody use their app and their servers. Which they can afford to do because they own Android and can shove their app down anybody’s throat.
SMS uses servers, those servers just happen to be your telco’s servers. RCS was designed to work the same way, exchanging messages via servers hosted by carriers.
Nobody cared about RCS so Google took it upon themselves to host their own RCS server. Now most people who use RCS, use Google’s servers.
Assuming spec compliancy, anyone can make an app that communicates with a carrier’s servers, or with Google’s servers for that matter. In practice, the standard is obscure and the lack of system integration will have RCS apps fighting over who gets to do the RCS registration for your phone number.
Custom ROMs and such will probably get RCS support outside of Google Messages at some point in the future, and perhaps rooted phones will be able to use those same apps as well when that eventually happens. However, as it stands, RCS on Android would allow you to use one single app for rich messaging, and all other apps (including the Android system APIs) would have to fall back to SMS.
Furthermore, the RCS Google supports actually uses an E2EE scheme that isn’t publicly documented. That means your custom RCS app will likely need to reverse engineer Google’s encryption code (I believe it’s based on Signal for one on one, and MLS for groups?) or you won’t be able to read half of the messages.
SMS only transits the telco infrastructure, it doesn’t need servers in the client-servers sense, RCS does. Not only that but RCS needs them because it includes hosting for things like images and videos that are sent in messages.
I don’t think Google will allow anybody to partake in “their” RCS, the least of all custom ROMS. They will make it another thing like SafetyNet, designed to maintain their own control.
SMS very much needs servers. SMS messages go from your device to the SMSC which will store the message and try to transmit it to your phone in case your phone isn’t on or connected. In theory you could set up direct SMS messaging, but in practice there’s a layer of indirection because messages would get lost.
Since SMS can’t do anything but text, MMS is required to send images and videos, and those too travel through an MMSC so messages are available when your phone is offline (or if it doesn’t support MMS, which was something MMS had to be designed for). MMS can’t work directly between clients, it had to go through a server.
Like everything designed for carriers, MMS is a mess of moving parts and optional services that only a committee could’ve designed:
SMSCs and MMSCs may not be available over the internet, but they are very much a client-server architecture. The store-and-forward server approach is also what Signal and supposedly WhatsApp use.
would much prefer matrix as the standard
If they did, it wouldn’t work on Android. There’s no user-level API. So only apps that come bundled with the phone can use the API.