benkuly / matrix-sms-bridge

Matrix bridge, that allows you to bridge matrix rooms to SMS with one telephone number only.
GNU Affero General Public License v3.0
76 stars 5 forks source link

Proposal: creating a modern android app that functions via push notifications and supporting it #17

Open NathanC opened 1 year ago

NathanC commented 1 year ago

I just set up my homeserver, and having SMS bridging is a critical feature for me. The provider linked in the documentation hasn't been touched in two years, has no documentation in the repo, and uses a local server. I'd like for my phone to constantly bridge SMS, regardless of if I'm on my home or mobile network. I think now is the critical time to support this, with Signal recently announcing they are dropping SMS support. I am migrating off of Signal (and have already set up the signal bridge) specifically because of it.

I'm intending to write my own android app, likely react native with native modules. It will be configured to push SMS/MMS to a domain, based on some protocol, and receive/be notified of messages via Expo or FCM push notification tokens. The bridge will need to be updated to understand it, and to store the push token for the app.

Core features I want to support (not sure which of these are new, please let me know):

Notably, MMS messages can be too large to send in a push notification, so the push would just have to notify the client that a new message is ready, causing it to request from the server (which would need to maintain a queue of some sort).

Alternative patterns:

I'm going to dig through the code more and look into the provider interface, but I'd appreciate someone knowledgeable about this who is willing to answer some questions/brainstorm with me. I'm not knowledgeable in Kotlin, and honestly am tempted to just rewrite this from scratch in TypeScript in a way that matches my vision for it, but I don't want to reinvent the wheel. What level of effort do you think it would be to update this project to support this new type of provider?


I know this will be a fair amount of work, but I'd really like to do this. Any info/help is appreciated.

benkuly commented 1 year ago

Thank you for this proposal and you interest to contribute to this project :slightly_smiling_face: Before you put too much work into it, maybe https://gitlab.com/beeper/android-sms could be a solution.

At the moment I've not much time for this bridge. I wanted to move it away from Spring Boot to Ktor and it needs to be updated to the new Trixnity version. Spaces is also something I wanted to support. But at the moment it is too much work for me and for now this bridge "just works" for one of my clients.

NathanC commented 1 year ago

Yeah, I've learned about android-sms recently and plan to look deeply into it, no use reinventing the wheel.

Would you mind if I messaged you on Matrix sometime to get a brief overview of the arch of this bridge and some of the challenges/lessons you learned from creating it? It sounds like, if I can't use android-sms or need to make a lot of custom changes, doing it from scratch vs using this repo is probably the right approach, but I'd love to learn from your experience with it.

thibaultmol commented 1 year ago

@NathanC any updates?