tijder / smsmatrix Goto Github PK
View Code? Open in Web Editor NEWA simple SMS <--> Matrix bridge.
Home Page: https://matrix.to/#/#smsmatrix:matrix.org
License: GNU General Public License v3.0
A simple SMS <--> Matrix bridge.
Home Page: https://matrix.to/#/#smsmatrix:matrix.org
License: GNU General Public License v3.0
Would you be OK if this app is published on f-droid?
If you would like it, you'll need to release the code under an OSI license.
I have one contact, let's call him "Him" that has no 3G connection, only wlan. Sometimes Him would contact me through SMS (Him-SMS) and sometimes through his Riot account (Him-Riot). Thus I have 2 conversations with Him in my riot client (Me-Riot) :
It would be nice to be able to merge these conversations somehow. And later handle encryption between the riot contacts or even better between the riot contacts and the bot.
After the user saved its settings. The Matrix service is started, when the Matrix service receives an auth error it should be shown to the user in the gui.
SmsMatrix doesn't look up the name of the contact correclty. It changes the username to the phone number instead of the full name. This used to work on LineageOS 15 and doesn't work anymore on 16. Maybe because I disabled the Google contacts in my Contacts app and use Davx5 instead?
Looks to be line 48 in MMSMonitor.java
Uri uriMMSURI = Uri.parse("content://mms-sms");
Lineage OS - 15.1.20181029-Nightly-cheeseburger
Android 8.1.0
I've had this happen twice (but not always): I respond to someone through matrix through the sms bridge and then over a couple of days the app keeps sending the same message a number of times.
Is there any easy way for me to debug?
Some telephone numbers are calling with 0612345678, but are SMS with +31612345678. Now the bridge creates multiple rooms for the same telephone number.
I was surprised not to find this option in Android's settings. Could it be added?
Will be good to create dynamic long polling intervals in app for minimize battery usage - after receive SMS - decrease poll interval to minimal for 15 minutes (maybe do this configurable), because chances that user reply to SMS in this time are maximum, and increase poll interval after this time to longer time (configurable too). This will minimize battery and traffic usage with minimum user behavior.
At now SmsMatrix create room and set SMS sender phone number in room topic. Will be good to see it in room name, and if we have contact name from Android addressbook - set contact name instead of phone number, and keep number in room topic.
on version 0.0.9 i can recieve messages fine, but sending does not work. This seems to be a regression from a previous version, where it worked fine.
First of all, thank you for this awesome application, which I discovered only recently.
My problem is that the Matrix ID to which I want to send the SMS contains uppercase letters (e.g. @myMatrixID:myserver.com
), and SmsMatrix seems to convert it into lowercase. When I connect to the bot account, I can see that all the messages have been sent to that same wrong Matrix ID (e.g. @mymatrixid:myserver.com
). Thankfully, that wrong Matrix ID seems not to exist.
I know that it is a bad idea to have uppercase letters in my Matrix ID, but there is no easy way for me to change that. I hope that fixing this SmsMatrix bug will be simple.
to
If two sms are received close after each other. Then the app can't find a room with the phonen number even it just created one.
Receiving a sms when the app is starting will also not find the correct room.
The app could (if permission is given) read the contacts directory, find the contact name and use it instead of the number.
Also you could use it to set the rame name instead of only the topic.
Will be good to provide info about SmsMatrix in Matrix.org application service list https://matrix.org/docs/projects/try-matrix-now.html#application-services
This can be done via pull request with creating new description file in https://github.com/matrix-org/matrix-doc/tree/master/supporting-docs/projects folder, here is example: matrix-org/matrix-spec-proposals#974
Hi!
This app is really a cool idea. It also seems that messages that got bridged from matrix to sms are stored in the sms app of android. What does not happen is the other way round:
Writing a sms with the android app should be stored on matrix. So it would be in sync. It should be possible to read the sent sms (there are sync apps out there). But that would probably mean to save a second set of credentials in the app.
What do you think?
Greetings!
Valen
It would be nice to have a place to discuss and troubleshoot things that don't fit in github issues.
Will be good to add support for listening other chat apps on current Android system via system notifications. Via this way we will can intercept and bridge to matrix messages in apps, that not provide any API to third-party systems, like WhatsApp, Viber, etc.
Example of working intercepting notifications and replying to messages we can see in many apps, eg in Pushbullet: https://blog.pushbullet.com/2015/02/17/reply-to-whatsapp-hangouts-and-more-from-your-computer-with-pushbullet-on-android/
This happens to me on cyanogenmod 13.0 (android 6.0.1), com.android.messaging 1.0.001, smsmatrix 0.0.6 and synapse 0.25. The SMS usually gets sent to the same room, but cut up in many posts or in the wrong order. For a new number this also happened but sent to different rooms, maybe related or same as #13.
Thanks a lot for writing this program, so happy when I found it yesterday! :-D
At now SMS that sent via SmsMatrix are not available in SMS history of Android app. Will be good to save them in Android too, for keep whole conversation in Android SMS storage.
Hi, I'm a logo designer I just saw your project and if you want I can design a logo for your project. So, what do you say?
Hello,
When trying to build this app with Gradle, I get the following error:
A problem occurred configuring root project 'SmsMatrix'.
> Could not resolve all artifacts for configuration ':classpath'.
> Could not find aapt2-proto.jar (com.android.tools.build:aapt2-proto:0.3.1).
Searched in the following locations:
https://jcenter.bintray.com/com/android/tools/build/aapt2-proto/0.3.1/aapt2-proto-0.3.1.jar
As explained here, these changes seem to fix it:
diff --git a/build.gradle b/build.gradle
index ae9fbaf..ecd45f4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,8 +2,8 @@
buildscript {
repositories {
- jcenter()
google()
+ jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
@@ -15,8 +15,8 @@ buildscript {
allprojects {
repositories {
- jcenter()
google()
+ jcenter()
}
}
I'd like to suggest extending the functionality to encompass all notifications coming to a specific device, not limited to SMS.
This functionality exists within NotifyRelay:
https://github.com/no-go/NotifyRelay
Albeit over SMS or XMPP.
Installed the app from fdroid and set it up. 2 people sent me messages which did indeed create rooms in Matrix. However, each message they sent me was replied back to them via SMS - got very annoying very quickly! This is in Lineage if it helps.
I created a matrix.org account for the sms bot as per the readme and put the information into the app. I have tested it a few times, but I'm not seeing the bot appear in my main account. Is there any way to check for login issues or errors? Thanks.
If you want to use this app on a public matrix server, the admin of that server will technically have access to the plain text of all the messages sent through the app and this could be a serious leak of privacy.
If you host your own server that doesn't have to be a big deal, which is my use case, but for more general use end to end encryption would be a good solution to this problem.
Since you already use matrix-android-sdk it should be possible to support e2ee.
The app sends message with the type m.message
insteal of m.text
. It still works with riot clients, but not with weechat.
Any chance to have Android 5 (Lollipop) support? Riot.im runs just fine on it, but F-Droid tells that SmsMatrix is not compatible. Or is it because of something else than the Android version?
The app crash when I receive a phone call, initiate a phone call, or end a phone call.
This is not 100% of the time, but very frequent.
I don't have a logcat for this error but I can try to install the needed tools to provide it if needed.
Note : I'm using LineageOS 15.1 without the google play services (and had the same error with OmniRom, without the play services too)
After moving to a new phone, incoming SMS doesn't get bridged to Matrix at all. Messages sent to previously created rooms are bridged to SMS just fine.
The only related thing I could find in logcat is this:
11-14 20:26:26.148 1092 1112 W BroadcastQueue: Permission Denial: receiving Intent { act=android.provider.Telephony.SMS_RECEIVED flg=0x19000010 (has extras) } to eu.droogers.smsmatrix/.ReceiverListener requires android.permission.RECEIVE_SMS due to sender com.android.phone (uid 1001)
The app has all the permissions. I tried both the latest release and a self-compiled version from a few days back.
Huawei P20 Pro / Android 8.1
First of all, thanks a lot for this application ! It's perfectly what I needed.
I had a small issue setting it up : I input a wrong password, then updated it to the correct one, but it still wasn't working. It did when I force stopped the application, so I suppose the session is not reset when the connection parameters change.
Maybe a "test connection settings" button would help too ?
Again, thanks a lot, you just made my day :)
They are considered as nomal room currently.
I would like to have (SMS) in the room name to distinguish the rooms from the other rooms for Whatsapp or Matrix. If you could add the text field for a room name on initialization. It might be empty or with placeholders %n (SMS)
where %n gets replace by the name.
This app works great. However, once you have set it up, it's very unlikely that you will want to open it again. Could there be an option to hide it from the app launcher?
Now if the user leave a room and the same phone number send a sms. The bridge will post it in the room without user in it.
If android is Optimising battery use it will kill the matrix service. The app will start listening again for a couple minutes (until killed by android) if we receive a text message or if the app is manually opened.
Hi,
It would be nice to be able to manually blacklist some numbers in smsmatrix settings, so that no information leaves the android phone and flies on the web through matrix. Even better would be to be able to answer a keyword to the bot that makes it erase the riot room and the smsmatrix app adds the number the blacklist.
Be able to work with a whitelist could be helpful in some use case too.
Cheers.
Many services sends verification codes, passwords and other confidential info to phone, that not good to share via Matrix bridge. But if we totally ignore them, this was not so good, because user will not informed that new sms is received and unbridged.
For solve this problem, will be good to implement mode for bridge sms from new contacts only after user confirmation.
So, SmsMatrix must handle list of whitelisted/blacklisted contacts and bridge all sms from them normally.
But when received sms from new contact - SmsMatrix bot will write in some "Status" room message to user: "Received new sms from {phone_number} contact. Allow bridge it to Matrix? [yes/no]".
And bridge sms content only after receiving yes
answer.
What do you think about this idea?
Currently a reply will simply send the body of the message, it should instead send something like:
[In reply to: "Hey steve!"]
Hi there Jeffrey!
Or maybe it should just ignore replies and send them as normal messages, not sure.
Hi, i found out in Version 0.16 that if protocol "https://" is missing in URL the app won't run and it won't start anymore. The only fix then is complete deinstallation/cache deletion/smartphone restarting.
regards, Mario
It would be great in some situations to be able to bridge SMS to multiple users. For example, I have a "family number" where I receive SMS from my city, and various ones that are interesting to the whole family. It would be great to be able to bridge them to all family matrix accounts. It could be of some use for any group of people.
How can I send SMS to a number that I haven't got SMS yet, thus no chat in Matrix available yet?
It would be awesome if the app could mark the sms as read when the conversation is read in Matrix.
Unfortunately to do the opposite way the app need to know the user credentials.
Will be good to see call events from contact in Matrix contact room log. We can send it with "msgtype": "m.notice" for minimize notify.
Now when the user is saving its settings then the Matrix service is started. When the service is allready running it ignores the newly saved settings. The service should stop the current service and start a new one (so the right settings would be used).
Hi,
it would be neat if each created SMS bot could manage to add all new created rooms to a single created (like +smsmatrix_username:matrix.yourdomain.tld) community to collect all the rooms. WhatsApp bridge (mautrix) does it similar which helps to keep overview.
regards, Mario
I'd like to create a setup with a dual sim phone, that bridges SMS for two SIM cards to two different Matrix accounts respectively. Is that already possible, or should I not care to buy a dual sim phone and better get two distinct phones for the two sim cards?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.