Code Monkey home page Code Monkey logo

Comments (7)

woj-tek avatar woj-tek commented on August 19, 2024

If I get it right - you are proposing somewhat "brute-forcing" approach? Check if email's domain from Contacts also points to XMPP server? And if yes, assume that localpart (before @) being identical with XMPP address and try to send subscription request to that address?

from beagle-im.

hantu85 avatar hantu85 commented on August 19, 2024

I would say that in this case, you are exposing your JID and you need to add permission for Beagle IM to access your address book. While it may be working fine for you (personal usage), it may cause issues related to data protection, etc.

While having this as the optional feature might be cool, I'm not convinced this will be really used by people.

from beagle-im.

 avatar commented on August 19, 2024

If I get it right - you are proposing somewhat "brute-forcing" approach? Check if email's domain from Contacts also points to XMPP server? And if yes, assume that localpart (before @) being identical with XMPP address and try to send subscription request to that address?

Yes, I don't think that it is common to have different services like mail and xmpp on the same domain part, but with different local parts. In most cases those will even share the same source for authentication like LDAP or SQL databases.

Comparing this to well-accepted (sigh) way of uploading your personal addressbook to some strange servers like in WhatsApp, Signal, Facebook or others, I think handling this locally on the client of the user is the better approach and more GDPR compliant. It's just a matter how this is implemented.
Of course, this shouldn't be "brute-forcing" something...
How about this, for example:

  • Having BeagleIM connect to your addressbook
  • when an XMPP address has been found that is not already added to roster, display that contact in contact list under "All" tab and add a button "Add to roster"
  • for other contacts from addressbook, have an option to check for DNS SRV records like "check for XMPP addresses" in BeagleIM preferences. Prosody seems to have an option in mod_auth for this: https://modules.prosody.im/mod_auth_external.html#protocol - isuser:username:example.com - no idea if this is backed by some XEP, though...
  • maybe use XEP-0401 to send an invite to that user https://xmpp.org/extensions/xep-0401.html - in some cases, like e.g. users on mailbox.org might have an mailaddress, but are not aware of having an XMPP account as well, so an invite could generate a new XMPP.

from beagle-im.

hantu85 avatar hantu85 commented on August 19, 2024

If you have many XMPP accounts in BeagleIM (and it is allowed) then for which account those newly added contacts should be added?

I'm not convinced that this will be useful for people. This only solves and issue when you have a list of users and you want to add them from the address book - in most cases, it is a one-time operation.

from beagle-im.

 avatar commented on August 19, 2024

I would say that in this case, you are exposing your JID and you need to add permission for Beagle IM to access your address book. While it may be working fine for you (personal usage), it may cause issues related to data protection, etc.

While having this as the optional feature might be cool, I'm not convinced this will be really used by people.

As outlined in the other comment, I think it could be implemented in a GDPR compliant manner. In the end, it's your personal addressbook and you don't upload anything to any other server. As I titled this Feature Request "Integration of CardDAV Contacts" this could also mean that you can implement this by supporting a CardDAV link, e.g. on Nextcloud, instead of directly integrating with Contacts.app. But this would leave out local contacts of course.
Also keep in mind my question about integration in Mail.app as mentioned in tigase MUC on Mar. 2nd at 21:03 CET: users will use features that are easy to use or be "just there". If they see that there are more people use XMPP as they've previously thought, this increases acceptance and usage of XMPP. And people will prefer clients that make are easy to use and will have a benefit to them.
Often I hear in discussions about XMPP that people are thinking that nobody is using XMPP anymore. This is due to a missing central directory like Facebook. Of course, a central directory is nothing that is desireable in regards of GDPR. So, how can people discover then if other people in their addressbooks are reachable by XMPP? It's not like you would implement a new feature. You are just using and clueing together what is already there: personal addressbook, CardDAV, service/user discovery (isuser) in XMPP, XEP-0401, etc...

from beagle-im.

 avatar commented on August 19, 2024

If you have many XMPP accounts in BeagleIM (and it is allowed) then for which account those newly added contacts should be added?

I'm not convinced that this will be useful for people. This only solves and issue when you have a list of users and you want to add them from the address book - in most cases, it is a one-time operation.

No, IMHO it's not a one-time task... new XMPP accounts are created all the way. Like new people are joining Signal app everyday... just today I received a notification in Signal that there an old friend joined Signal. I would like to be notified as well when a friend joines XMPP network as well.

from beagle-im.

 avatar commented on August 19, 2024

Coming across this again...

I'm thinking about this feature request or creating another one:

Basic idea is to have wider support of XMPP in other applications. The Addressbook.app is just one of those. Another one is Mail.app (which in turn also make use of the addresses in Addressbook.app).
For Mail.app it would be nice to have some kind XMPP integration as well, for example through an extension/plugin:

  • when a mail is received the extension could check whether
    • an XMPP address exists in Addressbook.app,
    • lookup via DNS if a _xmpp-server._tcp SRV address exists for that domain
    • ask running BeagleIM if the contact is in roster
    • check webpresence for that address and show its status
  • when sending/writing a mail the same steps could be done
  • if a method of finding/determing a JID was successfull a button labeled "Chat" could be show beside the mail address or in the mail window (similar maybe to what GPG Mail does)
  • BeagleIM could offer an option of marking a text in chat and transfer that text into a mail addressed to the chat partner, depending whether or not a JID can be extraced from the chat (1:1 chat or group chat). In a 1:1 chat vcard or Addressbook.app could be checked if a mail address is associated to that JID and if so, the mail recipient field could be pre-filled
  • support of XMPP JIDs in mail header both ways according to https://www.rfc-editor.org/rfc/rfc7259.html and https://wiki.xmpp.org/web/Jabber_Email_Header

Basically another option would be thinkable as well: if the user doesn't have BeagleIM installed, but for some reasons the Mail.app extension, the extension could offer a "Reqister & Chat" box when a JID of a remote recipient has been found, e.g. in Addressbook.app. The registration process could then lookup the own XMPP SRV RRs for own domain (e.g. in case of such providers like mailbox.org) and/or make use of the curated XMPP server provider list at KDE project.

The intention of all this is to make it easy for users to discover if a contact has a JID and make chats easy to use. Sometimes people write mails, because the don't know that the other person is also reachable by chat and some questions are easier to discuss by chat and not by mail. Additionally the user get the benefit of a deeper integration of XMPP and mail, ideally when both a the same. But with additional header lines for JIDs the addresses can also be different or you can provider additional JIDs. It seems that JIDs in mail header are already supported by Evolution MUA.

The Mail.app extension could also offer a "Call" button to start voice/video calls when it discoveres that the other end supports this as well.

from beagle-im.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.