XSF Discussion - 2024-02-19


  1. hook

    Is there any PR (or better yet, lobby work) being done on pushing XMPP forward as the standard protocol for interoperability in the EU?

  2. Daniel

    Yes

  3. deport

    I'd be interested to any links to information regarding this

  4. deport

    I'd be interested in any links to information regarding this

  5. Daniel

    I don’t think there is a lot of public information about this

  6. Daniel

    the gatekeepers (primarily Meta) are pushing for "let's open up (a variant) of our c2s api" (see https://gultsch.social/@daniel/111528938093114289 or the wired interview that was posted here a couple of days ago. and while our voices wrt "open standard and s2s federation" have been heard it is my personal opinion that the EC seems to be fine with the Meta approach (for now)

  7. Daniel

    The EC interviewed me as a stakeholder. I didn't get to ask them questions. So my interpretation of their position is an extrapolation of how they phrased certain questions

  8. hook

    Daniel, cool, thanks for the link.

  9. hook

    But given that other providers are more centralised (and actively pushy), I wonder how the decentralised XMPP should approach this.

  10. GregorTacTac

    Is there a way to make calls via xmpp?

  11. grin

    Yes, you need to either set up a STUN/TURN server which is embedded in your xmpp server or point your xmpp server at something like coturn

  12. Guus

    GregorTacTac: certainly. Various clients support audio and video calling

  13. Guus

    I was quite amazed by Goffi's implementation of a video call in a terminal, that he showed last week. :D

  14. grin

    I should really just drop our entire infra in some public git and redact it so I can just point people to a single file to set up xmpp with all this stuff

  15. GregorTacTac

    Are calls implemented in Conversations?

  16. grin

    I dont have android but I think so, it’s one of the most feature rich clients afaik

  17. MSavoritias fae.ve

    yeah they are

  18. Menel

    It was (one of the) (the) first? With the modern approach, utilizing encryption with webrtc.

  19. Zash

    Do you remember video calls in Gajim? Pepperidge Zash remembers.

  20. Menel

    That's why I wrote about the "modern" approach 😛.

  21. singpolyma

    I mean, the modern approach is the same as the old approach, except that dtls-srtp is mandatory now

  22. GregorTacTac

    I can't find the button to call someone on Conversations.

  23. MSavoritias fae.ve

    its shown only if the person has a call capable device and they are online. not sure if you have to be subscribed to their presence too

  24. jonas’

    (otherwise you can't see that they're online, so if online-ness is a criterium, then yes, you have to.)

  25. moparisthebest

    Why would online-ness be a criterium here?

  26. jonas’

    moparisthebest, disco#info in order to obtain "can the contact even do this" information.

  27. jonas’

    and XEP-0115 / 0390 to obtain that information efficiently

  28. moparisthebest

    jonas’: ugh that's terrible

  29. jonas’

    (disco#info needs a full JID, you only get those when you're presence-subscribed)

  30. jonas’

    also I think there used to be an IQ-based call flow which obviously also required a full JID, but I think these days we have JMI (jingle message initiation) which also works with bare JIDs.

  31. moparisthebest

    Why shouldn't we be able to call anyone just like we can message anyone? If they don't answer or aren't online they'll see the missed call later

  32. jonas’

    moparisthebest, if their client doesn't support calls, they'll not even see the missed call.

  33. jonas’

    moparisthebest, if their clients don't support calls, they'll not even see the missed call.

  34. moparisthebest

    If the client can't see that they have a JMI supporting client, then send a message that someone tried to call?

  35. moparisthebest

    This detecting that a call can be answered seems like a huge misfeature

  36. MSavoritias fae.ve

    https://gist.github.com/iNPUTmice/a28c438d9bbf3f4a3d4c663ffaa224d9#where-is-the-call-button > The contact needs to be online. This is indicated by a colorized (not gray) send button. Depending on the recipients setup you might be able to send a regular message first to wake up the recipient’s device. (In the future Conversations might gain the ability to do this automatically. There is experimental support to remember and display the A/V compatibility of the last seen device when the contact is currently offline.)

  37. moparisthebest

    I understand all the legacy reasons but those aren't applicable today

  38. MSavoritias fae.ve

    and no tor. and needs presence

  39. moparisthebest

    For example say you want to call someone using an iPhone, you have to: 1. Have them on your roster 2. Know they are using an iPhone 3. Send them a message to wake it up 4. Press call very quickly

  40. moparisthebest

    This is somehow acceptable?

  41. moparisthebest

    vs a phone number where I can just... Call it?

  42. jonas’

    moparisthebest, yeah, pretty much. Unless you use Snikket.

  43. jonas’

    (where the assumption is that you only use snikket clients -> call button is always there)

  44. Zash

    moparisthebest, flip it and think about sms or other phone features other than calling

  45. Zash

    like you can't just fax anyone, or sms landlines etc

  46. jonas’

    you *can* sms landlines.

  47. Zash

    no, becasue nobody has landlines anymore

  48. jonas’

    here you get a robovoice reading you the text message

  49. jonas’

    it is very confusing.

  50. Daniel

    Tbf until very recently there was a high chance that your iOS contact didn't have calling support

  51. jonas’

    s/landline/voip/

  52. Daniel

    So displaying a call button would have been misleading

  53. jonas’

    Zash, I'm about 80% sure that the robovoice thing even happened at a time where we still had ISDN

  54. jonas’

    which is "close enough" to landline.

  55. Zash

    anyway, point is that messaging is the original core feature of xmpp, so it's unsurprising that it always works, while calling doesn't

  56. mdosch

    > Zash, I'm about 80% sure that the robovoice thing even happened at a time where we still had ISDN Can confirm.

  57. Zash

    JMI with a fallback <body>I'm trying to call you</body> would make some sense tho.

  58. moparisthebest

    Zash: you can absolutely text or fax any phone number

  59. jonas’

    can you

  60. moparisthebest

    Why shouldn't I be able to call any JID

  61. jonas’

    but is it sensible to do so?

  62. jonas’

    I do recall talking to fax devices, it wasn't fun.

  63. Zash

    sure, but like a JMI to someone who doesn't have a call-capable cilent, it goes into the void

  64. jonas’

    but I knew a guy who could at least get past the first pilot tone stage once.

  65. moparisthebest

    Ok, so if they don't get an answer or response they'll text? What's the problem

  66. jonas’

    by whistling

  67. moparisthebest

    > If the client can't see that they have a JMI supporting client, then send a message that someone tried to call? Clients could do this

  68. jonas’

    moparisthebest, maybe they will, maybe they won't think of it but try again and try again and then heartache and hurt results.

  69. moparisthebest

    Or display a message saying "hey they might not see you called, send a message?"

  70. jonas’

    that would be a good idea actually

  71. jonas’

    I like that.

  72. Zash

    Isn't that already there?

  73. Zash

    (in Conversations)

  74. Daniel

    Zash: when busy yes

  75. Daniel

    But yes this could potentially be expanded to 'we never got a 'ringing' response to our jmi'

  76. Zash

    It'd be interesting to know how things react to a JMI with fallback body

  77. jonas’

    inb4 robo voice reading the fallback body out loud

  78. Daniel

    I don't disagree with moparisthebest it's just that we had a/v calling in Monal for literally a week or so

  79. Zash

    I also remember some bit of UI guidelines that oppose conditional widgets, saying it should always be enabled.

  80. Zash

    Hard to understand when or why it does or doesn't show up otherwise.

  81. Daniel

    Task for council: Deprecate Disco

  82. Zash

    oh no

  83. jonas’ walks backwards slowly

  84. Zash rolls onto floor and proceeds to cry under bed

  85. singpolyma

    > It'd be interesting to know how things react to a JMI with fallback body fallbacks everywhere!

  86. Zash

    Wasn't the unwritten plan to use the bind2 device tracking to somehow persist disco#info ?

  87. Daniel

    > Wasn't the unwritten plan to use the bind2 device tracking to somehow persist disco#info ? Yes

  88. grin

    +1 on being able to just call with a "seems like this failed, send a text message?" kind of prompt. i've noticed that only monal allows me to do something like that, and found it pretty handy

  89. MattJ

    https://github.com/snikket-im/snikket-server/issues/86 is relevant here... the UX of sending JMI to a user with no call-capable devices isn't ideal

  90. MattJ

    But I generally agree that hiding the call button is not good UX either, users get so confused when it's sometimes there and sometimes not

  91. MattJ

    and sometimes when it's not there it would actually work (thanks to push notifications), and sometimes when it's there it won't work (because a device recently disconnected, or whatever)

  92. mdosch

    Yeah, just try to call. The worst thing that can happen is the call going to the void but having no call button to at least try is annoying. I had this when my wife used Monal (with call functionality) for a short while when she couldn't open my messages on snikket iOS and switched temporarily to Monal. I knew she had a call capable device but couldn't call her and my local simcard had no credit to call her via phone.

  93. mdosch

    As an analogy, my phone also doesn't hide the call button when the other person is in area without connectivity. Having a failed call is IMO less confusing than a disappearing call button.

  94. grin

    > As an analogy, my phone also doesn't hide the call button when the other person is in area without connectivity. Having a failed call is IMO less confusing than a disappearing call button. 100% agreed. the call button disappearing makes me worry that my STUN/TURN setup broke.

  95. grin

    i know it essentially boils down to the same thing if the callee truly is not available, but just the general experience of there not being a call button is very off

  96. mdosch

    > 100% agreed. the call button disappearing makes me worry that my STUN/TURN setup broke. STUN/TURN is not involved before you start calling.

  97. Zash

    Tho it can be smart to start with that before the call gets to the point where you might need it, for SPEEEEEEED

  98. mdosch

    But how do you predict that the user is going to call contact XYZ soon?

  99. Zash

    I mean start the STUN/TURN stuff at the same time as the JMI goes out, but nothing stops you from doing it before that.

  100. mdosch

    OK, makes sense.

  101. moparisthebest

    > Task for council: Deprecate Disco Roughly agreed, it's almost always the wrong thing to use nowadays, at least with clients

  102. Daniel

    This was (apparently not 'clearly') a joke

  103. MattJ

    I hope "deprecate disco" is intentionally exaggerated. It's clearly between useful and essential for many things, but it is (currently) not ideal for client-to-client feature discovery, indeed.

  104. MattJ

    :)

  105. Zash

    Without disco, XMPP is just faster email with angle brackets! :(

  106. MattJ

    I assumed it was at first, but moparisthebest's response had me worried about Council :P

  107. Wirlaburla

    Task for council: Improve Disco with Disco ball.

  108. Wirlaburla

    Then we can boogie like no other.

  109. MattJ

    I don't think new protocols have been utilizing client-to-client disco for many, many years. Calls has been an exception, and given that Conversations was somewhat alone when it first implemented the "new calls" I don't think that was wrong

  110. Zash

    Jingle is pretty old by now tho

  111. MattJ

    But now we're just past the tipping point, e.g. with Monal's latest releases

  112. Daniel

    disco is clearly needed. a recent example would be figuring out what transport to use for p2p file transfer (with Conversations, but nobody else, supporting webrtc datachannels)

  113. Zash

    Jingle being '166 is quite a bit before Carbons '280 and MAM '313

  114. Daniel

    how you use that information in the UI is a different question

  115. MattJ

    So I think it's safer now than ever to just assume the other side supports calls. Sensible error handling, smart servers, and a potential future persistent disco mechanism will all improve the UX further.

  116. moparisthebest

    > I assumed it was at first, but moparisthebest's response had me worried about Council :P Hehe no that's why I said "roughly", I think we are all on the same page here

  117. moparisthebest

    yes disco where it makes sense, but it no longer makes sense for client features (ever?)

  118. moparisthebest

    (or at least whenever you aren't talking directly to a full JID that is online, which is surely most of the time)

  119. Wirlaburla

    Disco is useful though.

  120. topgun

    Disco disco disco. I'm getting curious about what this means

  121. topgun

    Disco again!

  122. Wirlaburla

    Just get down and boogie with it.

  123. topgun

    I beg you to tell me what this means :D

  124. moparisthebest

    topgun: tl;dr you ask a remote JID the features it supports

  125. Wirlaburla

    Perhaps not directly within XMPP does its use shine, but with the extendable portion of the protocol, it's much appreciated.

  126. topgun

    > topgun: tl;dr you ask a remote JID the features it supports Nice

  127. mdosch

    Alex: Memberbot told me voting has begun, but doesn't talk to me anymore after I sent a "yes".

  128. Wirlaburla

    Ghosting

  129. mdosch

    ;-(

  130. mdosch

    Ok, it came back to me. :)

  131. Wirlaburla

    If you love them, let it go... and if they love you too, they'll come back.

  132. Alex

    Memberbot is online for our current XSF application period Q1-2024: https://wiki.xmpp.org/web/Membership_Applications_Q1_2024

  133. Alex

    > Alex: Memberbot told me voting has begun, but doesn't talk to me anymore after I sent a "yes". I have your votes. When memberbot starts up the first time for voting it takes a long time until it gets responsive. Too many stuff to process on startup ;-)

  134. Alex

    > Alex: Memberbot told me voting has begun, but doesn't talk to me anymore after I sent a "yes". I have your votes. When memberbot starts up the first time for voting it takes a long time until it gets responsive. Too much stuff to process on startup ;-)

  135. mdosch

    What does it have to do on startup?

  136. Alex

    lots of pep updates, Disco etc...

  137. Alex

    and I run it on tiny hardware

  138. mdosch finished voting before Alex announced the voting period → two in a row. :)

  139. Alex

    🤣️

  140. Alex

    And offline messages like yours

  141. mdosch

    ^^

  142. mdosch

    I like the "feature" that it proactively tells you about voting when you messaged it when it was offline. :)