-
jonas’
it's communicating while using the client as a transport :)
-
Guus
Looking at XEP-0054 vcard-temp, section 3.3 (http://xmpp.org/rfcs/rfc6121.html#rules-localpart-nosuchuser): > If no vCard exists or the user does not exist, the server MUST return a stanza error, which SHOULD be either <service-unavailable/> or <item-not-found/> (but the server MUST return the same error condition in both cases to help prevent directory harvesting attacks). RFC 6121 section 8.5.1 (https://xmpp.org/rfcs/rfc6121.html#rules-localpart-nosuchuser): > If the user account identified by the 'to' attribute does not exist, how the stanza is processed depends on the stanza type. For an IQ stanza, the server MUST return a <service-unavailable/> stanza error to the sender. Doesn't that mean that `item-not-found` as suggested by 0054 cannot be used?
-
MattJ
Traditionally XEPs have been given priority over the RFC, but in this case I would stick with the advice in the RFC (especially since the XEP gives you that option)
-
Guus
Isn't the rationale between both conditions the same anyway (protect against harveting)?
-
Guus
(as in: shouldn't we drop item-not-found from 0054?)
-
MattJ
Yes
-
singpolyma
Would be a breaking change though
-
Guus
I've raised https://github.com/xsf/xeps/pull/1351 with a suggested change.
-
ManDay
so at which point will pms work consistently? when muc 2.0 or mix are done i.e. the far future?
-
ManDay
or is there hope for a breaking change in muc which straightens this out?
-
MattJ
What do you mean by "consistently"?
-
ManDay
My understanding is that the problems where a PM send on one device will not appear (carbon?) is due to an inconsistency how messages are replicated in MUC vs 1:1
-
ManDay
I.e. some re-intepretation of wether all devices of a user should be joined in a room or so - I forgot the details, but the effects are very prominent
-
MattJ
The fix for that is to not use MUC PMs or wait for MUC 2.0 or MIX which remove the ability to use MUC PMs :)
-
ManDay
well that's kind of exactly where I started isn't it 😝
-
MattJ
MUC joins are per-client, so PMs go to one client
-
MattJ
Sure, I'm hoping I answered your question
-
ManDay
Well, kind of. The timeframe isn't much clearer to me now, though.
-
ManDay
(the educatedly-guessed timeframe, that is)
-
MattJ
The majority of the federated XMPP ecosystem is made of open-source projects
-
MattJ
I don't know how familiar you are with open-source project scheduling, but wait around long enough and you'll see :)
-
Kev
Or won't.
-
ManDay
I'm a very experienced complainer :D
-
ManDay
I mean 369 is experimental but I haven't so much as remotely heard that any client tried to support it (or server, for that matter)
-
MattJ
Nobody can set a timeline, it will be done when it's done. My personal goal is to have a post-MUC protocol in Prosody by the end of the year.
-
Andrzej
369 is supported by Tigase XMPP Server, Siskin IM for iOS and Beagle IM on macOS
-
MattJ
And M-Link (not open-source) and ejabberd has a MIX prototype
-
Daniel
And Kaidan afaik
-
ManDay
Ah wow, okay. MattJ that's all I needed, for me it's question of 1 year vs 10 years. So I hope this means we're closer at 1 year
-
MattJ
Well I'm not holding my breath for MIX at this point
-
Daniel
Well the summit killed MIX
-
MattJ
Long live MUX? :)
-
jonas’
why is it not Deprecated then?
-
ManDay
What why?
-
Zash
Daniel, that time when we all promised to go home and implement MIX? Yeah that definitely killed it
-
Daniel
Zash: that was the summit before that
-
Daniel
And then we didn't do that
-
ManDay
MattJ what's the post-MUC you're referring to then?
-
Kev
I just want us to fix the glaring issues that are baked into MUC (nick-as-resource addressing, implicit presence membership etc.), MIX tried to do that. If there are better ways, we can change MIX. If there's bits that cutting out of MIX makes it more palatable, we can trim them, etc. I am not desperately tied to the protocol that's in MIX. But I also don't think MIX is as far removed from MUC as it appears to people.
-
MattJ
ManDay, I'm drafting a proposal here, which I plan to prototype in the very near future: https://pad.nixnet.services/s/7xKNOKxxE
-
MattJ
MIX throws everything out and starts from scratch with a very different (and unproven) architecture. This proposal is more about making a bunch of smaller improvements to MUC, without needing to rewrite the world or jump through hoops for backwards compatibility.
-
Kev
MIX really does not do that :)
-
Kev
Or, at the very least, is not trying to do that.
-
Andrzej
changing nick-as-resource addressing and a few other things will break compatibility anyway…
-
MattJ
It doesn't jump through hoops for backwards compatibility? This is true ;)
-
Kev
It's all meant to map cleanly between MUC/MIX (as much as possible) and when I was knocking together prototype code it all seemed to do that.
-
Kev
> changing nick-as-resource addressing and a few other things will break compatibility anyway… I don't think that has to be at all true.
-
Andrzej
MattJ, I was able to write component that supports both MIX and MUC so compatibility is not an issue in my opinion
-
MattJ
Andrzej, it's easier to present the two interfaces of the same room than it is to present MUC and MIX
-
MattJ
Yeah, it's not an issue for you if you've already done it, I agree :)
-
MattJ
But no other (open-source?) implementation has achieved it
-
Andrzej
did any tried?
-
Kev
Ejabberd and Openfire implementations never made it to OSS did they?
-
MattJ
Yes, I made two attempts, and ejabberd still has an experimental branch
-
MattJ
MUC compatibility is a hard requirement for me, because I care a lot more about the federated network than about closed deployments
-
MattJ
I don't know if ejabberd's implementation bridges to MUC, maybe Holger knows
-
Mickaël
yes, it was in oss. We tried a prototype implementation, but have been lazily (guilty for that) waiting for the next steps in case it had to get through significant changes.
-
MattJ
Mickaël, do you know if it bridges to MUC, or whether MIX groups are independent?
-
MattJ
i.e. can a MIX client and a MUC client transparently join and manage the same room?
-
Mickaël
> Mickaël, do you know if it bridges to MUC, or whether MIX groups are independent? No bridge, just separate service for now ↺
-
MattJ
Right
-
MattJ
That's pretty simple to implement, but I didn't even try
-
MattJ
That is, if you have a pubsub implementation, which we all do, it makes MIX very easy :)
-
ManDay
MattJ the issues you mention all go a bit over my head. From my perspective I'm happy with MUC but for a few small grievances, like PMs, which seem to be solvable by straightening out non-fundamental flaws. But that's just my user perspective.
-
MattJ
Same here. But instead of fixing those small issues, MIX invented an entirely new incompatible protocol for group chats :)
-
MattJ
If we didn't have to worry about existing implementations and deployments, that would be fine
-
Kev
It's not incompatible, it's really not hard to have MIX and MUC be the same entity.
-
ManDay
Well your proposal also contains not so few not so small architectural changes. I'm not saying it's a bad thing in either case; I just can't relate to it.
-
MattJ
That's something I disagree on, but I understand that my opinion is based purely on my own experience
-
MattJ
ManDay, my proposal is all stuff that we are already doing or can trivially do on top of MUC today
-
MattJ
But right now it's spread out across a bunch of different XEPs
-
ManDay
I see nothing wrong with that. It grew into several XEPs so what
-
MattJ
It makes it harder for developers to know what's what
-
ManDay
I think that is at best a formality or remedied by an overview document - nothing which demands redesign of the actual semantics.
-
MattJ
It gets messy. We've done similar consolidation with SASL2/Bind2, and it simplifies implementations a lot. Simpler protocol and implementation leads to faster development and fewer bugs.
-
MattJ
I risk repeating myself, but MIX, today, as specified, is prone to message loss
-
MattJ
The answer is always "we can fix that", whever I point out issues in MIX
-
MattJ
and it's not untrue, we could
-
ManDay
The PM issue though, please refresh my memory (I can't find the debate, unfortunally), it's that PMs issued from one device of user@domain.com do not get replicated to other devices by domain.com, why?
-
MattJ
But it doesn't seem worth the effort to me when we can also just fix MUC
-
MattJ
ManDay, if you join the room from multiple devices, you wouldn't want to receive duplicates of each message
-
ManDay
> It gets messy. We've done similar consolidation with SASL2/Bind2, and it simplifies implementations a lot. Simpler protocol and implementation leads to faster development and fewer bugs. I get it , yeah ↺
-
ManDay
> ManDay, if you join the room from multiple devices, you wouldn't want to receive duplicates of each message Yeah that was the catch somewhere, because MUC does message duplication in itself, right? Which is historically designed that way because not every device may be joined in a MUC yaddayadda, right? ↺
-
ManDay
Just why does MUC do the replication and not the user's server (as it is the case for 1:1 iirc)?
-
MattJ
MUC doesn't - your server is supposed to
-
ManDay
(goddamit if I could just find that debate and re-read it again :-/)
-
MattJ
or, I'm misremembering
-
MattJ
Here we go, here are the rules: https://xmpp.org/extensions/xep-0280.html#recommended-rules
-
ManDay
So where again is the problem, device user@domain.com/A sends a PM, why does domain.com not carbon that to /B and /C, the other devices?
-
ManDay
Ok, reading...
-
ManDay
ah yes, that x... it's coming back to me now
-
MattJ
So based on this, the MUC service is responsible for the copying, which it can only do if all your resources are joined to the room
-
ManDay
yeah and iirc, that's the part that (I found) inconsistent, but let me catch up... I didn't actually read 280 yet
-
ManDay
What happend to KISS 😐
-
Holger
ManDay: MUC PMs existed long before XEP-0280 did. Back then, 'sync all history to all devices' wasn't a thing yet. You'd usually see the current 1:1 conversation on the current device, and the next one on the next device. MUC was invented, and a requirement was to allow several devices to join the same room. If you did that and received a PM, MUC services just copied PMs to all joined devices.
-
Holger
ManDay: Now you keep looking at things from today's perspective, where 'sync all history everywhere' is a thing. From that perspective, you'd obviously design things differently, yes.
-
ManDay
Ok my trouble with this is why the MUC would need any notion of multiple devices in the first place. When I try to "keep it simple" in my head, the absolute only entity which must know about "multiple devices" is the user's own server. Why does this reasoning not apply to MUC?
-
Holger
ManDay: And the MUC PM weirdness you mean is specifically due to the old logic not playing well with the new 'sync all history everywhere' idea.
-
ManDay
Thank you Holger for that comprehensive explanation (again? 😅)
-
Holger
ManDay: Apart from all that I think MUC PMs have way more serious issues.
-
Holger
ManDay: From today's perspective that question makes sense, it's basically how MIX is designed. Back then, it seemed normal that only a subset of your devices was joined to a room, possibly only temporarily. The user's own server wouldn't easily be able to handle that.
-
ManDay
All right, because only the MUC knew which devices where joined? I must say that even with the then-perspective in mind it doesn't seem to make sense to leak a notion of devices to other servers... But okay, that milk is spilled and recomposted by now, I guess.
-
ManDay
Anyway, and thanks for making this clear so quickly, that is the inconsistency which I rememberd, MattJ (and I shall copy and backup our conversation just now, just in case...)
-
Holger
ManDay: "Leaking" that notion is core to the XMPP protocol. Unlike email, it allows for addressing individual devices as opposed to accounts. Which allows individual devices to perform service discovery on remote entities, querying room archives, and so on.
-
lissine
ManDay: Gajim supports receiving PMs as carbons, as well as fetching PMs from mam, though the messages you receive from others are sometimes duplicated two or three times (I guess this is the number of online clients at the time) I think client developers don't want to implement those features because they're probably a headache. But the current protocol works
-
lissine
(Message duplication is when fetching PM history from mam)
-
ManDay
> ManDay: "Leaking" that notion is core to the XMPP protocol. Unlike email, it allows for addressing individual devices as opposed to accounts. Which allows individual devices to perform service discovery on remote entities, querying room archives, and so on. I see. It seems very strange to me. I would think that, as a communications protocol, the only concern would be addressing "someone" - and never "someone on a specific device". If only a specific device is involved in the communication, the server which "represents" that "someone" would deal with it. ↺
-
ManDay
lissine Uhm the "though messages [...] are sometimes duplicated" doesn't actually sound like it works?
-
lissine
ManDay: We don't know whether it's a client bug or a problem with the spec. But you always get your PMs in Gajim (even if duplicated), unlike what you stated in the beginning about it being infeasible because of the protocol
-
Holger
ManDay: You could obviously redesign things to have the user server proxy outgoing requests of individual devices, which would add quite a bit of complexity for no obvious gain. Let alone incoming traffic to individual devices (like OMEMO negotiation or whatnot).
-
lissine
ManDay: But sure, making that part of the spec simpler / easier will result in more clients implementing it
-
Holger
ManDay: I mean yes the "someone" idea makes sense as long as we're only looking at actual IM text messages, given the 'sync everything everywhere' thing. But XMPP does way more than that.
-
Mickaël
> I see. It seems very strange to me. I would think that, as a communications protocol, the only concern would be addressing "someone" - and never "someone on a specific device". If only a specific device is involved in the communication, the server which "represents" that "someone" would deal with it. In XMPP, you can address devices because they can have different capabilities. They do not have to be a chat client. I had a client streaming music, when sending messages to it, connected under my own account. ↺
-
lissine
Yes, addressing someone is relevant when doing an audio / video call, or a P2P file transfer As for PMs, AFAIK they are sent to room@conference.example.org/nick And AFAIK you can join a room with multiple clients using the same nick That's how you get carbons with PMs✎ -
lissine
Yes, addressing a specific device is relevant when doing an audio / video call, or a P2P file transfer As for PMs, AFAIK they are sent to room@conference.example.org/nick And AFAIK you can join a room with multiple clients using the same nick That's how you get carbons with PMs ✏
-
Zash
lissine, challenge: find where it's defined that multiple clients can join with the same nick ;)
-
lissine
> lissine, challenge: find where it's defined that multiple clients can join with the same nick ;) It's possible or I got this wrong?
-
Kev
It's possible, but it's woefully under-specced, was the point.
-
ManDay
I still haven't understood what goes wrong when I **send** a PM on /X and it doesn't show up on /Y - is that by design? Shouldn't it be a carbon going to Y?
-
lissine
Zash: it was pretty easy to find ;) > However, if the bare JID <localpart@domain.tld> of the present occupant matches the bare JID of the user seeking to enter the room, then the service SHOULD allow entry to the user, so that the user has two (or more) in-room "sessions" with the same roomnick, one for each resource. https://xmpp.org/extensions/xep-0045.html#enter-conflict
-
Kev
Now try to implement it on a server using only that information ;)
-
lissine
There's more in the paragraph: > If a service allows more than one occupant with the same bare JID and the same room nickname, it MUST route in-room messages to all of the user's resources and allow all of the user's resources to send messages to the room; it is up to the implementation whether to route private messages to all resources or only one resource (based on presence priority or some other algorithm); however, it is RECOMMENDED to route to all resources.
-
lissine
ManDay: you see this paragraph above? That RECOMMENDED is recommended is probably why✎ -
lissine
ManDay: you see this paragraph above? That RECOMMENDED (instead of REQUIRED / MUST) is probably why ✏
-
ManDay
Does "route PMs" refer to routing PMs back to the user themself here?
-
lissine
A resource means a connected client
-
ManDay
So if I send a PM with Movim to xsf@muc.xmpp.org/lissine and it doesn't show up on my Conversations, then I should complain to.... xmpp.org? Or monocles.eu (being my server)?
-
ManDay
xmpp.org, I suppose?
-
singpolyma
> Now try to implement it on a server using only that information ;) Isn't the only "hard part" that iq effectively routes randomly? ↺
-
Kev
> > Now try to implement it on a server using only that information ;) > Isn't the only "hard part" that iq effectively routes randomly? Nick changes at least used to be underspecified, too.
-
ManDay
(I did not actually mean to complain, just rhetorically speaking, of course)
-
ManDay
What motivates the "RECOMMEND", though - it seems a mistake that the user can not rely on their message history being mirrored across all (joined) devices.
-
singpolyma
Around here it is commonly believed that RECOMMEND means must
-
singpolyma
But MUST means really really must 😉
-
ManDay
Well it doesn't work for me though. I will send you a PM:✎ -
singpolyma
MUC PMs go to MAM, so you can even get them without ever joining the room haha
-
ManDay
Well it doesn't work for me though. ✏
-
lissine
I actually like that feature :p
-
lissine
But Gajim is the only client that I'm aware of that supports it
-
singpolyma
I'm strongly considering removing the ability to initiate or send arbitrary MUC PMs entirely
-
ManDay
So you are saying if I send a PM in (say) Conversations and it doesn't show up in Movim it's most likely a client bug?
-
lissine
ManDay: wait a few minutes for me to test
-
singpolyma
Your own outgoing one not showing up you mean?
-
ManDay
Yes singpolyma
-
lovetox
yes its usually a client bug
-
singpolyma
That's just carbons. Nothing to do with MUC at all. So yeah, not sure either your server's carbon rules are not triggering for that or it's a client bug
-
lovetox
but also all the PM rules are hard, so you most likely will see bugs in various clients
-
lovetox
for example i see a ejabberd bug since a few months, it for some reason puts a pm under certain circumstances twice in the mam archive
-
ManDay
> That's just carbons. Nothing to do with MUC at all. So yeah, not sure either your server's carbon rules are not triggering for that or it's a client bug Great, so it's a bug in either one of two clients or at my server... That's sounds like fun figuring out ↺
-
ManDay
singpolyma it's *my* server though, not the MUC server, or could that also be?
-
lissine
> Great, so it's a bug in either one of two clients or at my server... That's sounds like fun figuring out ManDay, prosody + Gajim don't have this issue. So each time change a piece of your setup to figure out ↺
-
ManDay
lissine prosody being MUC and server and two instances of Gajim, I take it?
-
ManDay
I'm unfortunally not equipped to walk the entire combinatorics of MUC server, user server, client 1, client 2...
-
ManDay
And to be very frank, god beware this happen to a non-techie - how would they possibly get this sorted out...
-
Daniel
To be fair most users don't care MUC PMs
-
lissine
ManDay, A prosody account logged in on Gajim will receive PM carbons, regardless what is the other client I think it also doesn't matter if the MUC component is prosody or ejabberd. But test to be sure.
-
ManDay
> To be fair most users don't care MUC PMs That's true ↺
-
lissine
> To be fair most users don't care MUC PMs Only those who use public channels do But you're right, that's a small percentage of the overall network ↺
-
ManDay
Well... Unless they join a room which says "PM a moderator to ask for voice" :)
-
ManDay
I have a prosody account logged in on Conversations and Movim - and neither direction (Movim -> C; C -> Movim) worked
-
ManDay
Well okay, I'll figure it out. Thanks for looking into it in any case!
-
lissine
speaking of which, Daniel, maybe you should accept the 'request to speak' PRs to make PMs less important 😇️
-
lissine
> MUC PMs go to MAM, so you can even get them without ever joining the room haha singpolyma, shouldn't that be fixed with unique_occupant_ids, so that another person can't get your history simply by getting your nick? ↺
-
singpolyma
lissine: no they don't go to MUC mam. They go to *your* MAM
👍 1 -
lissine
ManDay, Conversations and its forks don't handle carbons for private messages
-
ManDay
understood, ty
-
s1
hello.. is there a place/club/forum to test SIP/xmpp internet video/voice calls with people around the world?