XSF Discussion - 2020-10-04


  1. Ge0rG

    Should a gateway that offers chatrooms have two identities? `<identity category="gateway" type="othernetwork" />` as well as `<identity category="conference" type="text or something" />` ?

  2. pep.

    That might confuse clients looking for a MUC service to creates room onto(?)

  3. Ge0rG

    Also, what's the status of our registry?

  4. Ge0rG

    pep.: Gajim refuses to join rooms that don't have a conference identity.

  5. Ge0rG

    Maybe only the room should have a conference identity then?

  6. pep.

    hmm.

  7. pep.

    That'd be enough to me

  8. Daniel

    No the server needs to have the identity too

  9. pep.

    why?

  10. Zash

    Having multiple identities is valid, albeit confusing sometimes.

  11. Daniel

    That's how we Auto discover muc servers

  12. Ge0rG

    Daniel: what if you can't create rooms on that service because it's a gateway?

  13. pep.

    that ^

  14. Daniel

    I Filter that out

  15. Zash

    How?

  16. Ge0rG

    you filter what out where?

  17. Daniel

    Based on the gateway identity

  18. Zash

    So (gateway,$type) + (conference, text|???) would make sense?

  19. eta

    Ge0rG, ooi, what gateway are you writing

  20. Ge0rG

    eta: don't ask

  21. eta

    (is it the matrix bridge)

  22. Daniel

    I look for any service that has conference but not category gateway

  23. Daniel

    For the group chat auto create feature

  24. pep.

    Ok that makes sense

  25. Zash

    Out of curiosity, what would happen if the base host advertised conference/text?

  26. Daniel

    I mean tbf I don't care if a gateway advertises as conference. That has no benefit

  27. Daniel

    But I catch the case when it does

  28. Daniel

    Because historically a lot of gateways do

  29. lovetox

    indeed also gajim does use conference/text on the component to find the muc server

  30. Ge0rG

    lovetox: on the component?

  31. lovetox

    the subdomain, or whatever

  32. lovetox

    muc.domain.org

  33. Ge0rG

    lovetox: btw, Gajim's error message is "Address does not belong to a group chat server", which is misleading given that it queries the room and not the domain

  34. lovetox

    the disco info item that the server returns on a disco item

  35. lovetox

    how do you call it?

  36. Ge0rG

    lovetox: I was just confused on where you come from. I was trying to "Join Group Chat" by entering a room JID into the dialog

  37. lovetox

    yeah and why is the error message confusing

  38. lovetox

    or with what case could it be confused

  39. Ge0rG

    lovetox: it implies that you are checking the domain JID and not the room JID. See https://mail.jabber.org/pipermail/standards/2020-October/037784.html for details

  40. lovetox

    ok i forgot that you can run the muc service on a domain that can also host accounts

  41. lovetox

    then this message makes no sense for some servers

  42. Ge0rG

    lovetox: yup

  43. lovetox

    thanks

  44. Ge0rG

    lovetox: FYI, it was caused by https://github.com/matrix-org/matrix-bifrost/issues/131

  45. lovetox

    Ge0rG, you write this like its a option

  46. lovetox

    conference/text is a MUST on rooms

  47. lovetox

    its not a "short-term" solution which implies that there is a different "long-term" solution

  48. lovetox

    also i have the same issue open for months

  49. lovetox

    there is no activity on this repo for > 6 months

  50. lovetox

    and this is probably a one liner

  51. Ge0rG

    lovetox: well it might also be conference/matrix instead of conference/text, right? 😉

  52. lovetox

    no

  53. lovetox

    then its not a MUC

  54. Ge0rG

    lovetox: you might cross reference the issue then. The Bifröst developers have returned!

  55. lovetox

    a bridge tries to emulate a MUC, then it has to respect every part of 0045

  56. Ge0rG

    Good point

  57. pep.

    Talking about MUC, what's up with disco#info results having different names than MUC configuration? :/

  58. pep.

    It's quite confugins

  59. pep.

    It's quite confusing

  60. lovetox

    https://xmpp.org/extensions/xep-0045.html#registrar-discocat

  61. lovetox

    thats the single way a MUC is discovered, everything that does not put conference/text, is by definition not a MUC

  62. pep.

    Also features being sent alongside a form (that seems to reuse MUC configuration names?), will a server always send one and not the other if it's also declared as a disco feature?

  63. Zash

    pep.: what, exactly?

  64. Ge0rG

    lovetox: feel free to comment on standards@, BTW

  65. pep.

    Zash, for example muc#roomconfig_whois doesn't appear in disco#info, there's muc_nonanonymous and muc_semianonymous

  66. Ge0rG

    lovetox: if that's the single way, why are you also checking for the MUC namespace feature?

  67. pep.

    (well not both at the same time)

  68. pep.

    When querying disco#info, do I have to be ready to parse all variations?

  69. lovetox

    Ge0rG, i looked it up in Gajim code

  70. lovetox

    acutally i check for conference + MUC Feature

  71. lovetox

    which i should change

  72. lovetox

    if i read this correctly

  73. lovetox

    https://xmpp.org/registrar/disco-categories.html#conference

  74. lovetox

    conference/text says its a text conferencing service, which could mean alot

  75. lovetox

    so we should probably always check in addition for the MUC feature

  76. Ge0rG

    So it's the right thing to check for both, on the room JID?

  77. Ge0rG

    What will Gajim do if the room is item-not-found?

  78. pep.

    Any idea how the disco thing in MUC came to be? Somebody first added their feature for their one need and a few others got added bit by bit and then somebody said "fk it let's add all the form"?

  79. lovetox

    Ge0rG, tell the user that the room does not exist?

  80. lovetox

    pep., i dont understand the problem

  81. lovetox

    what is the problem with muc#roomconfig_whois?

  82. lovetox

    its a registered config option

  83. Zash

    Why is there conference/irc then? Is that not allowed to speak MUC?

  84. pep.

    lovetox, the problem is that roomconfig_whois never appears in disco#info

  85. pep.

    it appears as either muc_nonanonymous or muc_semianonymous

  86. pep.

    Well, I don't know about "never"

  87. Zash

    pep.: Why is that a problem?

  88. pep.

    Just confusing

  89. pep.

    So I have to parse all the possible variations, right?

  90. Ge0rG

    Isn't the identity meant for users and the feature for clients?

  91. Zash

    The config option would enable one out of those flags

  92. pep.

    Zash, yes and when discovering I'm not sure if I'm gonna get the disco feature or if in the disco result I'll have a form with the muc configuration name

  93. pep.

    (With a value that's anyone or moderators)

  94. Zash

    pep.: disco features in disco results, config options in the config form.

  95. pep.

    Ok so why doesn't muc#roomconfig_changesubject have a disco feature as well

  96. pep.

    Why is that in the form in the disco result

  97. Zash

    Wait `muc#roomconfig_*` in the disco result? That might be a bug.

  98. Zash

    Unless the XEP says to do so

  99. Zash

    In which case it's an inconsistency

  100. pep.

    I think it does, and I find it confusing

  101. pep.

    yes

  102. pep.

    https://xmpp.org/extensions/xep-0045.html#example-10

  103. Zash

    Ugh

  104. pep.

    Half disco features half muc#

  105. Zash

    Well examples aren't normative!!!!!

  106. pep.

    :/

  107. pep.

    not helpful

  108. lovetox

    its a bad example i think

  109. Zash

    pep.: note `muc#roominfo_` vs `muc#roomconfig_`

  110. pep.

    ouch

  111. lovetox

    it just wants to show that roomconfig can be in disco info

  112. pep.

    even more inconsistencies

  113. lovetox

    but they choose the one that has a feautre anyway

  114. lovetox

    there others that dont have one

  115. Zash

    Check the form registration

  116. lovetox

    in this case only check for the roominfo feature

  117. lovetox

    why would the roomconfig feature say something different?

  118. Zash

    https://xmpp.org/extensions/xep-0045.html#registrar-formtype-roominfo doesn't have any `muc#roomconfig`

  119. Zash

    Bug in the example?

  120. lovetox

    Zash read the text below example 10

  121. lovetox

    it states that all roomconfig features can be included in the disco info

  122. Zash

    Uuuuuhu

  123. lovetox

    and roomconfig has their own registry

  124. lovetox

    so why would it in the roominfo registry

  125. Zash

    I'm not sure this is how field standardization is meant to work

  126. pep.

    So yeah that confirms I have to be able to parse and disco feature and form configuration and handle duplicates etc. in disco#info results

  127. lovetox

    i agree its not very nice

  128. Zash

    pep.: at least it's roomconfig vs roominfo

  129. lovetox

    no pep, just parse all roominfo attributes

  130. pep.

    lovetox, why?

  131. lovetox

    and then the roomconfig features you are interested

  132. lovetox

    and you dont need to handle duplicates

  133. lovetox

    you are not a server stanza debugger

  134. pep.

    lovetox, not everything is sent as a roomconfig field

  135. lovetox

    as i said, first you parse all "roominfo"

  136. pep.

    not even roominfo

  137. lovetox

    then only the roomconfig fields you are interested in

  138. pep.

    <feature var='muc_nonanonymous'/>

  139. Zash

    It's `muc#roominfo_changesubject` in Prosody :(

  140. pep.

    Zash, :D

  141. lovetox

    Zash, i think because i opened a issue and was confused :D

  142. Zash

    Indeed

  143. Zash

    Tho it didn't advertise that at all before

  144. Zash

    I feel like there's been a case where there was one of roominfo and roomconfig, which was changed to the other

  145. lovetox

    whats with that feature pep?

  146. lovetox

    of course you need also features parsing

  147. lovetox

    ok lets formulate it different

  148. lovetox

    first parse features, then parse roominfo

  149. lovetox

    that is what you can depend on

  150. lovetox

    roomconfig, in disco info is totally optional

  151. lovetox

    so you dont need to parse it at all and everything should work

  152. pep.

    lovetox, well that means I can have both muc_nonanonymous and muc#roomconfig_whois to anyone and I need to parse both.

  153. pep.

    Or have one in a server implementation, the other in another server implementation

  154. lovetox

    no pep.

  155. pep.

    Not that it's really an issue, just confusing / inconsistencies

  156. lovetox

    the feature is not optional

  157. pep.

    what do you mean it's not optional

  158. lovetox

    if a muc is nonanonymous

  159. pep.

    Ok so a server has to use the feature if it exists?

  160. lovetox

    is MUST include <feature var='muc_nonanonymous'/>

  161. lovetox

    server?

  162. lovetox

    i thought we are talking about rooms

  163. pep.

    MUC service

  164. pep.

    Or rooms, whatever

  165. pep.

    server-side

  166. lovetox

    if you query a *room*

  167. pep.

    we're talking about the same thing

  168. lovetox

    the answer MUST include that feature

  169. pep.

    k

  170. lovetox

    if it applys to the room

  171. Zash

    So muc#roominfo is a superset that includes muc#roomconfig :/

  172. lovetox

    so there is no reason in the world why you ever search for roomconfig_whois

  173. lovetox

    pep. i would say Gajim displays every important information of a muc in its muc join dialog

  174. lovetox

    and the only time i check for roomconfig is for muc#roomconfig_roomname

  175. lovetox

    im not sure why that is, but i probably had a reason

  176. lovetox

    its muc#roomconfig_roomname > identity.name -> localpart

  177. lovetox

    for naming a groupchat

  178. pep.

    lovetox, do you also have the mam config hack btw? :x

  179. pep.

    Servers didn't agree on a config value apparently

  180. pep.

    https://github.com/iNPUTmice/Conversations/blob/fa752b596d7fba41a0b62011cd91a11af84b1cd6/src/main/java/eu/siacs/conversations/generator/IqGenerator.java#L527

  181. lovetox

    why is that a hack?

  182. lovetox

    its a custom config option for prosody

  183. lovetox

    and yes Gajim uses that

  184. edhelas

    lovetox we can specify one in the XEP and simply the implementations to follow the standards

  185. Zash

    I wonder if they've read https://xmpp.org/extensions/xep-0100.html

  186. Zash

    I wonder if it's relevant

  187. lovetox

    edhelas, yes we can, and it would be easier, but i would not conisder everything thats not in a standard a hack

  188. pep.

    Just that consistency is good, especially when it's the exact same feature :p

  189. Zash

    I wanna change it from a boolean to a timedelta of some sort, ie retention period.

  190. pep.

    with a "max"? :P

  191. Holger

    Zash: For MUC MAM specifically?

  192. Zash

    pep.: I guess a range from 'disabled' to a server-wide maximum.

  193. Zash

    Holger: Well, yes, but probably MAM too at some point..

  194. Holger

    (FWIW I tried to suggest standardizing a field name but failed.)

  195. Zash

    Somewhat related to me wanting to turn the 'persistent' boolean into a similar timedelta.

  196. pep.

    Holger, !! What failed

  197. Holger

    Zash: I see. Haven't seen demand for such a feature yet. (And would not be keen on implementing it.)

  198. pep.

    Zash, I guess currently it's a deployment policy anyway

  199. Zash

    Yeah

  200. pep.

    GC'd after t time of inactivity or sth

  201. Zash

    pep.: Room persistence? Yeah, instead of choosing between "room destroyed the moment your phone blips" and "exists forever", the room would be destroyed after n days of emptyness.

  202. Holger

    pep.: I think people disagreed on whether it needs a separate flag at all (as opposed to overloading the flag for public HTML logging). And those who agreed didn't agree on how to proceed (just add it to 0045 vs. tell 'the registrar' or something).

  203. Holger

    Maybe I should have another go.

  204. Zash

    Public HTML logging _is_ subtly different.

  205. pep.

    I guess that'd be yet another thing for the registrar

  206. pep.

    And yeah HTML logging is different

  207. Holger

    Zash: Absolutely.

  208. Zash

    Altho, if you allow anonymous MAM access without joining, it's very close

  209. pep.

    I'm support such a PR

  210. Holger

    Zash: If.

  211. pep.

    I'd support such a PR

  212. Zash

    There's something of a scale :)

  213. Holger

    Zash: 0313 says: > A MUC archive MUST check that the user requesting the archive has the right to enter it at the time of the query and only allow access if so.

  214. pep.

    Doesn't mean there can't be more checks?

  215. Zash

    Holger: But does it say that you can't restrict it further?

  216. pep.

    Maybe that should be made more explicit

  217. Zash

    Anything not forbidden is allowed! :D

  218. Zash

    I think limiting MAM access to current participants is a thing one might want.

  219. Zash

    And also limits based on affiliation, e.g. limit to members/admins or somesuch.

  220. Zash

    or <payment-required/>

  221. pep.

    I'd say in public channels I might want to restrict to joined participants :/

  222. Zash

    Mmmmmmmoar settings

  223. pep.

    Design guidelines

  224. pep.

    MAM actually explicitely says "In a members-only chat room, only owners, admins or members can query a room archive." right after that sentence

  225. Zash

    That's saying the same as "only those who can join has access", right?

  226. pep.

    "[..] a MUC archive MAY further limit access based on other criteria as part of the deployment policy."