Gojara Versions

Here you will be able to find the newest version of Gojara, as well as some older ones!

Current is: 2.1.5

Message was edited by: Flow

  • Changed registration tracking once again, now properly works with Gajim 0.15

  • Push presence when receiving gajim Registration info as gajim does not push presences to transport

  • Added option to push available presence to all transport on roster of user so gajim does auto connect on startup.

Wont post older than 2.1.3
gojara.jar (238079 Bytes)

2.1.4:

  • Added option to disable presence Pushing that we implemented for Spark but may cause trouble with other clients.

  • Added option to let user decide if he wants subdomains to show up as contact on roster

If you use Gajim:

Enable Adding Subdomains to roster.

Disable Presence blocking.

After this you should no longer need Gajim presence pushing.

(You **may **need to remove existing Registration + reenter credentials to see transport in your contact list.)
gojara.jar (238671 Bytes)

1 Like

Great, registration from other clients now works, remote roster works. The only issue in unregistration - lot of unsubscription notifications

My setup: Persistence roster - YES, Only internal MUC - NO, Do not add sudomains - NO, Support jabber:iq:registered - YES, jabber:iq:last - YES, Gajim - NO.

I’ve used the same settings and experienced the same issue.

Additionally I get a subscription request for every user on that transport after connecting even though remote roster and persistent roster are activated.

Hm, now it doesn’t add any contacts to my roster. Trying to revert to 2.1.3

Update:

Weird. After denying all the unsubscribe events when removing the registration to the ICQ transport, then reconnecting to the transport, Gajim showed me a hundred subscription events from my roster which I canceled all (because I didn’t remove them in the first place), now my officiall ICQ roster is empty _

I tested it with Gajim 0.15.4 and the exact settings above (+ no presence blocking) - but got no such behaviour - no subscription requests and no unsubscription requests when removing registration of transport via rightclick -> remove transport or “remove your registration” option when searching for transports.

Are you guys sure you configured remote roster to be enabled? Also maybe try restarting Gojara (Plugins -> Restart)

The only option that affects if you get subscription requests or all roster items are added/deleted via gojara is

“Select which Components you want to enable remote roster on”. If you checked all the visible Transports there + saved or even restarted in should definitly NOT send subscription requests anymore. Same with unsub.

Yes, I’ve enabled remote roster and also hadn’t changed anything except the Gojara settings as vitaly mentioned. He also got a lot of unsubscription events.

Yes, remote roster enabled and it works. I tried Gajim and there are no unsubscription requests, but, for example, in Psi - there are. Psi already receive roster pushes about removing these contacts, and show new unsubscription notifications as presences from “not-in-list” users. I suggest it is something like “race condition” - client may make some iq requests or something else when unregistration is in progress and it break logic, triggers sending unsubscribe events.

There is no such problem in ejabberd/prosody with their mod_remote_roster plugins.

Hm, im kind of stuck with this unsubscription notification flooding. It seems that Gajim (unlike Spark) sends iq:roster subscription remove packets, to delete all contacts containing the subdomain, as described here:

http://xmpp.org/extensions/xep-0100.html#usecases-jabber-unregister

As soon as it receives a result for the unregister IQ (doesnt wait for unavailable presence though), it starts removing the contacts from its list , exactly like in this usecase:

http://xmpp.org/extensions/xep-0100.html#usecases-jabber-deletecontact.

Removing a Item from a users roster in OF always triggers these presences, which Gajim then interprets as notifications. I don’t see a way to fix this currently - its just the natural behavior. Gajim sends remove request, OF responds correctly. I can’t really influence what Gajim does with the response.

Nevertheless, i did a bit of work so it should correctly add the Transport if you want to, and with this + no presence blocking gajim autoconnect works fine also.

Please ignore “current is 2.1.4” in original question - i cannot edit it.

Ok, the race condition seems to be spectrum vs client concerning contact deletion. As spark doesnt delete its contacts by itself upon unregister, i didn’t run into this issue before.

I’ve configured Gojara to make OF remove contacts as soon as possible, but it doesnt remove the race condition if spectrum is under heavy load i guess. I cannot tackle this any other way though (open for advice), as i can’t touch the client to make it slower, and i cannot reject its packages because they dont differ from normal contact remove packages you would send when you are online (see extensions above).

Gojara 2.1.5

Fixed: Mistakenly sent second unregister command when already unregistering.

Fixed: Only remove tracked user registration from our db when we receive proper response

Better handling of unregisters when in persistent / nonpersistant modes
gojara.jar (239228 Bytes)