jdev - 2022-12-26


  1. nicoco

    is there a dedicated mechanism for "messages sent by the room itself" in MUCs? something like "system messages"? maybe by using msg type="headline"? my workaround so far is using a pseudo-participant, but I wonder if there is something dedicated for this.

  2. jonas’

    nicoco: I think biboumi sends type=groupchat from the MUCs bare jid

  3. jonas’

    and that renders sufficiently well in clients

  4. nicoco

    thanks jonas'!

  5. nicoco

    is there a XEP for group chats "pinned messages"? if not, any suggestion about how to handle them elegantly?

  6. jonas’

    people tend to use the <subject/> for that

  7. jonas’

    MIX has pinned messages IIRC

  8. jonas’

    (the subject is obviously limited: no encryption support, no formatting, no media embedding etc.; more IRC style)

  9. pep.

    And only one subject

  10. pep.

    Right?

  11. jonas’

    yes

  12. pep.

    You may have to write something nicoco

  13. nicoco

    I was thinking about the subject, yes, but in telegram there can be several pinned message. I guess I could chain them in the subject; but it does not feel right as there is also a concept of "group name/group subject" that maps more naturally to MUCs

  14. pep.

    "how hard would it be" to allow binding another jid midstream? And using it alongside the first one. I'm thinking this might be more useful than opening another stream (burner jids, multiplexing c2s? what else?). As I've never really heard of clients doing this

  15. nicoco

    pep: I guess it should not be too much work, spec-wise, to define "pinned messages" as a new mucconfig entry, then rely on MAM for clients to fetch the pinned messages. the problem I see is that we should make sure somehow that pinned message are not purged from the archive? or maybe we should not care, if room admins pin a message not in the archive, it's their problem. this needs some thinking I guess

  16. pep.

    Maybe the MUC didn't even have to be involved yeah, depending on your constraints

  17. jonas’

    nicoco, MIX it is then, MUC does not support that.

  18. pep.

    "that"?

  19. jonas’

    pinned messages

  20. pep.

    Let's define it then?

  21. jonas’

    or move on to a less-broken standard? :)

  22. nicoco

    jonas': do you think it's out of the way to submit a XEP for MUCs?

  23. jonas’

    nicoco, depends I guess

  24. pep.

    No need to switch to a whole new protocol because of one missing feature

  25. jonas’

    the avatar XEP got rejected by some council...

  26. pep.

    jonas’: yet was dumb yeah

  27. jonas’

    it was indeed

  28. pep.

    jonas’: that was dumb yeah

  29. jonas’

    nicoco, you could feed the pinned messages in a pubsub node associated with the MUC to avoid having to keep them in MAM

  30. jonas’

    but then you're building MIX...

  31. pep.

    And need xeps are being submitted everyday, see bookmarks and bookmarks pinning

  32. pep.

    And new xeps are being submitted everyday, see bookmarks and bookmarks pinning

  33. nicoco

    FWIW, I would like to add MIX support too maybe, but I just don't use any client that supports it. I know it's a chicken-and-egg problem, but I am too much of an amateur dev to release something that I cannot battle test a little for my own use.

  34. pep.

    jonas’: On a MUCSub node!! (316)

  35. nicoco

    what avatar XEP is that?

  36. jonas’

    nicoco, it got rejected, it has no number

  37. jonas’

    but essentially specifying MUC avatars

  38. pep.

    And it's three of them

  39. nicoco

    ha OK. that does work and exist though?

  40. jonas’

    yes

  41. jonas’

    devs have to find that out the hard way though

  42. nicoco

    are council decisions unrevokable?

  43. pep.

    Maybe one can resubmit it at some point :x

  44. pep.

    Dumb decisions like this shouldn't be

  45. nicoco

    in French we say "only idiots don't never change their minds" :)

  46. nicoco

    in French we say "only idiots never change their minds" :)

  47. jonas’

    nicoco, it's tricky

  48. pep.

    Especially if it's not the same 5 idiots :p

  49. jonas’

    there was one situation where council considered reconsidering a decision of previous council, but they were a bit cautious to set a precedent for that

  50. jonas’

    then again, for protoxeps, "times are a changeling" and I guess reconsidering those should always be an option

  51. nicoco

    I guess it's understandable that the same decision should not be discussed at every meeting, or we never move on…

  52. pep.

    It depends the impact it has on the community really

  53. jonas’

    nicoco, I think this one would be the one to revive: https://xmpp.org/extensions/inbox/muc-avatars.html

  54. jonas’

    but maybe ask Link Mauve

  55. nicoco

    jonas': I will probably settle for what's working in gajim, movim and conversations, is that the one?

  56. jonas’

    I think so, but better ask someone who has implemented it

  57. jonas’

    i.e. talk to the respective client devs or the spec authors ( Link Mauve, edhelas if I'm reading the names right )

  58. jonas’

    using vcard-temp on the bare JID is what s.j.n does anyway

  59. jonas’

    I'm not so sure about the presence-based advertisment in that XEP really being phased out in the wild though

  60. pep.

    nicoco: https://modules.prosody.im/mod_vcard_muc.html that's the prosody module

  61. nicoco

    thanks pep.

  62. pep.

    > pep> "how hard would it be" to allow binding another jid midstream? And using it alongside the first one. I'm thinking this might be more useful than opening another stream (burner jids, multiplexing c2s? what else?). As I've never really heard of clients doing this ?

  63. jonas’

    pep., some stuff relies on specific semantics of @from

  64. jonas’

    binding another resource may work, binding another localpart, tricky.

  65. jonas’

    ... on the specific semantics of absent @from, I meant

  66. jonas’

    it also seems like a footgun to implmeent

  67. jonas’

    it also seems like a footgun to implement

  68. jonas’

    and specify

  69. jonas’

    to prevent any misunderstandings, you'd need a lockstep operation similar to the one used for starttls

  70. MattJ

    Binding multiple resources used to be a thing, but it was rarely used and added a lot of complexity

  71. jonas’

    binding multiple resources allows to implement MUC as a client though .... :->

  72. pep.

    Is there any client spawning more than one stream in their daily operation? (or any?)

  73. pep.

    Multi-account clients do I guess, but it's not part of one account's action

  74. pep.

    I'm trying to see what could make the use of features like burner-jids easier (it needs implementing for a start, for sure)

  75. jonas’

    I don't think so

  76. jonas’

    I considered adding a feature to aioxmpp where it would try to establish a fresh stream if the existing one went to looking dead for some reason, and then do a stream-management based failover if that succeeded.

  77. jonas’

    to more quickly and efficiently re-establish connections on network interruptions/switches

  78. jonas’

    but I suppose that doesn't count because the two streams would be logically the same

  79. pep.

    Yeah, to put in context, we were discussing queries to s.j.n with jonas’ in another channel and that made me wonder if it was possible not to use the current stream but burner jid or sasl anon just for the query

  80. jonas’

    I still stand by the (for me) rare stance that HTTP is the better way to solve that problem.

  81. jonas’

    likely much less resource intensive and an http client lib is likely already involved for HTTP Upload anyway.

  82. pep.

    I feel it's just that we're not used to do these things so it looks harder

  83. jonas’

    I was talking about computing resources, roundtrips, and latency, not about difficulty.

  84. nicoco

    something boggles me in https://xmpp.org/extensions/xep-0313.html#filter: > Six further fields are defined by this XEP and MUST be supported by servers [...] > start, end, with, before-id (*),after-id (*),ids (*) > Servers supporting fields marked with an asterisk (*) MUST advertise the disco feature 'urn:xmpp:mam:2#extended' Do I understand it right that all servers MUST implement all 6, so all servers must advertise both 'urn:xmpp:mam:2' and 'urn:xmpp:mam:2#extended'? There is no case where a server only advertise 'urn:xmpp:mam:2'?

  85. Holger

    No, ONLY those servers that support those (*) fields MUST advertise 'urn:xmpp:mam:2#extended'.

  86. nicoco

    Holger: thanks. isn't this contradictory with the sentence: "Six further fields are defined by this XEP and MUST be supported by servers"‽

  87. moparisthebest

    > "how hard would it be" to allow binding another jid midstream? And using it alongside the first one. I'm thinking this might be more useful than opening another stream (burner jids, multiplexing c2s? what else?). As I've never really heard of clients doing this pep.: this is one of the advantages of QUIC, you can open unlimited independent streams in the encryption context you already have started, and no head of line blocking etc

  88. moparisthebest

    Think of it as multiple TCP connections inside one TLS connection

  89. Holger

    nicoco: Ah sorry, you're right. End result is the same though: Older revisions of the XEP used the mam:2 namespace but didn't have those fields, hence the separate :2#extended feature, so clients wanting to use them must check for that feature. So I'm not sure that MUST has any effect :-)

  90. nicoco

    Holger: thanks! I also tought that the end result was the same and this "MUST" is weird, but was wondering if I was missing something.

  91. Holger

    If so then I'm missing the same something!

  92. nicoco

    wild guess: this "MUST" means "servers REALLY REALLY REALLY SHOULD implement all 6, but there are implementations supporting only the first 3 out there, let's not shame them by calling them non-compliant"