michaelkourlas / voipms-sms-client

Popular Android messaging app for VoIP.ms, a Canadian VoIP provider
https://play.google.com/store/apps/details?id=net.kourlas.voipms_sms
Apache License 2.0
218 stars 52 forks source link

unable to sync - api error 'missing_method' #262

Closed kicksturns closed 7 months ago

kicksturns commented 7 months ago

I can't send or receive messages all of a sudden, I get the api error 'missing_method'. Any suggestions?

purpleidea commented 7 months ago

1) Voip.ms can see any text you send and receive through their number with any app. 2) Switch to signalapp to prevent this. 3) Michael can see anytime you receive a message. He likely can't see the contents of the message, but you'd have to audit code to know for sure. He's running that relay server for you for free, which is nice. It would be even nicer if voip.ms did that for it's customers. 4) Voip.ms is not run very well for many reasons. One thing they got wrong is sending callbacks over something call a GET method instead of the more secure POST method. Ask them to support the latter.

HTH

michaelkourlas commented 7 months ago

From the app's documentation:

The Google Play version of the app supports push notifications using Firebase Cloud Messaging. Push notifications are automatically setup when selecting phone numbers if notifications are enabled.

If push notifications are configured correctly, VoIP.ms will send a callback to a Cloudflare Worker maintained by me when your phone number receives a text message. The Worker will then forward the callback to your device using Firebase Cloud Messaging. When the app receives the callback, it performs a synchronization with the VoIP.ms servers and retrieves the text message.

To protect your privacy, the callback is configured to only include your phone number. It does not include the text of individual messages.

The Cloudflare Worker is open source: https://github.com/michaelkourlas/voipms-sms-push-notifications

michaelkourlas commented 7 months ago

Good to know, I am glad I don't use google play services.

@muffin-p, the app available for download in the Releases section of this repo is the Google Play version. The F-Droid version (which does not support push notifications) can be downloaded from the F-Droid website, though I don't think they've built the latest update yet.

muffin-p commented 7 months ago

Good to know, I am glad I don't use google play services.

@muffin-p, the app available for download in the Releases section of this repo is the Google Play version. The F-Droid version (which does not support push notifications) can be downloaded from the F-Droid website, though I don't think they've built the latest update yet.

Ah Thank you! I have always used the F-driod version (I am on a degoogled android), for now I am using the apk you built, but I will install the f-droid version as soon as they build it. Appreciate your hard work :-)

balz666 commented 7 months ago
  1. Voip.ms can see any text you send and receive through their number with any app.
  2. Switch to signalapp to prevent this.
  3. Michael can see anytime you receive a message. He likely can't see the contents of the message, but you'd have to audit code to know for sure. He's running that relay server for you for free, which is nice. It would be even nicer if voip.ms did that for it's customers.
  4. Voip.ms is not run very well for many reasons. One thing they got wrong is sending callbacks over something call a GET method instead of the more secure POST method. Ask them to support the latter.

HTH

How smooth will Signal App work with Voip.ms, let's say, in comparison to Zoiper? I already use Zoiper for phone with VOIP; would it be better? Does it work with my phone number and let me send SMS? I was pretty happy with this app, but I don't understand why there is some kind of link that send my information to kourlas.com website.

geekaz01d commented 7 months ago

Thanks Michael for the quick fix.

How smooth will Signal App work with Voip.ms, let's say, in comparison to Zoiper? I already use Zoiper for phone with VOIP; would it be better? Does it work with my phone number and let me send SMS? I was pretty happy with this app, but I don't understand why there is some kind of link that send my information to kourlas.com website.

You say you aren't tech-savvy but these days with AI explainers at your fingertips, that's just another way of saying you are lazy. You could have searched for the answer with six words.

muffin-p commented 7 months ago
2. Switch to signalapp to prevent this.

Wait... what??? I can use signal for voip.ms texting? I can't seem to find any instructions on how to do that. Can someone please post a link?

balz666 commented 7 months ago

I am not lazy; I just wouldn't know how to start. You make it sound so simply, yet for someone who is not tech savvy this is way beyond complicated. As for IA, I don't know a thing about those things.

@muffin-p same here... I didn't find anything about it. Maybe he's wrong?!

michaelkourlas commented 7 months ago

You can't use Signal to send SMS messages using a VoIP.ms DID.

Signal is just another messaging app that happens to use end to end encryption, which is more secure than SMS.

michaelkourlas commented 7 months ago

Google has notified me that the update is now available in the Play Store.

balz666 commented 7 months ago

@michaelkourlas Can you read our SMS when we use your app and if not why is there a GET command linking to your website from VOIP.ms?

michaelkourlas commented 7 months ago

Your question has been answered here: https://github.com/michaelkourlas/voipms-sms-client/issues/262#issuecomment-1913347610

TBhimdi commented 7 months ago

VoIP.ms news:

We are pleased to announce that the VoIP.ms Developer Log has been repurposed to a full Change Log for a better transparency with our customers. This Change Log will be easily accessible and regularly updated, detailing every alteration made in our system, regardless of its scale. By doing this, we aim to foster a culture of transparency and accountability, ensuring our customers are always informed.

michaelkourlas commented 7 months ago

I'd like to clarify here that the app's use of "www.voip.ms" rather than "voip.ms" was almost certainly an error I made way back in 2014, when I was first developing it.

Although the 301 redirect is new, code from other projects using the VoIP.ms API on GitHub (e.g. this one) suggests that the documentation said to use "voip.ms" (not "www.voip.ms") for a long time, if not always. "www.voip.ms" worked for many years, but it was undocumented behaviour.

helsan74 commented 7 months ago

Thanks for the clarification. Kudos withe the good work. Really appreciate all the efforts!

purpleidea commented 7 months ago

@drouleau5 Thanks for sending out an email!

yulman19 commented 7 months ago

Just a reminder that you can buy @michaelkourlas a coffee if you enjoy what he does... https://paypal.me/kourlas

balz666 commented 7 months ago

@michaelkourlas Still not sure I understand why the need for the GET method to michaelkourlas' website. You said that it has been answered, but it's still not clear to me. Why do you collect data and do you read SMS from people who use your app? VOIP.ms staff has been saying that there could be some privacy issues using your app. I'd like to understand a bit more about this.

michaelkourlas commented 7 months ago

The callback is used to support push notifications -- that is, to support the ability to receive notifications immediately when you receive an SMS, rather than at periodic synchronization intervals.

The callback is configured to contain your DID only and not the text of your messages (unless you've changed it for some reason). The callback triggers the sending of an FCM message to your Android device, which then tells the app to synchronize with VoIP.ms's servers and display a notification.

The source code of the server that handles the callback and sends the FCM message can be found here. This is the code running on https://voipmssms-notify.kourlas.com/ (though you can't verify that, ultimately -- you have to trust me). However, you can verify what is sent to that server by looking at the "SMS/MMS URL Callback" setting in the DID configuration.