I’m working on a retro XMPP server enabling old machine (and by extensions old clients) to connect and chat. I’m stumbling on an issue where some clients assume that jabber:iq:agents exists and just waits and waits for a response. Is jabber:iq:agents support removed from the code base or is there any way to re-enable it?
That namespace seems to correspond to XEP-0094: Agent Information. That one is so old, that I’ve never actually seen it. I do not think that Openfire ever had support for this.
Adding support should not be to hard, by writing a plugin that is an IQHandler for that namespace.
Interesting! I wonder if it would be a hard task to implement these in one (or two) plugins.
Never wrote a single line of Java before, but I might give it a shot.
I’m knee deep in the retro computer scene, hence the question in the first place.
Trying to get as much “current” technology to older computer platforms (focusing on Classic Mac OS and Amiga). XMPP clients running on those platforms havent been updated in 15-20 years in some cases and only support these now legacy XEP’s. Many of the clients wont even authorize properly without the “Agent list” being transferred from the server. I used to run a jabberd14 server hosting services with spectrum2, but since the project died I moved to OpenFire which I have grown to like quite a lot.
So no, it’s not a payed gig. Just a very passionate hobby project
Thinking of adding the functionality to OpenFire again through a plugin, much like Non-SASL Authentication is added through a plugin. Is a feasible task to undertake by a novice or am I more or less doomed?
Let me know how things fare. Those protocols are depredated for a reason. I had to make some compromises while implementing things. Also, I didn’t have any client to test this with, so YMMV.
It works, but in the answer from the server when requesting the list of agents using jabber:iq:agents, the returning list doesn’t include the “register” child as per XEP-0094: Agent Information so the transports can only be unregistered and not registered. Otherwise it works like it should from what I can see. The agents/transports can listed correctly etc
EDIT: I see now that the search services doesn’t get the “service” jabber:iq:agents child either, so something is wrong with the populating of the extended information.
I haven’t had an opportunity to test Jabber Browse yet.
I’m thinking that this is caused by a combination of factors:
the transports that you use might not expose the exact same feature that these plugins ‘translate’ into what you want.
I vaguely recall that our search plugin isn’t actually compliant with the search specifications.
We can probably work around both, by simply forcing some features being advertised on things like transports. It’s probably a safe bet that for every transport, there is some kind of registration feature.
@Knezzen are you able to build and test these plugins from source? I’m happy to add improvements, but getting some feedback faster than only after a release would be helpful.
That could be true, I’m not sure how Spectrum2 does things, but I know that “registration” was avaliable in the jabber:iq:agents implementation when I ran the service on jabberd2.
@guus I have no experience in compiling Java applications, so I’m not sure where to begin even.
Does the “Snapshots” on the plugin download page get compiled using whatever code is avaliable through github? I could use that function to test it out if that’s the case.