jdev - 2023-07-11


  1. jonas’

    17:28:38 lovetox> but i now think its safer to make it a occupant-id / room-jid tuple it's always safer to do so, you could be dealing with malicious MUC servers trying to trick you.

  2. jonas’

    always scope IDs to the issuer.

  3. lovetox

    👍️

  4. Laura

    Hello guys, do you know if it's possible to run 2 servers ejabberd. One in my house and one in a vps. That's for me to be able to send message through the same jid when i'm home and internet is down.

  5. Laura

    If yes. Do you have any url that explain.

  6. moparisthebest

    In theory ejabberd supports clustering, but as I understand it you need a reliable low latency connection between servers so that still wouldn't work for what you want

  7. moparisthebest

    I run my XMPP server at home and have a backup LTE connection instead, maybe that could work for you?

  8. Zash

    You want a High Availabilty cluster, but most things instead do Load Balancing types of clustering. From what I've understood, doing both kinds of clustering at the same time is Very Hard.

  9. Laura

    It's something workable. But how does it works for bigger ejabberd setup ? One with world wide users ?

  10. Zash

    You could also try asking in xmpp:ejabberd@conference.process-one.net?join

  11. Guus

    Does ejabberd clustering recover cleanly from prolonged network unavailability? If so, doing something with DNS SRV priorities might work, but meh. Is it worth considering this to be an infrastructure problem instead, and arrange for a hot-standby site to take over when the primary side becomes unavailable?

  12. Zash

    Myeah, some sort of standby and use some sort of database wide-area clustering to sync the data, is the approach I would go for. Should work with any XMPP server even.

  13. Guus

    If 'home' is disconnected from the internet, is there a high dependency on retaining XMPP connectivity in the first place? Your client will still connect, but none of the remote-domain XMPP entities will be reachable.

  14. Guus

    You'll basically be able to interact with people that are physically in the same house - assuming standard instant-messaging functionality.

  15. Laura

    Yup but my home is big

  16. Guus

    or is this to keep available resources on your server to the outside world (in which case this has merit)

  17. Laura

    It actually span several house

  18. Guus

    Shouting instead of IM'ing isn't an option? ;)

  19. Laura

    And i ha e a preference to keep things local if possible

  20. Laura

    Sharing a link or call is better by IM

  21. Guus

    Sure, there are plenty of reasons to want this. I'm happy for anyone weighing the cost/benefit different than me.

  22. moparisthebest

    > That's for me to be able to send message through the same jid when i'm home and internet is down. If that's the use case then just running one at home is enough no?

  23. Guus

    as an aside: for audio/video, it might be sufficient to run STUN/TURN server locally, and have your XMPP server outside, to have decent performance.

  24. moparisthebest

    If your internet is down and you are at home everything still works

  25. Zash

    Shouldn't need STUN/TURN _inside_ your local network I would hope

  26. Guus

    Zash: if the XMPP connection flows over NATs to the outside world, and clients are isolated in the LAN, maybe?

  27. Guus

    but yeah, that's stretching things

  28. Guus

    unless _conferencing_ maybe, but at this point, I'm mostly trying to invent problems...

  29. moparisthebest

    TURN doesn't help with conferencing

  30. Laura

    So having 2 servers with 2 account is easy. Just not transparent for users

  31. Guus

    No, you'd have to run something more elaborate.

  32. Zash

    You could also have two separate servers with separate domains and use s2s to talk between them

  33. Guus

    If you prefer to run things locally for privacy reasons, then having two domains, like Zash suggest, might be preferable to keeping a remote hot-standby site up-to-date: you'd still be pumping all of your data online, which kind of negates the privacy reason for using a local server.

  34. moparisthebest

    Laura: I'm unclear why you don't just run a server at home which is usable from anywhere when your home internet connection works, and from home when it doesn't?

  35. Laura

    My connection is not really reliable. It shut once every 2 weeks

  36. Laura

    I need to be present to restart the box

  37. moparisthebest

    Laura: I solved that problem by connecting one of these to my server: https://pikvm.org/

  38. Laura

    My internet provider's box is shit. I need to protect it with ups. Because every time electricity cut for less than a second it goes into half state not on nor off

  39. Laura

    Thanks for the link

  40. lovetox

    biboumi replies to a disco info on the irc server with

  41. lovetox

    <identity type="irc" name="IRC server irc.libera.chat over Biboumi" category="conference" />

  42. lovetox

    and on a channel

  43. lovetox

    <identity type="irc" name="#asterisk on irc.libera.chat" category="conference" />

  44. lovetox

    how can a client know that the first one is not a groupchat

  45. lovetox

    and the second one is

  46. singpolyma

    No @ means muc service rather than muc

  47. singpolyma

    It's the only way to tell per current specs

  48. Ge0rG

    some people run MUCs on the same domain as user accounts.

  49. Link Mauve

    singpolyma, there is a third level with gateways, #foo%bar@baz, bar@baz and baz.

  50. lovetox

    ok i think i remember now, its a gap in the spec

  51. lovetox

    and there is no way to see the difference

  52. lovetox

    really sad :/ so much good UX out of the window

  53. Ge0rG

    lovetox: just beat up everybody who runs a channel on a domain JID and you're done

  54. singpolyma

    I really wish spec did not say much service should advertise it supports muc protocol. Or be required to exist at all reall9

  55. singpolyma

    I really wish spec did not say much service should advertise it supports muc protocol. Or be required to exist at all really

  56. singpolyma

    IMO channel on domain jid is a spec violation. I don't like that this is true, but it seems to be

  57. lovetox

    not seeing what that has to do with it Ge0rG

  58. lovetox

    if someone wants to run a channel on the domain, thats fine by me, he should just be able to say so in his disco info

  59. lovetox

    infact there is no way to communicate that a address is in fact a groupchat, which is mind boggling how this could go unnoticed into the spec

  60. Ge0rG

    lovetox: well, category=conference is meant for both in https://xmpp.org/registrar/disco-categories.html

  61. Ge0rG

    in retrospect, <identity category='component' type='conference'/> would've been great

  62. singpolyma

    > if someone wants to run a channel on the domain, thats fine by me, he should just be able to say so in his disco info Except the MUC xep says this is not allowed. And also there is no way to say this in disco info

  63. Ge0rG

    singpolyma: I've been in rooms that were hosted directly on a domain component

  64. Ge0rG

    I'm not even sure if 0045 actually forbids that

  65. singpolyma

    Ge0rG: yes, doesn't prevent it being a xep violation

  66. Ge0rG

    > Each room is identified as a "room JID" <room@service> (e.g., <jdev@conference.jabber.org>), where "room" is the name of the room and "service" is the hostname at which the multi-user chat service is running.

  67. Ge0rG

    🤔

  68. Zash

    This is a silly restriction FWIW

  69. singpolyma

    0045 requires that a MUC have a muc id which is the localpart and a service which is the domain part

  70. singpolyma

    Yup

  71. Zash

    About as silly as mandating that e.g. HTTP Upload be on a subdomain.

  72. singpolyma

    Silly, but present and currently necessary

  73. lovetox

    does not help with bridges

  74. lovetox

    as room@service on a bridge is as demonstrated, not a groupchat

  75. Ge0rG

    > As explicitly stated in RFC 6122, both the Room ID (node) and Room Nickname (resource) portions of an Occupant JID MUST be of non-zero length.

  76. moparisthebest

    > About as silly as mandating that e.g. HTTP Upload be on a subdomain. Wait what

  77. singpolyma

    lovetox: well, IRC.libera.chat@whatever should not have a conference identity of muc var since it is neither a room nor a service

  78. Zash

    moparisthebest, not an explicit spec thing, but certain client(s?) require it

  79. lovetox

    but nothing hinders biboumi to simply add a second identity with "component" or?

  80. Zash

    but it's also not explicitly stated anywhere that you can have http upload on the domain itself, all the examples show a subdomain, and we all know only examples count :)

  81. lovetox

    singpolyma, yes its a service

  82. lovetox

    its the IRC console

  83. moparisthebest

    > moparisthebest, not an explicit spec thing, but certain client(s?) require it This is absolutely disgusting which ones do that? :P

  84. lovetox

    its the IRC server

  85. singpolyma

    lovetox: it can't be a MUC service because it's not a domain

  86. moparisthebest

    That sounds literally harder to implement and for no reason at all

  87. singpolyma

    Per MUC xep

  88. Zash

    Siskin (unless fixed recently?) and Snikket-iOS at least

  89. lovetox

    singpolyma, how does that help me?

  90. lovetox

    im not saying it needs to be a MUC service

  91. lovetox

    but its definitly not a groupchat

  92. lovetox

    and i need to know that its not a groupchat

  93. singpolyma

    Is it advertising that it is? If so that's a bug in biboumi

  94. lovetox

    or are you saying biboumi is wrong in adding the identity

  95. singpolyma

    Yes

  96. lovetox

    yes i could follow that argument

  97. Zash

    ```xml <iq from="muc.xmpp.org" type="result" id="SpNocoftZ_VfjYk0sLtB_2WT"> <query xmlns="http://jabber.org/protocol/disco#info"> <identity category="conference" name="XSF Chatrooms" type="text"/> ``` and ```xml <iq from="xsf@muc.xmpp.org" type="result" xml:lang="en" to="zash@zash.se/T_aCs-Yca3Kk" id="RlBWpuwcQQWD1lFK5JjzVT82"> <query xmlns="http://jabber.org/protocol/disco#info"> <identity category="conference" name="XSF Discussion" type="text"/> ``` ...

  98. Zash

    ```xml <iq from="muc.xmpp.org" type="result" id="SpNocoftZ_VfjYk0sLtB_2WT"> <query xmlns="http://jabber.org/protocol/disco#info"> <identity category="conference" name="XSF Chatrooms" type="text"/> ``` and ```xml <iq from="xsf@muc.xmpp.org" type="result" id="RlBWpuwcQQWD1lFK5JjzVT82"> <query xmlns="http://jabber.org/protocol/disco#info"> <identity category="conference" name="XSF Discussion" type="text"/> ``` ...

  99. lovetox

    what do you want us to see here?

  100. Zash

    Same identity on both here too?

  101. lovetox

    its everywhere, its because the MUC XEPs demands it

  102. lovetox

    as said, you cannot differenciate a service from a room, except you follow the argument that a domain cannot be a room

  103. singpolyma

    Yup. It's a bad thing in the xep imo but since it's there you have to filter out domain JIDs as not a channel.

  104. singpolyma

    Which is what I had to implement

  105. lovetox

    yes i will do that

  106. lovetox

    and add a bug report for biboumi, that it should remove the identity

  107. lovetox

    or change it to something useful

  108. singpolyma

    Does biboumi also advertise muc feature on that jid?

  109. singpolyma

    I look for conference identity and muc feature both

  110. singpolyma

    (as in must have both and not be domain do be a muc I can join)

  111. lovetox

    biboumi announces almost nothing

  112. lovetox

    but on the room it has <feature var="muc_nonanonymous" />

  113. lovetox

    thats not on the service

  114. lovetox

    ah you mean the muc feature

  115. lovetox

    yes its on both

  116. singpolyma

    I mean the muc protocol feature

  117. singpolyma

    Yeah

  118. singpolyma

    Is it on the weird third thing?

  119. singpolyma

    The IRC service

  120. lovetox

    yes its on the irc service

  121. lovetox

    yeah biboumi follows the logic that the irc service is a muc service

  122. Zash

    Heh, what does it say about user@service jids? :)

  123. Zash

    not implemented? pfft

  124. singpolyma

    Right, ok, so at least that must be removed IMO since it literally doesn't speak that protocol. Then you can argue about the conference identity as well

  125. lovetox

    hm they disabled registration at their tracker

  126. lovetox

    probably because of spam

  127. pep.

    biboumi moved to codeberg btw, same as poezio/*

  128. pep.

    Ah well it's poezio/biboumi, https://codeberg.org/poezio/biboumi

  129. lovetox

    ok why is this not mentioned on the gitlab instance

  130. pep.

    Because it's recent

  131. pep.

    That should be done I agree

  132. Link Mauve

    The GitLab is meant to go away any day now.

  133. lovetox

    and is irc.jabberfr.org

  134. lovetox

    not clearly a gateway to a non-xmpp service?

  135. lovetox

    why does it not add a corresponding gateway identity

  136. lovetox

    where can i report that again, is this also in biboumi code?

  137. singpolyma

    Yeah, I think s;

  138. singpolyma

    Yeah, I think so

  139. lovetox

    what exactly makes a service a MUC service?

  140. lovetox

    to my knowledge there is no command or anything that interacts directly with the MUC domain?

  141. lovetox

    singpolyma, you said prviously it clearly speaks not the MUC protocol

  142. lovetox

    what makes you say that?

  143. singpolyma

    The IRC service ? It's neither a room nor a muc service so what muc protocol would it speak?

  144. singpolyma

    A MUC service is such because it to the domain of a MUC

  145. lovetox

    ok issue created, lets way 2 years

  146. lovetox

    ok issue created, lets wait 2 years

  147. sagaracharya

    > ok issue created, lets wait 2 years Lol :P

  148. Link Mauve

    lovetox, could you also add that to the registrar?

  149. Link Mauve

    I’d rather not add non-standard identities, and make sure every gateway is at the same page.

  150. Link Mauve

    nicoco, how do you solve this issue?

  151. lovetox

    he probably dont, the thing is with irc bridges which makes them unique

  152. lovetox

    that they want you to interact with ircserver@gateway

  153. singpolyma

    It's just a bug, nothing unique here ;)

  154. Link Mauve

    I remember old Gajim was using the leftmost label in the domain to determine which kind of component it was, but that was disgusting.

  155. lovetox

    i would not care what ircserver@gateway announces at all

  156. singpolyma

    Link Mauve: even older gajim supported identity as well. Back before 1.0

  157. lovetox

    if this thing would not send me 100 messages

  158. Link Mauve

    goffi also, what do you do for AP domains?

  159. singpolyma

    Link Mauve: that is unlikely to have this bug since there are no MUCs involved

  160. Link Mauve

    singpolyma, I wouldn’t consider that a bug, and there is no MUC here either as the IRC server’s JID will send you chat messages IIRC.

  161. lovetox

    > I remember old Gajim was using the leftmost label in the domain to determine which kind of component it was, but that was disgusting. funny thing is that this works still better then looking at disco

  162. nicoco

    Link Mauve: not sure what issue we're talking about but these are the disco features of slidge: https://git.sr.ht/~nicoco/slidge/tree/master/item/tests/test_shakespeare.py#L658

  163. singpolyma

    Link Mauve: the bug is that it advertises it is a muc when it is not

  164. nicoco

    Link Mauve: not sure what issue we're talking about but this is the disco info of slidge: https://git.sr.ht/~nicoco/slidge/tree/master/item/tests/test_shakespeare.py#L658

  165. goffi

    Link Mauve: I don't have the context and too busy to catch up or follow right now, but the AP gateway doesn't do MUC. It's pubsub and one to one messages.

  166. nicoco

    singpolyma: let me know if slidge behaves in a bad way, one way or another, I'm happy to fix things :-)

  167. singpolyma

    I don't think slidge really has a place this bug would come up, but if I notice anything funky I have your number ;)