element-hq / element-android

A Matrix collaboration client for Android.
https://element.io/
Apache License 2.0
3.31k stars 702 forks source link

[Feature] Native SMS Bridging #598

Open WhyKickAmooCow opened 4 years ago

WhyKickAmooCow commented 4 years ago

As a user, a major convenience add from using Matrix would be native bridging to SMS. If this were the case, by virtue of using Matrix the ability to interact with SMS from any platform (e.g. Laptop, Tablet, etc.) communications opportunities through Matrix would increase vastly as most of the world uses SMS as a baseline level of communications. Through the convenience add of having this communication ability on any platform, and consolidated, the value of Matrix to a layperson would increase dramatically.

The main foreseeable issue with implementing this appears to be puppeting the SMS users in Matrix without the use of a bot account, or access to the homeserver's application services API.

Perhaps there is a way around this, or maybe there needs to be a feature like 1:0 room puppeting in the matrix spec.

Please let me know your thoughts on this issue.

WhyKickAmooCow commented 4 years ago

I have made a rough diagram of what system could be implemented to achieve this. This would require the Riot app being registered as the default messaging app for one thing.

Sending the message as a puppeted user at this point would require the use of a bot user. This may be doable, but would require another authenticated user, require additional configuration, and may hugely over complicate the app.

Another entire matrix session for the bot user, and a separate module to handle most of this functionality would significantly reduce the complication but I'm not sure how much overhead this would create.

A question I would like to ask in relation to this is: does the messaging service setup also notify the app of messages that they have sent, or only messages from other users? If the latter is true, then implementation will be much easier.

Riot SMS - 1

A concern with sending SMS within riot would be making sure that a loop of, "sending to matrix -> riot receives message from user -> send SMS" doesn't happen as this would result in two SMS messages being sent for every one in the Riot app.

Riot SMS - 2

bmarty commented 4 years ago

Hi @WhyKickAmooCow , Thanks for the suggestion. If I understand correctly, the Riot mobile client will act as a bridge to send SMS from a message from the matrix world and as the opposite: send a message to the matrix world with the content of a received SMS. Is it correct?

@ara4n any thought about this idea?

WhyKickAmooCow commented 4 years ago

@bmarty That is correct.

bmarty commented 4 years ago

@WhyKickAmooCow https://github.com/tijder/SmsMatrix may help

frandavid100 commented 4 years ago

I have started using SmsMatrix today, and it seems to work fine. However, it would be nice not having to keep two different apps installed on your device when you really only want to use one. Could it be integrated into RiotX?

WhyKickAmooCow commented 4 years ago

More than using two separate apps there are larger issues with using SMSmatrix:

In combination, this leads to SMS bridging being inconsistent and unreliable with having to use different apps depending on circumstance, and with them not being synchronized. The current state of bridging is hardly usable.

RokeJulianLockhart commented 2 years ago

My opinion is that communication that has been facilitated by the Secure Message Service should not be synchronised between machinery whose hardware is not supportive of it. However, I am very supportive of implememtation of support for the Secure Message Service for machinery whose hardware is supportive of it. Consequently, I should be able to utilise the Secure Message Service during utilisation of my smartphone via Element.