igniterealtime / openfire-pade-plugin

A plugin for Openfire that offers web-based unified communications - chat, groupchat, telephone, audio and video conferencing.
Apache License 2.0
57 stars 30 forks source link

Upgrading Jicofo to Stable Release 2.0.5765 #317

Closed deleolajide closed 3 years ago

deleolajide commented 3 years ago

Upgrading Jicofo to Stable Release 2.0.5765 is going to require a bit of work as focus component has been replaced with the Prosody client_proxy module

gjaekel commented 3 years ago

Really replaced? Or is this just some kind of proxy with another type of XMPP negotiation? Or to allow more than one JiCoFo instance to run?

deleolajide commented 3 years ago

Really replaced?

https://github.com/jitsi/jitsi-meet/pull/8381

gjaekel commented 3 years ago

Damn! Should we

deleolajide commented 3 years ago

None of the above 👎

Jitsi-Meet still thinks it is talking to an XMPP component, so we give it an XMPP component 👍

gjaekel commented 3 years ago

an XMPP component

... written in? I'm not familiar what's business task and volume/complexity of code of JiCoFo.

damencho commented 3 years ago

You can just use the xmpp user connection full jid and set it in config.js and that should be enough jicofo to receives its messages, maybe you will need to adjust the authorized regexp if you are getting some forbidden messages.

deleolajide commented 3 years ago

You can just use the xmpp user connection full jid and set it in config.js

I did that, but Openfire was sending a service unavailable mesage. Thanks @damencho for the hint to transform the xmpp stanza 👍

deleolajide commented 3 years ago

I suspect Openfire wants the full JID with resource. The client does not know this. I may have to provide a dummy component that modifies the stanza destination to the full JID using Openfire server session APIs

gjaekel commented 3 years ago

So this is not about JiCoFo but about the "XMPP pseudo user/bot" acting with the name "focus"?

damencho commented 3 years ago

I suspect Openfire wants the full JID with resource. The client does not know this. I may have to provide a dummy component that modifies the stanza destination to the full JID using Openfire server session APIs

Wait, I thought you said you are providing the full jid already as I purposed?

damencho commented 3 years ago

Here https://github.com/jitsi/jitsi-meet/blob/f377455069ff7ae41963864a61b87d988f5bd5bf/config.js#L18 instead of focus address, provide jicofo's full jid with resource, is this what you are trying?

deleolajide commented 3 years ago

instead of focus address, provide jicofo's full jid with resource, is this what you are trying?

Yes. However, jicofo user is not on the user roster, so I don't knw the full jicofo JID only the bareJID and that is being rejected by Openfire for IQ set

damencho commented 3 years ago

Can't you get the jicofo's full jid programmatically ... ? Another option is to add a config in jicofo to specify a resource, so it's always the same and that's what you put in the config.js ...

deleolajide commented 3 years ago

Another option is to add a config in jicofo to specify a resource, so it's always the same and that's what you put in the config.js

👍

deleolajide commented 3 years ago

Can't you get the jicofo's full jid programmatically

Not without using presence stanzas. Also, in openfire anonymous users have limited routing permissions. The dummy focus.my_domain component is supposed to perform that function by directly accessing Openfire session APIs to get the jicofo full JID

deleolajide commented 3 years ago

This issue requires more attention than I can provide right now. Sending messages directly to Jicofo user instead of component is causing timeouts in Jitsi-Meet. I need to implement the logic in Prosody client_proxy module