-
Daniel
An unavailable presence from the bare jid should mark all resources as unavailable. Is this also true for error presence?
-
Daniel
Probably not since I can't find anything explicit in the rfc about that?
-
jonas’
good question
-
Zash
It Depends?
-
jonas’
from bare JID, probably, from full JID, no idea
-
Zash
Also consider the `<error by=>`
-
larma
I noticed that the current compliance suites lists some experimental XEPs. I don't think this should be possible with our current official position on what XEP status means
-
MattJ
Daniel, I don't know if I'm right, but my instinct says "yes" - I can't think of any cases where "error" isn't practically equivalent to "unavailable"
-
Peter Waher
How do you send from a BareJID? The BareJID corresponds to the account (on the broker), which sends no presence by itself, while the Full JID corresponds to the connection the client has with the broker. The clients sends unavailable as a graceful shutdown.
-
MattJ
it certainly doesn't mean "available"
-
MattJ
Peter Waher, the client can't send from the bare JID, but their server can
-
Zash
Peter Waher: e.g. bounced probes
-
Peter Waher
aha
-
Peter Waher
a “bounced probe”, what does that mean?
-
Peter Waher
Meaning the server has no information?
-
Daniel
yes error == unavailable probably. but I was confused because the rfc has explict wording for unavailable
-
MattJ
It could happen to probes if there are s2s failures or policies preventing you sending to that user, etc.
-
Daniel
but doesn’t seem to have it for error
-
Daniel
instinct wise (or logically) i would agree though
-
Daniel
it probably rarely happens
-
Daniel
i mean error presence from bare are frequent (failed probes) but you hadn’t receive available presences then before the error one
-
Kev
A client shouldn't receive a presence error from a bare JID most of the time, but sub request/approvals could cause it, and might not mean unavailable, it might just be a subsecond S2S glitch or whatever.
-
Daniel
you get them if you enter non existent stuff into your roster, no?
-
jonas’
larma, yes, but here we are, I gues.
-
Kev
> you get them if you enter non existent stuff into your roster, no? I'd hope you don't do that most of the time, but yes, probably :)
-
Peter Waher
3. Else, if the contact has no available resources, then the server SHOULD reply to the presence probe by sending to the user a presence stanza of type “unavailable” (although sending Saint-Andre Standards Track Pₐgₑ ₅₃ RFC 6121 XMPP IM March 2011 unavailable presence here is preferable because it results in a deterministic answer to the probe, it is not mandatory because it can greatly increase the number of presence notifications generated by the contact's server). Here the 'from' address is the bare JID because there is no available resource associated with the contact.
-
MattJ
Kev, while I agree it might not mean that the JID is actually offline, from the perspective of an observer receiving the error, I think they ought to be treated pretty much the same
-
Kev
I think you can argue either way convincingly.
-
MattJ
Some clients (Gajim, for example) have/had a dedicated error status, which was visible in the UI
-
MattJ
I found that useful, personally
-
larma
jonas’, well, I'd also argue those are controversial. Push notifications and Jingle Message Initiation. JMI was already on 2021 and since received major changes and still has major changes pending in PRs.
-
MattJ
I haven't closely been following JMI, but drastic breaking changes at this stage concern me a lot
-
MattJ
Hearing that Monal can only call Monal is sad
-
Daniel
tbf when we added JMI to the compliance suite it seemed more stable than it is now
-
Daniel
but that's an argument to remove it this year i guess
-
MattJ
Maybe it was necessary, but I'd like to hear that there was absolutely no way to maintain backwards compatibility with everyone who already implements it
-
Kev
For the compliance thing, I think you end up with three choices: 1) Don't reflect reality because XEPs are Experimental that maybe shouldn't be 2) Reflect reality and have Experimental XEPs in the suite 3) Require that the author of the year's compliance XEPs also pushes through everything getting out of Experimental I can see why (3) doesn't garner a lot of interest from the relevant people :)
-
Daniel
making a general policy to not have experimental xeps in the compliance suite is sadly not realistic imho
-
Zash
Separate compliance suite into a Vision and a Current State document?
-
Kev
Of course, XEP statuses being appropriate is a good goal, but when it's not the case and you want a compliance suite, that's where you end up with.
-
Daniel
but on a case by case basis we might choose not to put them there
-
Daniel
or remove them again
-
MattJ
Well, it would have prevented this situation if we'd advanced JMI before adding it to the compliance suite
-
MattJ
Council approval or a new XEP would have been required instead
-
MattJ
or, some other solution to whatever became necessary to update in the new revisions
-
Daniel
> Maybe it was necessary, but I'd like to hear that there was absolutely no way to maintain backwards compatibility with everyone who already implements it the current latest NS bump was not necessary at all imho
-
Daniel
the upcoming group stuff are probably a different issue tho
-
Daniel
Zash, we already have a "keep an eye on …" section
-
MattJ
Just practically speaking, we had to add the JMI namespace to Prosody's CSI as a prioritized payload
-
MattJ
There is about to be a Debian freeze with this namespace in, and it will be in many Prosody installations for years to come
-
Zash
Pretty sure I added the new JMI namespace ages ago
-
Zash
Precisely to avoid that scenario
-
MattJ
Is there only one new one? or is another coming?
-
Zash
Are there more than 2?
-
Daniel
there is :0 which is what most clients use
-
Daniel
there is :1 which is what monal uses
-
Zash
https://hg.prosody.im/trunk/file/0.12.2/plugins/mod_csi_simple.lua#l72
-
Daniel
and then there may or may not be another one that adds group logic to it
-
Zash
Ha, year ago! https://hg.prosody.im/trunk/rev/1c47162dd965
-
larma
> Council approval or a new XEP would have been required instead For the large changes still pending in PR proposed by me, I originally proposed to create a new XEP for that but Council decided it should go into existing JMI instead ↺
-
larma
Combining the two policies "new stuff should be merged into old stuff if it fits the topic" and "old stuff should not have large changes" is inherently problematic. We need to decide for one. I personally don't care which one, but I see how this is blocking progress in XMPP.
-
MattJ
I don't see right now that it's blocking any progress - but I agree we should have some understanding of what our preferences are
-
MattJ
JMI was a widely implemented and deployed XEP that has been updated with breaking changes, and that's not ideal
-
MattJ
I don't know what the solution is, since I haven't even studied the changes that were made in this case, but I feel like "re-use existing XEPs that cover a topic" was perhaps too strongly applied here
-
larma
argubly, one can perfectly run JMI in dual compatibility mode
-
larma
just like many clients support multiple versions of MAM
-
MattJ
I don't know if thilo.molitor hasn't done that in Monal because it's not feasible, or just because he only wants to support the latest version (but I'm curious)
-
MattJ
At the end of the day I don't really care about the namespace or XEP number used, but about fragmenting stuff unnecessarily
-
MattJ
and a fragmenting change is being introduced here, with Monal incompatible with other calling-capable clients (of which we now have a good number)
-
MattJ
If people start updating to the new version only, it's only going to get worse
-
MattJ
If everyone agrees to support both in parallel, everything is fine
-
MattJ
(for a transition period, at least)
-
Daniel
I agree that rejecting call invites was a mistake
-
MattJ
I think the XEP number/namespace only comes into the issue because people might look at the latest XEP version and think that's all they need to or should be implementing
-
Kev
> At the end of the day I don't really care about the namespace or XEP number used, but about fragmenting stuff unnecessarily In practice, does it make a diffference if a breaking change is in an existing XEP or a new one? You fragment either way.
-
MattJ
If JMI had advanced to Draft, we'd rejected breaking changes and put them in a new XEP, the transition would be easier from that perspective
-
Kev
It's as easy to put a note into an existing XEP saying "Version X was widely deployed as of 2009, you might want to support that too" as it is into a new XEP saying "XEP-X was ..."
-
MattJ
The compliance suite would continue to recommend JMI (with a note that it was being replaced) and the new one in "Advanced" or something
-
MattJ
Kev, sure, but then the compliance suites should probably clarify the version number(s) people are expected to implement :)
-
Zash
Revert https://xmpp.org/extensions/xep-0353.html#revision-history-v0.4.0 and retroactively accept call invites XEP?
-
Kev
In most cases I don't think that's needed, but in this one I don't think it would be stupid.
-
Kev
The suite saying "While we expect deployment of X.Y to pick up, currently X.Y-1 is more widely deployed" seems helpful to me.✎ -
Kev
The suite saying "While we expect deployment of X.Y to pick up, currently X.Y-1 is more widely deployed, you probably want to support both" seems helpful to me. ✏
-
larma
regarding transition period: Dino already uses the "next" version of JMI (the one in my PR) in production, but will only use it outgoing for multi-party calls that are unsupported by old/current JMI (but we still accept the next version incoming for 1:1-calls for future compatibility)
-
MattJ
I don't much care what solution we go with, as long as we don't end up with a repeat of what happened with file transfers 10-15 years ago
-
MattJ
The roll-out of calls to the ecosystem has been pretty successful so far
-
larma
Which for me comes as a surprise considering how broken everything is 😀
-
Daniel
using 'Call invites' for multi party calls and 'jmi:0' would have been a very sane solution imho✎ -
Zash
larma, I suspect everything is horribly broken beyond comprehension if you look closely enough
-
Daniel
using 'Call invites' for multi party calls and 'jmi:0' for 1:1 would have been a very sane solution imho ✏
-
Zash
larma, so, you've probably looked closely enough 😀
-
larma
Zash, to be precise, I don't consider 0166, 0167 or 0176 terribly broken (the old things for calls), just about everything else that was added for WebRTC compatibility.
-
Zash
Web = Bad confirmed! 😁️
-
Zash
larma, are those things I approved while on Council because people well-versed in Jingle said it was good? 😕✎ -
Zash
larma, are those things I voted for while on Council because people well-versed in Jingle said it was good? 😕 ✏
-
larma
Not sure, sometimes they are also just badly implemented because they XEPs literally come with no business rules
-
Zash
Tho the things that were just "this thing from SIP / SDP" must have had some rules from their RFCs?
-
larma
Jingle is not SIP/SDP
-
larma
Jingle has features that do not fully translate to SDP
-
larma
Or at least there is no XEP on how they translate
-
stpeter
The goal of Jingle was never a bug-for-bug translation of SIP/SDP into XMPP.
-
Zash
I feel like I saw something that was basically "here's how to turn this SDP property into XML for Jingle", but can't find now.
-
Zash
Maybe it was some PR to an existing XEP then
-
Zash
or https://xmpp.org/extensions/xep-0293.html ?
-
larma
Some parts do translate.
-
larma
XEP-0166 literally asks XEP that build on top to specify if and how they translate to SDP✎ -
larma
XEP-0166 literally asks XEPs for application formats that build on top to specify if and how they translate to SDP ✏
-
stpeter
Most of the Jingle stuff was done very early on (before webrtc) and since then a few things were added, mostly by me and Fippo. There are a number of challenges here. This stuff is hard and messy, you need to know a lot about how voice and video works in the real world (Fippo is a world-class mind on this stuff), even the experts disagree and get it wrong sometimes, SDP is incredibly ugly, even the vast majority of webrtc implementations just use what Google hands them in libwebrtc (for interop reasons), etc.
-
larma
XEP-0338 has the funny line "Note: the identification-tags correspond to the <content/> 'name' attributes. These in turn map to the 'mid' attribute in SDP." - however, nowhere was ever specified that the content name attribute map to SDP mid attribute
-
larma
stpeter, yes, I totally see that. That's why Jingle has largely degraded to "translate between XML and SDP and do whatever libwebrtc would do with such SDP"
-
stpeter
nod
-
larma
which is increasingly hard if you don't actually use libwebrtc or SDP
-
larma
(speaking as a Dino dev here who did exactly that)
-
larma
which is probably also the main reason why I'm the only one complaining 😀
-
Daniel
larma: and you are probably the only one in the 'new generation' of jingle a/v devs who understands the issues.
-
stpeter
Yes, very much so. As I said, even companies running huge voice and video service like Facebook and Zoom just use the Google library. When I was at Mozilla, I had conversations with a number of these companies and they didn’t like this state of affairs but even they weren’t motivated to put in the enormous amount of energy needed to fix it.
-
Daniel
Everyone else just knows how to get libwebrtc working (which is complicated enough)
-
Daniel
I guess what I'm saying is that I trust you when you say it's broken. I'm willing to fix it. But I don't have the indeepth knowledge required to fix it
-
larma
And I guess that's a problem in itself. Because I'm far away from perfectly understanding everything so I'm struggling to even propose changes to what's out there (also many of it is already stable)
-
larma
But I think we'd add great value to the open protocol ecosystem if we'd specify things beyond "do what libwebrtc does"
-
larma
We'd probably already do great if we'd just *document* that behavior
-
emus
Mid of month - Newsletter time! ✉️ Add your news since dec 2022: https://github.com/xsf/xmpp.org/milestone/3 https://yopad.eu/p/xmpp-newsletter-365days
-
stpeter
I don’t want to discourage you, but fixing this situation is a big mountain to climb.
-
stpeter
And I’m afraid I won’t be of too much help because I’m focused on non-tech pursuits these days.
-
stpeter
Speaking of which, I’m going back to work on another project now, bbl.
-
moparisthebest
Also "what WebRTC does" changes by release, and isn't documented
-
moparisthebest
The only constant seems to be "write your software in C++ so you can have a steady stream of vulns'
-
thilo.molitor
> I don't know if thilo.molitor hasn't done that in Monal because it's not feasible, or just because he only wants to support the latest version (but I'm curious) Its not feasible, because :0 jmi messages won't get into mam, thus incoming calls could get lost (bad ux)...:1 solves this...and while I'm all in for temporary solutions I won't implement :0 if it becones permanent solution with nobody ever implementing :1...
-
thilo.molitor
I don't know exactly why I bumped the namespace back then, but certainly nobody told me "I won't implement :1 because of the ns bump" back then...and given that we did this sort of "support multiple namespaces of a protocol for some time" multiple times in the past (mam for example), I was under the impression the ns bump would not be a problem...
-
MattJ
thilo.molitor, :0 messages do get into MAM, right? That's how current clients show things like missed calls
-
thilo.molitor
I see two ways forward now: revert the xep to :0 and do the minimal set of changes needed to make it reliable (mam, carbons)...maybe even add the tie breaking stuff and the finish element (better ux), if they don't require a namespace bump...OR implement :1...
-
Daniel
Yes they get into MAM. Conversations shows missed calls and even calls that took place on other devices (while Conversations was offline)
-
Daniel
The latter w/o duration because the lack of a finish element. But that element could have been added without a bump
-
MattJ
MAM is an example of a spec where we intentionally avoided bumping the namespace after it had received wide adoption
-
MattJ
It was still experimental, but we added new stuff behind a second disco feature
-
Daniel
Yes it's a judgment call every time
-
flow
we added that new stuff behind a second disco feature because it was possible to do so
-
Daniel
Jingle ft didn't handle that great either
-
flow
that is not always the case
-
thilo.molitor
It gets into mam? Jmi messages have no body and there is no exception to put that into mam regardles, no?
-
Daniel
Just add a store hint
-
Daniel
That's what the hint is for
-
tmolitor
the store hint is exactly one of the things I added in the :1 version...
-
tmolitor
yeah, you can add the store hint whenever you like, but if it isn't specified somewhere that becomes some sort of tribal knowledge with some clients adding it and some don't...
-
flow
thilo.molitor, namespace bumps are always an additional effort and come with certain disadvantages (like fragmentation), they are just from the protocol perspective not an problem
-
Daniel
You are allowed to add it everywhere. And adding a recommendation to jmi that a store hint is recommended does not require a bump
-
tmolitor
flow: yeah...maybe I was a bit naive back then...but then again I wished someone had explained to me that the namespace bump would likely prevent adoption...
-
tmolitor
yeah I know...this single thing does not require a bump...but I added some more useful things (tie breaking, usage of carbons instead of manually sending out stanzas to all known full jids etc)
-
flow
well, once stuff is implemented and works, the incentive to add support for a new namespace, let allone support multiple namespaces, goes next to nothing
-
Daniel
> well, once stuff is implemented and works, the incentive to add support for a new namespace, let allone support multiple namespaces, goes next to nothing It depends
-
Daniel
I have supported sm:2 until a month ago lol
-
Daniel
And I support three jingle ft
-
MattJ
Ok, well, afaik :1 is not implemented beyond Monal. So maybe we can work out a new XEP version with the :0 namespace that includes additional stuff (that existing clients can incrementally add) and hopefully there isn't too much work for Monal beyond switching to :0
-
tmolitor
to be honest I don't like the current state of affairs....and it's fine by me if we just remove all my changes (even though I find them really useful) and just add a mam store hint...
-
Daniel
But yes once a xep has some adoption regardless of state extra caution should be put into bumping a namespace
-
tmolitor
> It depends yeah, and nobody told me that jmi :1 is on the wrong side of this "it depends"
-
Daniel
I think some changes are good and can easily be applied w/o the bump
-
tmolitor
> I think some changes are good and can easily be applied w/o the bump then let's sort it out what changes can be applied without bump :)
-
MattJ
tmolitor, that's partly my fault, because I remember thinking it at the time, and I guess I didn't speak up
-
Daniel
Or in fact I might even think all changes are good but with more care to the Syntax the could have been applied w/o bump✎ -
Daniel
Or in fact I might even think all changes are good but with more care to the Syntax they could have been applied w/o bump ✏
-
tmolitor
is there a rendered version of v0.4
-
tmolitor
never mind...
-
tmolitor
found it
-
Daniel
Like the proceed to accept renaming can not be done o/c
-
Daniel
But I think we can quietly phase out accept
-
Daniel
The old accept
-
tmolitor
okay...naming does not matter that much imho...
-
Daniel
Yes exactly
-
tmolitor
what about using/relying on carbons instead of manually sending the accept message to all known full jids?
-
tmolitor
https://xmpp.org/extensions/attic/xep-0353-0.3.1.html#accept
-
Daniel
That's what I meant by quietly phasing out the old accept
-
Daniel
Even with jmi:0 clients can parse the carbon copied proceed
-
Daniel
And Conversations does that
-
tmolitor
okay good...
-
tmolitor
same goes for all the other messages (reject etc.)
-
tmolitor
adding the finish message should not need a namespace bump either...
-
Daniel
Like maybe leave a note about accept previously being a thing to get around lack of carbons so new implementors aren't totally confused about a seemingly unnecessary element
-
Daniel
> adding the finish message should not need a namespace bump either... Yes
-
flow
fwiw, which change(S) exactly motiviated the jmi namespace bump?✎ -
tmolitor
flow: I'd be glad if I would recall that...I guess it was the renaming of some of the elements??
-
flow
fwiw, which change(s) exactly motiviated the jmi namespace bump? ✏
-
Daniel
Motivated dunno. But the renaming of proceed to accept made it syntactically necessary
-
flow
and that renaming was motivated by?
-
flow
I whish there where a rendered diff somewhere…
-
Daniel
Accept is unnecessary (that's correct). And accept is a cooler name for proceed
-
Daniel
That's the entire motivation
-
Daniel
Lol
-
Daniel
Not on purpose I guess. But in the end that what it boils down to
-
flow
ok, so now we have a nice example of when to not bump ;)
-
Daniel
Yes. Absolutely not blaming anyone but that's probably a bit of lack in experience and nobody else catching it
-
flow
or, rather, when to not rename an element just for the name
-
flow
right, I did not want to put blame on anyone, just tyring to understand as I did not follow JMI closely in the last months✎ -
tmolitor
I'm not 100% sure the accept renaming was the only thing that warranted the bump...could be that it was only a side effect of the bump (e.g. allowing the renaming to happen)...
-
flow
right, I did not want to put blame on anyone, just trying to understand as I did not follow JMI closely in the last months ✏
-
tmolitor
flow: *last years (the jmi update was done more than a year ago)...
-
Daniel
Sure. It might be that I'm missing something
-
flow
well, the good news is that if the rename was the only reason to bump, then it is easy to "revert" the bump
-
Daniel
Last year is days in xsf time
-
tmolitor
and yes...it was my first xep and thus it may well be I've lacked some sort of experience...
-
Daniel
We have reverse dog years here
-
flow
uh right, nov 2021
-
flow
I somehow read 2022 in the commit date
-
tmolitor
Daniel: :D
-
tmolitor
suggestion: I do a pull request undoing the renaming and namespace bump but keeping everything else and everyone checks if this is okay and nothing more required the namespace bump...
-
Daniel
That's probably a good start. Not sure it will work out but that's how I'd start
-
Daniel
(instead of starting with the old version)
-
flow
in any case, we should probably consider bumping to :2 if good reasons to bump come up in the, potential far far, future
-
tmolitor
yes
-
tmolitor
okay...I'll do the PR then :)
-
tmolitor
I think having a html diff between 0.3.1 and 0.4 would be good to double check on the ns bump issue...but I'm not sure how to create that...
-
flow
hmtldiff
-
flow
is what I use
-
flow
works good enough, even for sligthly larger xeps
-
Daniel
If you have a quasi 0.4 implementation in Monal and lower the namespace you can do interop testing with Dino and Conversations and that'll be a real world and whether or not this works out
-
tmolitor
Daniel: good idea :)
-
Daniel
Something like Conversations will (right now) obviously ignore finish but the only downside of that is that MAM is lacking the call duration
-
tmolitor
yes, exactly
-
tmolitor
but not even that: the xep requires both parties to send finish, but one finish is enough to get the timestamp...(this was to make sure we still have a timestamp in mam even if suddenly one of the devices did a reset/low battery etc.)
-
tmolitor
okay...I've changed monal to use the :0 namespace now...let's see what happens if I try to call Conversations :D
-
tmolitor
ah well...I've not yet implemented the jingle stuff (I'm just passing around sdp data using IQs for now)...but well...at least my conversations started ringing :D
-
MattJ
A good discussion was had here tonight :)
-
tmolitor
one that moves xmpp forward, yes :)
-
edhelas
0060 question
-
edhelas
https://xmpp.org/extensions/xep-0060.html#publisher-publish-success-publisher
-
edhelas
Is this implemented ? Is it the only way to get the publisher of an item on a node ?
-
edhelas
That would close a big security issue for Movim as someone can easily publish an article as someone else
-
edhelas
I'd like to have pubsub service to actually tell me who published the item
-
edhelas
Holger do you know how is it handled in ejabberd ?
-
MattJ
It's supported in Prosody, behind a config option
-
edhelas
Ah !
-
Zash
Privacy implications
-
MattJ
expose_publisher
-
edhelas
That would be nice to add a per node configuration in 0060 directly
-
MattJ
If someone wants to publish to a public node, they don't always want their JID leaked
-
MattJ
But yeah, it would make sense as a per-node option, like MUC
-
edhelas
Yeah but for social network and commenting actually it makes sense :)
-
edhelas
Looks like I'll have to do a PR on 0060 😬
-
edhelas
MattJ Zash do you know if the publisher are also returned when doing a disco#items on the node ,
-
edhelas
?
-
MattJ
There's no any place to put it there, is there?
-
MattJ
It's returned in a "get items"
-
MattJ
the XEP-0060 one
-
edhelas
https://xmpp.org/extensions/xep-0060.html#publisher-publish-success-publisher
-
edhelas
Ah yes indeed its there
-
edhelas
"If configured to do so the service"
-
Holger
edhelas: Seems ejabberd includes the attribute if the `itemreply` config option is set to `publisher`.
-
edhelas
So looks like its a service based configuration, not node based, so Prosody nailed it
-
Holger
edhelas: I *think* that's what "configured to do so" refers to.
-
edhelas
Ah, let me check
-
edhelas
So tonight I discovered something in 0060, after 10 years of working with it
-
edhelas
https://media.tenor.com/j1rz6ft8tTsAAAAC/ratatouille-meme.gif
-
MattJ
You'll still be discovering stuff in 2033 :)
-
edhelas
Holger indeed with itemreply to publisher I do have the publisher in return \o/
-
edhelas
So lets put that as a default and ensure that they are handled and displayed :)
-
Holger
It's not like I was aware of that, I had to check the code of course :-)
-
edhelas
I'm sure 0060 is evolving based on ejabberd code
-
edhelas
I see no other explanation
-
moparisthebest
They say everytime you turn away from 0060 a new thing appears
-
Zash
Don't blink!
-
root
https://upload.nicolosus.chat:5281/file_share/sRSCEoXL804-5CnPkNbyQuDs/queen-doctor-who.gif