How to Spectrum IM support for OF [Alternativ for Kraken]

i have a bug, i must authorize the gateway but i not have a request for add it to my roster

Hi, Axel

I’m _vt from spectrum room

A lot of openfire users complain about spectrum2 setup with openfire and can’t getting it work.

I have try to setup openfire and spectrum and found the problem: openfire does not push transport jid to user roster. It must be there and subscription must be approved in “both” ways, then spectrum will able to detect user connect/disconnect and sends proper presences from contacts. The only way to make spectrum work - is add spectrum jid manually.

 At first, the problem is in openfire core: when user have registered on transport - transport check remote roster support by sending jabber:iq:roster request to server jid from transport jid. If server reply with error - then spectrum considers remote roster is not supported and sends subscription request to user and when user approve it - it pushed to user roster and transport will work normal. But Openfire replies with empty result, which is a **bug **- it should send an error response, because we cannot access to user roster.(See http://xmpp.org/rfcs/rfc6121.html#roster for details). Transport receive empty result, consider server is supporting remote roster and trying to push contacts directly, which doesn't work, because server reject pushes from unapproved jid. So the whole registration flow is broken: user must add transport jid to roster manually to work properly, receive tons of subscription requests from his contacts and only after that it will work more or less normal.

 The second problem is gojara - it does not resolve the first problem properly

It approve somehow transport jid for roster pushes, but it should push transport jid first when user just registered. If it will do it, then “gajim workaround” will not need Anyway, this workaround works only first time, if I check “persistent roster” option, which should be default, as I think

If you have any questions - please, contact me in spectrum room.

Hi Vitaly,

Is this in the latest Openfire/GoJara? I never had this issue with my Openfire installation. Haven’t updated either for a while… rolled back a bit to get Twitter working again.

Kind Regards,

Gary Shergill

Hi, Gary,

Yes, I have tested openfire 3.8.2 and gojara 2.1.3, please give your versions to test.

Hi Vitaly,

I’m using Openfire 3.8.2 as well, but GoJara 2.0.0.

Kind Regards,

Gary Shergill

i have the problem with the last gojara and openfire versione

Hey guys! I will look into it, maybe i broke something ^^

Was sick this week, but i think i will get to it as soon as i’m fully recovered.

Thanks for your effort _vt

Axel

Okay, so i had some more time to read through this and here are my two cents:

Gojara does actually solve the first problem, it just does it in a way that is probably pretty specific to the Spark client. As we use OF + Spark + Spectrum in a business environment, we had some requirements to consider when implementing. (For example nonpersistant roster, transport itself not showing up in the users contact list, preventing OF sending Presences to all items in users roster, causing Transports to always connect on startup, even if not specified to do so in client.)

When spectrum sends the Jabber:iq:Roster to request the users roster from OF (so it can see if it supports RR + to see which users are already in the roster, resulting in optimally not needing to push every item again) - Gojara replies with an empty roster Payload (in non Persistant Mode). This indicates to spectrum that we support RR, and that it needs to push the complete roster, which is a little patch i did to S2 some time ago with help from Jan .

If you have Gojara installed but didnt enable remote Roster (like shown in the guide document) it should send error, which causes a lot of subscription requests to pop up, as spectrum falls back to non remote roster contact pushing.

As i see it the Gajim workaround is necessary (and we wont change anything in Gojara atm), because Gajim doesnt seem to keep track of its enabled Transports, or at least it does not push any presence change to the transport. Which of course is not problematic in itself, but conflicts with the way Spark does this. With the workaround it should’nt really be a problem anymore, maybe in the future i’ll add some more options to disable/enable specific things we implemented for spark usage.

I dont know if i covered everything now, but well much thanks for your effort! Will definitely look into some things if it comes up again.

Regards, Axel

please specifiy “the problem”, are you talking about the presence pushing with Gajim?

Gajim doesnt seem to keep track of its enabled Transports, or at least it does not push any presence change to the transport

Gajim (and any other client) can’t send presence to transport because transport is absent in roster

I have try kraken - it push transport jid in roster and all clients works well. Don’t know what is a Spark specific, but i’ll try it too.

transport itself not showing up in the users contact list

Don’t know why you want to do such strange things, I think it could be better if gojara will have an option “push transport jid to roster” And it will be the best if OF without gojara will send error to jabber:iq:roster request from transport and then transport will be able to fallback

I just tried Spark and understand now what problem you solve.

Spark flow - discovery available services and show icons at the top of roster, I can click icon, register and check do I want to login automatically or not. Yes, spark with gojara works perfectly

Kraken flow - if I register from Spark, it does not add transport jid to roster and does not persist all transport contacts in roster and Spark flow works as usual. but if I register from another client - it add transport jid, add all contacts and works as other clients are want.

So, what I want from Gojara - the same flow as Kraken Is it possible?

I’ll add the option to do this once i finished my exams which is in 1-2 weeks should be no problem i think

Hey,

how’s the progress on this?

heya, thanks for the reminder Was deep in thought about another project, so sorry for the delay.

See http://community.igniterealtime.org/message/233219#233219 and try it out! Tested it with Gajim 0.15.4 and worked fine.

Hey,

thanks for the update!

Am I interpreting this correctly: “You will need to remove existing Registration so you have a fresh start.”, as in I have to tell all my users to re-register with the transports?

Hi Axel,

I am in need to implement gojara to enable the openfire users to chat with the gmail/yahoo users.

I will download, test and update on my findings. Is there any gmail , yahoo related setup that has to go in to make the openfire users talk to gtalk and yahoo.

Thanks

Harry

Hey Harry,

we already have plenty of resources that should help you with configuring Gojara / Spectrum2 if you want to use it.

Have a look at the Guide Document:

http://community.igniterealtime.org/docs/DOC-2601

You should try to do things according to it, and if a problem arises maybe have a look in this discussion if it already popped up. I try to include problems in the guide though. If you’re still having trouble configuring, feel free to write a PM or post again!

Regards, Axel

Thanks for the pointer.

As am not seeing any words related gmail, aol,etc , I have a question.

Using gojara, can i make the openfire users talk to a external gmail

account?

Please excuse my illiterate question.

Thanks and have a wonderful day

Hari

On 14 November 2013 03:57, Axel-F.Brand

Yes, Gtalk, Yahoo and AIM are supported. Protocols supported by Spectrum depend on the backend you use it with, you can see overview here: http://spectrum.im/documentation/backends/backends.html

Gojara is not tested with Skype / Facebook though. Gtalk, Yahoo, AIM, ICQ, MSN etc run fine though.

To be clear: Spectrum acts as a gateway. Spectrum + Gojara make it possible to log into your (say Gtalk) Account via an XMPP Messenger and the XMPP Server Openfire.

Therefore you need a gmail account to talk to other gmail users, but you then can log into it via your xmpp client and openfire, instead of running a native gtalk client.

No shame in asking questions!

Regards, Axel