22,581 Views 129 Replies Last post: Aug 2, 2007 5:31 AM by Daniel Henninger RSS
Daniel Henninger KeyContributor 2,951 posts since
Aug 10, 2005
Currently Being Moderated

May 30, 2007 7:51 PM

IM Gateway 1.1.0 Beta

Hi folk!  Attached is the IM Gateway plugin version 1.1.0 Beta.  I''ll get it put up on the beta plugins page whenever I can, but I''m not having luck catching up with the Jive folk.  =)  To install this, just copy it into your openfire plugins directory and let the server auto-extract it.  ...  In theory.  Let me cut a moment here and explain what I mean by that.

 

For some reason there''s been a lot of instances of the auto-update causing problems.  This -appears- to have something to do with the plugin not having time to shut down entirely before the new one is extracted.  If you experience problems with none of the transports being available or something like that after the upgrade, remove gateway.jar entirely.  Wait for the gateway directory to be removed automatically.  Then copy the new gateway.jar into place again.

 

Anyway, this biggest change with 1.1.0 is MUC/Groupchat support (for IRC only at the moment).  I''ve also migrated to openymsg so Yahoo support is back on track to hopefully head to stable soon.  There''s a slew of other improvements, but they are outlined in the change log.  I''m putting out this beta first for a couple of reasons.  I want to hear what issues folk run into with the MUC support and with the Yahoo support.  I can''t duplicate a lot of problems people have run into with Yahoo so my only way of tracking down if things are fixed is to have y''all try it.  =)  So please give it a shot and let me know what you run into!

 

BTW, the transports that are currently labeled as stable haven''t undergone many changes.  Mostly bug fixes.

Attachments:
DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
May 31, 2007 1:48 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Thanks for that - sounds like a lot of improvements. I''ll stick it on our dev environment.

 

I''m not sure what''s happening at Jive though - no posts from Matt or anyone for over a week and no replies to emails from sales either

Matt Tucker Jiver 3,178 posts since
Jun 28, 2001
Currently Being Moderated
May 31, 2007 11:46 AM in response to: DeeJay
Re: IM Gateway 1.1.0 Beta

DeeJay,

 

Sorry I''ve been away from the forums lately -- things are super busy here at Jive. Gato has also been very very busy doing engineering on Openfire clustering.

 

I''m not sure why you''d be having any problems getting emails back from sales though. If that continues to be a problem, please feel free to drop me a direct email.

 

Regards,

Matt

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
May 31, 2007 12:08 PM in response to: Matt Tucker
Re: IM Gateway 1.1.0 Beta

Matt - it was basically for a quote for Openfire for my environment. I CC''d you on the mail - maybe it got lost/Spam filtered? Also, thanks for Spark 2.5.3 beta 2 - the fix for SRV and SSO should really help in our environment

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
Jun 1, 2007 4:37 AM in response to: DeeJay
Re: IM Gateway 1.1.0 Beta

The upgrade proved pretty disasterous for me; when installed it didn''t allow connections at all.

The logs indicate the transports started ok, but I couldn''t interact with them from the client.

 

After much messing around (uninstalling old versions, restarting etc etc) nothing seemed to fix it, so I''m now back to the old version

Ben Bronze 74 posts since
Jul 6, 2006
Currently Being Moderated
Jun 1, 2007 6:26 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Seems im having a problem registering with the transport. I had an icq, y!, msn, and aim account registered before installing the beta. after upgrading, only the msn would login. I manually deleted them in the admin console but spark does not recognize that they have been deleted. Instead of having the option to enter my info, all i have is sign in and delete registration. Clicking delete information does not seem to do anything.

 

This error also appears in the error log:

2007.06.01 09:23:45 org.jivesoftware.openfire.gateway.BaseTransport.handleIQRegister(BaseTransport.j ava:606) Error cleaning up contact list of:

Ben Bronze 74 posts since
Jul 6, 2006
Currently Being Moderated
Jun 1, 2007 7:14 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

well actually i read that before i installed it :). i forced all clients to disconnect, deleted the jar, waited til it was gone, and then copied the new jar file there. The gatewayregistration table only shows my msn record. What other tables do i need to check for this old information?

 

Oh yeah, i also tried deleting the local spark profile so there was no old data there.

 

Message was edited by: snowman386

Ben Bronze 74 posts since
Jul 6, 2006
Currently Being Moderated
Jun 1, 2007 7:38 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

well i restarted the server and i started getting this repeated now. dont know it it helps.

 

2007.06.01 10:08:45 org.jivesoftware.openfire.ldap.LdapGroupProvider.populateGroups(LdapGroupProvide r.java:679)

java.lang.NullPointerException

at org.jivesoftware.openfire.ldap.LdapGroupProvider.populateGroups(LdapGroupProvid er.java:670)

at org.jivesoftware.openfire.ldap.LdapGroupProvider.getGroup(LdapGroupProvider.jav a:99)

at org.jivesoftware.openfire.group.GroupManager.getGroup(GroupManager.java:184)

at org.jivesoftware.openfire.group.GroupCollection$UserIterator.getNextElement(Gro upCollection.java:102)

at org.jivesoftware.openfire.group.GroupCollection$UserIterator.hasNext(GroupColle ction.java:65)

at org.jivesoftware.openfire.roster.RosterManager.hasMutualVisibility(RosterManage r.java:862)

at org.jivesoftware.openfire.roster.Roster.

 

Message was edited by: snowman386

Ben Bronze 74 posts since
Jul 6, 2006
Currently Being Moderated
Jun 1, 2007 7:40 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Ok. ive had that ldap group null pointer error forever but everything worked fine including ldap groups :D. I only got the rest of that error after installing gateway 1.1.0. I''ll ask the nice people on the openfire forum to help me with that error.

Ben Bronze 74 posts since
Jul 6, 2006
Currently Being Moderated
Jun 1, 2007 8:56 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

daniel,

 

i totally wiped the database in our test environment and installed 1.1.0 gateway. I removed the local profile as well. It still has the same problem where it looks like im already registered in spark. I still get the LDAP error but i think a brand new database would have fixed it.

Ben Bronze 74 posts since
Jul 6, 2006
Currently Being Moderated
Jun 1, 2007 10:32 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

well daniel,

 

i do have good news. having the yahoo transport enabled has not caused the CPU to spike to 100% yet

Ben Bronze 74 posts since
Jul 6, 2006
Currently Being Moderated
Jun 1, 2007 2:34 PM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

I fixed my ldap error but it still does not work. went back to 1.0.2 and all is well.

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
Jun 1, 2007 3:11 PM in response to: Ben
Re: IM Gateway 1.1.0 Beta

Tried again - no joy.

 

I get this logged:

 

2007.06.01 23:04:53 [org.jivesoftware.util.log.util.CommonsLogFactory$1.error(CommonsLogFactory.jav a:87)

] Line=19 The content of element type "dwr" must match "(init?,allow?,signatures?)".

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
Jun 2, 2007 8:37 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

works for me (well, it logs me into MSN which is more than it did before!).

 

Will report back properly when I''ve had chance to test it.

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
Jun 2, 2007 8:41 AM in response to: DeeJay
Re: IM Gateway 1.1.0 Beta

MSN custom status''s look really odd.

 

Mine appear to be out of synch;

 

I set my status to from available to away, and my message in MSN says available, I set it to busy and MSN shows away etc. Very odd!

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
Jun 2, 2007 1:32 PM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

I''m running an MSN test account along side Spark using the latest gateway.

The MSN client shows an incorrect status message for me (so it''ll show away when I''m away, but the corresponding message will be the one I''d set previously

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
Jun 3, 2007 3:49 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

I''m using Spark 2.5.3. It would appear just to be massively laggy.

 

It takes in the region of 30 seconds to change the personal message (whereas the presence info changes immediately).

 

The correct personal message is sent by Spark immediately. If you make 2 personal message changes in a short period of time then the first is applied as soon as the second is made (so that''s why I thought it was 1 message out).

 

So, if this is an MSN quirk a rather horrible fix would be to send the change of message twice and I figure that will make it appear immediately

 

Message was edited by: DeeJay

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
Jun 3, 2007 3:20 AM in response to: DeeJay
Re: IM Gateway 1.1.0 Beta

And another thing (sorry) - when I log out of Spark (even with a reason) that information doesn''t get as far as MSN. So, currently MSN sees me as offline with a personal message of available.

 

Would it be better to either:

 

1) Change the message when a user goes offline (to either nothing or their offline message)

 

or

 

2) Don''t tell MSN about regular message statuses (such as available, away, free to chat etc) as that information is already known due to their presence info)

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
Jun 3, 2007 7:58 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Whilst I agree it''s probably MSN being rubbish - I don''t understand why setting it twice consecutively (even to the same message) makes it effective immediately. Any chance of having the gateway just do that instead of hoping MSN is having a good day?

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
Jun 3, 2007 8:34 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Okay. I''ll see how it goes when MSN is behaving.

 

At the moment, a 1 minute delay just makes it look like the gateway is broken. If it does continue - any chance of an option in the config to turn off status messages?

 

I''ll also probably run the risk of MSN getting upset, and add build a version with the 2nd status message set.

 

thanks,

D

  1 posts since
Jun 3, 2007
Currently Being Moderated
Jun 3, 2007 12:11 PM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

I''m sory, but what about IRC charset translation support, supposed to be implemented in the 1.1.x branch?

Bronze 28 posts since
May 11, 2007
Currently Being Moderated
Jun 4, 2007 12:17 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

ICQ contacts still "awaiting authorization" but ICQ-users realy get auth-request... But when it accepted, gateway don`t change status of ICQ-contact..

Tested whith JAJC, Psi, Pandion etc...

Bronze 28 posts since
May 11, 2007
Currently Being Moderated
Jun 4, 2007 10:33 PM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

GATE-234

 

- PLEASE increase priority of that problem, ICQ is most popular messenger, and only that bug prevent start new Openfire server...

KeyContributor 81 posts since
May 22, 2007
Currently Being Moderated
Jun 4, 2007 3:18 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

is there a chance to get away from this duplicate presence messages on login ?

 

2007.06.04 12:08:39

 

i know it doesn''t matter on desktop clients, but on mobile handsets it''s a problem.

 

normally one of these presence messages (available/unavailable) per contact schould be enough or i''m wrong ?

KeyContributor 81 posts since
May 22, 2007
Currently Being Moderated
Jun 4, 2007 9:07 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

no, i don''t get duplicate messages only duplicate presences.

KeyContributor 81 posts since
May 22, 2007
Currently Being Moderated
Jun 4, 2007 11:32 AM in response to: notz
Re: IM Gateway 1.1.0 Beta

is there any reason that all gateway contacts changed their subscription from "both" to "to"  on the version posted: Jun 3, 2007 5:51 AM ?

KeyContributor 81 posts since
May 22, 2007
Currently Being Moderated
Jun 4, 2007 4:12 PM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

here is one login with only 2 msn contacts. for every msn contact i get :

 

1 roster update not needed

1 unavailable (sometimes it''s like the other 2 status messages) not needed

2 status messages (always identical) - only for online contacts only 1 needed

 

i have one user that has unbelievable amount of msn contacts (~ 1000). and there are sometimes about ~3000 packets send in only 1/2 minute (1 MB traffic).  and the most of that is not really needed.

 

i understand that the roster update is being send to the client, because something could have changed sine the last login, but the status message are annoying. also it would be a nice feature to turn of this roster updates to save bandwith on mobiles. the correct roster will be sent anyway on the next login.

 

these log i have stripped from my internal test-server. but the behavior is the same on the live environment.

 


2007.06.04 20:09:47 <?xml version=''1.0''?>
2007.06.04 20:09:47 <stream:stream xmlns:stream=''http://etherx.jabber.org/streams'' xmlns=''jabber:client'' to=''test.im'' xml:lang=''de''>
2007.06.04 20:09:47 <?xml version=''1.0'' encoding=''UTF-8''?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="192.168.11.159" id="ur1evd4d0545a" xml:lang="de"></stream:stream>
2007.06.04 20:09:47 <iq id="10" type="set" to="test.im"><query xmlns="jabber:iq:auth"><username>666763076977</username><password>xxx</password></query></iq>
2007.06.04 20:09:47 <iq type="result" id="10" from="test.im" to="666763076977@test.im"></iq>
2007.06.04 20:09:47 <iq id="11" type="get"><query xmlns="jabber:iq:roster"></query></iq>
2007.06.04 20:09:47 <presence></presence>
2007.06.04 20:09:47 <iq type="result" id="11" to="666763076977@test.im"><query xmlns="jabber:iq:roster"><item jid="yahoo.test.im" name="Yahoo! Transport" subscription="both"><group>Transports</group></item>
<item jid="notz99@yahoo.test.im" name="notz99" subscription="to"></item><item jid="666766688669@test.im" name="mortn" ask="subscribe" subscription="none"></item>
<item jid="666766688650@test.im" name="mahatma" subscription="both"></item><item jid="666766688781@test.im" name="markus" subscription="both"></item><item jid="666763588076@test.im" name="Murph" subscription="both"></item>
<item jid="msn.test.im" name="MSN Transport" subscription="both"><group>Transports</group></item><item jid="666763076976@test.im" name="notz77" subscription="both"></item>
<item jid="tina94\40test.at@msn.test.im" name="tina" subscription="to"></item><item jid="notz\40test.at@msn.test.im" name="notz@test.at" subscription="to"></item>
<item jid="666769080712@test.im" name="test" ask="subscribe" subscription="none"></item></query></iq>
2007.06.04 20:09:48 <iq type="set" id="262-420" to="666763076977@test.im"><query xmlns="jabber:iq:roster"><item jid="notz99@yahoo.test.im" name="notz99" subscription="to"></item></query></iq>
2007.06.04 20:09:48 <presence to="666763076977@test.im" from="notz99@yahoo.test.im" type="unavailable"></presence>
2007.06.04 20:09:48 <presence to="666763076977@test.im" from="yahoo.test.im"></presence>
2007.06.04 20:09:48 <iq type="set" id="408-421" to="666763076977@test.im"><query xmlns="jabber:iq:roster"><item jid="notz99@yahoo.test.im" name="notz99" subscription="to"></item></query></iq>
2007.06.04 20:09:48 <presence to="666763076977@test.im" from="notz99@yahoo.test.im" type="unavailable"></presence>
2007.06.04 20:09:52 <presence to="666763076977@test.im" from="msn.test.im"></presence>
2007.06.04 20:09:53 <presence to="666763076977@test.im" from="notz\40test.at@msn.test.im"><status></status></presence>
2007.06.04 20:09:53 <presence to="666763076977@test.im" from="notz\40test.at@msn.test.im"><status></status></presence>
2007.06.04 20:09:53 <presence to="666763076977@test.im" from="tina94\40test.at@msn.test.im"><show>away</show><status></status></presence>
2007.06.04 20:09:53 <presence to="666763076977@test.im" from="tina94\40test.at@msn.test.im"><show>away</show><status></status></presence>
2007.06.04 20:09:53 <iq type="set" id="189-422" to="666763076977@test.im"><query xmlns="jabber:iq:roster"><item jid="tina94\40test.at@msn.test.im" name="tina" subscription="to"></item></query></iq>
2007.06.04 20:09:53 <iq type="set" id="440-423" to="666763076977@test.im"><query xmlns="jabber:iq:roster"><item jid="notz\40test.at@msn.test.im" name="notz@test.at" subscription="to"></item></query></iq>
2007.06.04 20:09:53 <presence to="666763076977@test.im" from="tina94\40test.at@msn.test.im"><show>away</show></presence>
2007.06.04 20:09:53 <presence to="666763076977@test.im" from="notz\40test.at@msn.test.im"></presence>

 

for icq contacts i get:

 

1 roster update

1 status message

KeyContributor 81 posts since
May 22, 2007
Currently Being Moderated
Jun 4, 2007 4:18 PM in response to: notz
Re: IM Gateway 1.1.0 Beta

another NPE i got with the last version on this thread:

 


2007.06.05 00:02:50 [org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.java:411)] Exception while processing packet: 
 java.lang.NullPointerException
  at org.jivesoftware.openfire.gateway.protocols.msn.MSNSession.logIn(MSNSession.java:118)
  at org.jivesoftware.openfire.gateway.protocols.msn.MSNTransport.registrationLoggedIn(MSNTransport.java:89)
  at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.java:324)
  at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.java:166)
  at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponent.process(InternalComponentManager.java:490)
  at org.jivesoftware.openfire.roster.Roster.broadcastPresence(Roster.java:590)
  at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUpdate(PresenceUpdateHandler.java:258)
  at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:100)
  at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:88)
  at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:151)
  at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:123)
  at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:69)
  at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)
  at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:134)
  at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:73)
  at org.jivesoftware.openfire.multiplex.MultiplexerPacketHandler.route(MultiplexerPacketHandler.java:164)
  at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processRoute(MultiplexerStanzaHandler.java:89)
  at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processUnknowPacket(MultiplexerStanzaHandler.java:96)
  at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:258)
  at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)
  at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:132)
  at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703)
  at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
  at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
  at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
  at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:62)
  at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:200)
  at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
  at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
  at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
  at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:266)
  at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:326)
  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  at java.lang.Thread.run(Unknown Source)

 

KeyContributor 81 posts since
May 22, 2007
Currently Being Moderated
Jun 5, 2007 2:35 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

i have now debugged the current trunk version for my problems:

 

1.) roster update

i see that you already check if something have changed and only send the update if something has changed, but for me the groups always change, so there have to be something wrong on that check

 

BaseTransport.java


List<String> curgroups = gwitem.getGroups();
                if (curgroups != groups) {
                    try {
                        gwitem.setGroups(groups);
                        changed = true;
                        Log.info("update roster item: group changed - " + contactjid);
                    }
                    catch (Exception ee) {
                        // Oooookay, ignore then.
                    }
                }

 

2.) why we need the initial presences on msn transport ? i don''t think that they are nedded

 

3.) this function is called twice in the MSNListener on login for online contacts: 

public void contactStatusChanged(MsnMessenger messenger, MsnContact friend) {

 

so there is one initial presence, and two times these message where friend.getStatus() is both times the same

KeyContributor 81 posts since
May 22, 2007
Currently Being Moderated
Jun 5, 2007 3:01 AM in response to: notz
Re: IM Gateway 1.1.0 Beta

this code change resolves the problem no. 1 for me:

 


List<String> curgroups = gwitem.getGroups();
if ((groups == null && curgroups.size() != 0) || (groups != null && !curgroups.containsAll(groups))) {
.
.
}

 

the problem is that you match an empty list against an null value or match to lists aigainst each other, what also is not working correct.

KeyContributor 81 posts since
May 22, 2007
Currently Being Moderated
Jun 5, 2007 8:27 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

your last changeset didn''t resolve the problem correct

 

http://www.igniterealtime.org/fisheye/browse/svn-org/gateway/branches/transport_ xmpp/src/java/org/jivesoftware/openfire/gateway/BaseTransport.java?r1=8455&r2=84 65

 

curgroups can be an empty list

but groups will be null if their is no entry

 

and both are the same and should not trigger the changed flag

scriptr Bronze 24 posts since
Apr 17, 2007
Currently Being Moderated
Jun 8, 2007 1:43 PM in response to: notz
Re: IM Gateway 1.1.0 Beta
notz wrote:

is there a chance to get away from this duplicate presence messages on login ?

 

2007.06.04 12:08:39 <iq type="set" id="962-360" to="tester@test.im"><query xmlns="jabber:iq:roster"><item jid="notz\40test.at@msn.test.im" name="notz@test.at" subscription="to"/></query></iq>

2007.06.04 12:08:39 <presence to="tester@test.im" from="notz\40test.at@msn.test.im" type="unavailable"/>

2007.06.04 12:08:39 <presence to="tester@test.im" from="notz\40test.at@msn.test.im"><status/></presence>

2007.06.04 12:08:39 <presence to="tester@test.im" from="notz\40test.at@msn.test.im"><status/></presence>

 

i know it doesn''t matter on desktop clients, but on mobile handsets it''s a problem.

 

normally one of these presence messages (available/unavailable) per contact schould be enough or i''m wrong ?

 

 

hi notz,

 

i am running a mobile application too and i used to have that problem until today. I have found the solution for the duplicate presences and also duplicate iq packets  (This happens,int the first connect after you restart the openfire server) in every gateways. Tomorrow i will be testing with my team.

scriptr Bronze 24 posts since
Apr 17, 2007
Currently Being Moderated
Jun 8, 2007 11:45 PM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

hi daniel,

 

i am talking about  duplicate iq packets in the first connection and about lots of presence packets of just one user.

 

duplicate iq problems: when a user first connects to any service (msn, gtalk, icq etc), the gateway sync the roster. In this process, you get two iq packets per your contact. first iq contains only the jid with a "none" subscription, and then gateway sends another iq packet, which has the name of the user, for this user. So the first iq is sent by openfire because of the following code in the BaseTransport class.

 

// Create new roster item for the gateway service or legacy contact. Only
// roster items related to the gateway service will be persistent. Roster
// items of legacy users are never persisted in the DB.
RosterItem gwitem = roster.createRosterItem(contactjid, true, contactjid.getNode() == null);

 

in this code, while creating new roster item, gateway pushes the new roster item to the client, which i believe that it shouldn''t. Because in the next lines,  it will push the roster with:

 

roster.updateRosterItem(gwitem);

 

 

so the gateway should call the "createRosterItem" method with false in the 2nd argument, which decides pushing the newly created roster item.

 

 

lots of presence packets: in fact this is not a bug or error. but it is a thing that can be optimized. while we start the services (msn, gtalk etc, ''i do not know how you call these''), their listeners begin to listen and process what they get as soon as possible. but for the presences changes, we need to make presence listeners wait until we sync the rosters. Because in the "syncUsers()" method, we already send the initial prences of our roster items. (of course, this is not a solution for the msn UBX  packets, it is normal that you can get 2 presence for the user anyway.)

 

as a conclusion, by fixing (maybe wrong word) the above codes, i can sign an msn users, that has a 21 contacts, with just ~7kb in stead of ~18kb. Since my client is mobile ( http://www.cepteki.net  - english version is in progress) 11kb is really a big traffic.

 

after my tests, i will post my codes in here, so you can test that also.

 

(sorry for my poor english, i hope i was clear.)

scriptr Bronze 24 posts since
Apr 17, 2007
Currently Being Moderated
Jun 9, 2007 5:08 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

for handling the presences, i have modified the msn library (jml.jar) and added some extra methods like

-MsnContactImpl

getOldCurrentMedia()

getOldPersonalMessage()

 

and also, i use MsnUserImpl to get the oldDisplayMessage and oldStatus. By the help of these methods, now i can track the users''s info, so that i can decide if i need to push or not.

 

This is also a solution for duplicate msn server''s presence commands. If you check you debug, you can see that msnp 11 can send one or more presence commands for one user. So sometimes, openfire need to send you "4" presence message for the same user. But now, it can''t

 

Now the only problem is the seperate presences i get from msn server. They are; NLN (FLN, IDL etc.)  and UBX. I think there is no solution for that.

 

Anyway, my tests are still in progress, i will let you know the updates.

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
Jun 4, 2007 6:35 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

I''ve just installed the latest version (which looking at the file modification times seemed to install ok).

 

However, no change in behaviour; when I log out of MSN my status remains and the lag is about 60 seconds today on changing status messages.

  6 posts since
Feb 9, 2007
Currently Being Moderated
Jun 4, 2007 3:11 PM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Hello,

With this release I''m getting triplicate responses from my AIM contacts. When I send a message it just goes through once, but any responses I receive in triplicate (kinda annoying :-D ). Any logs or anything you need?

 

Thanks,

Chad

Bronze 90 posts since
Jul 13, 2005
Currently Being Moderated
Jun 4, 2007 3:41 PM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

OS: FreeBSD 6.1

Java version: 1.5.0

Openfire version: 3.3.1 Enterprise

Did you see this in 1.0.2 or earlier: Nope

Do you have debug logging enabled and, if so, would you be willing to send me a copy of the debug logs (to my email address): Yes, though I think I sent those to you this weekend.

What XMPP client are you using: mcabber 0.9.1

Are you logged into Openfire from only one location at the same time? Yes, only one location.

 

I also had weird crashy problems after moving to 1.1.0-beta (the latest one in this thread, though it happened with the previous 1.1.0-beta too).  I didn''t get any logs from it, though.  Basically I''d be chatting away (not sure what other users on my server were doing at the time) and I''d just suddenly get disconnected.  The system load would rise pretty high, and I''d be unable to get into the admin console or to log back in.  I had to restart the server and everything was fine until the next time it crashed.  I went back to 1.0.2 and haven''t had the problem again.

 

MysticOne

  6 posts since
Feb 9, 2007
Currently Being Moderated
Jun 5, 2007 9:45 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Well, the oddest thing. This morning I went to make sure I was still having the problem before I posted and it appears to be gone (rather randomly because I didn''t change anything). Just for information though I''m going to enable the debug logs so if the problem reoccurs I can send a copy of them.

 

OS Version: Gentoo Linux

Java version: 1.5.0_11 Sun Microsystems Inc

Openfire version 3.3.1

I haven''t run any versions earlier than this current beta.

Client: Psi 0.10

I wasn''t logged in from multiple resources when the problem occurred.

 

Thanks,

Chad

  6 posts since
Feb 9, 2007
Currently Being Moderated
Jun 5, 2007 10:24 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta
jadestorm wrote:

 

Did you happen to restart your server recently?

 

Nope, I mean I literally did nothing. :-D After I posted my message yesterday I walked away from the system till this morning and everything was working great again. Uptime for Openfire is around 12 days right now.

 

--Chad

KeyContributor 81 posts since
May 22, 2007
Currently Being Moderated
Jun 3, 2007 3:43 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

yeah, my error log is now empty

KeyContributor 81 posts since
May 22, 2007
Currently Being Moderated
Jun 2, 2007 4:23 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

thanks for the beta. it seem''s to run quite good.

 

sometimes i get following NPE (not in 1.0.2):

 

2007.06.02 12:18:32 org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.java :182) Error occured while processing packet:

java.lang.NullPointerException

  at org.jivesoftware.openfire.gateway.BaseTransport.addNewRegistration(BaseTranspor t.java:1345)

  at org.jivesoftware.openfire.gateway.BaseTransport.handleIQRegister(BaseTransport. java:706)

  at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:457)

  at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:163)

  at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponent. process(InternalComponentManager.java:490)

  at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:250)

  at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:104)

  at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:67)

  at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:11 0)

  at org.jivesoftware.openfire.SessionPacketRouter.route(SessionPacketRouter.java:67 )

  at org.jivesoftware.openfire.multiplex.MultiplexerPacketHandler.route(MultiplexerP acketHandler.java:164)

  at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processRoute(Multiplexer StanzaHandler.java:89)

  at org.jivesoftware.openfire.net.MultiplexerStanzaHandler.processUnknowPacket(Mult iplexerStanzaHandler.java:96)

  at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:258)

  at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

  at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:132)

  at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

  at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

  at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

  at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

  at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

  at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

  at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

  at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

  at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

  at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

  at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

  at java.lang.Thread.run(Unknown Source)

Ben Bronze 74 posts since
Jul 6, 2006
Currently Being Moderated
Jun 4, 2007 5:40 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Woohoo. Downloaded the latest one you posted. I am now able to login to the gateways. Will keep you updated about the yahoo 100% problem and any other problems i find.

Ben Bronze 74 posts since
Jul 6, 2006
Currently Being Moderated
Jun 4, 2007 6:18 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Couple error messages for you that are thrown when changing status. Dont really see anything interesting in the debug log:

2007.06.04 08:44:16 org.jivesoftware.openfire.gateway.util.Log4JToOpenfireAppender.append(Log4JToOpe nfireAppender.java:49) error on process packet

java.net.SocketException: Connection reset

at java.net.SocketInputStream.read(SocketInputStream.java:168)

at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)

at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)

at java.io.BufferedInputStream.read(BufferedInputStream.java:313)

at org.openymsg.network.YMSG9InputStream.readBuffer(Unknown Source)

at org.openymsg.network.YMSG9InputStream.readPacket(Unknown Source)

at org.openymsg.network.DirectConnectionHandler.receivePacket(Unknown Source)

at org.openymsg.network.InputThread.run(Unknown Source)

2007.06.04 08:44:16 org.jivesoftware.openfire.gateway.protocols.yahoo.YahooSessionListener.inputExce ptionThrown(YahooSessionListener.java:203) Input error from yahoo: Source: InputThread

java.net.SocketException: Connection reset

at java.net.SocketInputStream.read(SocketInputStream.java:168)

at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)

at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)

at java.io.BufferedInputStream.read(BufferedInputStream.java:313)

at org.openymsg.network.YMSG9InputStream.readBuffer(Unknown Source)

at org.openymsg.network.YMSG9InputStream.readPacket(Unknown Source)

at org.openymsg.network.DirectConnectionHandler.receivePacket(Unknown Source)

at org.openymsg.network.InputThread.run(Unknown Source)

2007.06.04 08:46:56 org.jivesoftware.openfire.gateway.protocols.yahoo.YahooSession.updateStatus(Yaho oSession.java:416) Unable to set Yahoo Status:

java.net.SocketException: Broken pipe

at java.net.SocketOutputStream.socketWrite0(Native Method)

at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)

at java.net.SocketOutputStream.write(SocketOutputStream.java:136)

at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)

at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)

at java.io.DataOutputStream.flush(DataOutputStream.java:106)

at org.openymsg.network.DirectConnectionHandler.sendPacket(Unknown Source)

at org.openymsg.network.Session.sendPacket(Unknown Source)

at org.openymsg.network.Session.sendPacket(Unknown Source)

at org.openymsg.network.Session.transmitNewStatus(Unknown Source)

at org.openymsg.network.Session.setStatus(Unknown Source)

at org.jivesoftware.openfire.gateway.protocols.yahoo.YahooSession.updateStatus(Yah ooSession.java:409)

at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:305)

at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:166)

at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponent. process(InternalComponentManager.java:490)

at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:139)

at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:69)

at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)

at org.jivesoftware.openfire.net.StanzaHandler.processPresence(StanzaHandler.java: 306)

at org.jivesoftware.openfire.net.ClientStanzaHandler.processPresence(ClientStanzaH andler.java:85)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:231)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:132)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 650)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)

at java.lang.Thread.run(Thread.java:595)

 

these two lines were in the warning log:

2007.06.04 08:39:15 Don''t know how to handle service type ''UNKNOWN002''. The original packet was: Magic:YMSG Version:0 Length:92 Service:UNKNOWN002 Status:1 SessionId:0xffffffffca8b9901 302 312 300 312 313 1 314 0 301 312 300 312 313 2 314 0 301 312 303 312

2007.06.04 08:39:15 Don''t know how to handle service type ''PING''. The original packet was: Magic:YMSG Version:0 Length:18 Service:PING Status:1 SessionId:0xffffffffca8b9901 143 60 144 13

 

Message was edited by: snowman386

DeeJay Silver 366 posts since
Dec 9, 2006
Currently Being Moderated
Jun 4, 2007 1:53 PM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Daniel - my server is internet accessible. Want a test account?

Ben Bronze 74 posts since
Jul 6, 2006
Currently Being Moderated
Jul 13, 2007 9:13 AM in response to: Ben
Re: IM Gateway 1.1.0 Beta

Daniel,

 

I recently upgraded the server to java 1.6 so we can test out the red5 plugin and it seems to have fixed the problems with the presence updating in yahoo.

Guus der Kinderen KeyContributor 437 posts since
Sep 8, 2005
Currently Being Moderated
Jul 15, 2007 1:56 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Although the Yahoo library that gateway plugin is using has been developed in Java 6, it''s compiles fine using Java 5 (I just checked with 1.5.0_12).

 

What version of Java were you using? Is it possible for you to re-install the old version, and see if the problem pops up again?

bigdaddy Bronze 26 posts since
May 22, 2007
Currently Being Moderated
Jul 20, 2007 9:45 AM in response to: Guus der Kinderen
Re: IM Gateway 1.1.0 Beta

Is it normal that i can''t get the vcard from icq contacts? Away messages are working...

Also sometimes a add a (icq) user again because I lost it on my roaster. i don''t get an authorisationrequest and i no auth (latest stable)

and sometimes i re-add a person and he gets a authrequest and he accepted and he is shown on my roaster as successful added. then i relogin and "the guy is gone" ... (stable and beta 3)

 

the last is very strange and the guy think i''m crazy: i can''t get his vcard and so i ask him every time who he are (he is running adium with jabber and icq - but sometimes he startet a conversation via icq ...)

 

tested with Psi 0.10 and the latest stable-version and gateway 1.1.0 beta 3

Ben Bronze 74 posts since
Jul 6, 2006
Currently Being Moderated
Jun 5, 2007 7:35 PM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Ive found that most of the time when i login, i will get a popup about yahoo users requesting authorization. These users were people i blocked years ago on yahoo. I deny the request and uncheck the box to add them to my roster in spark but they continue to popup as authorization requests on login.

Bronze 7 posts since
May 18, 2007
Currently Being Moderated
Jun 5, 2007 10:34 PM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

Great realse!. Thank you. The status message now works great.

MxSan Bronze 50 posts since
May 5, 2007
Currently Being Moderated
Jun 6, 2007 1:03 AM in response to: Daniel Henninger
Re: IM Gateway 1.1.0 Beta

I noticed that the XMPP/Google Talk gateway ticked is closed and we can expect this to be in the 1.1.0 release. Will there be another beta, so we can test this before the release.

 

To be honest, I can''t wait.

KeyContributor 81 posts since
May 22, 2007
Currently Being Moderated
Jun 6, 2007 3:30 AM in response to: MxSan
Re: IM Gateway 1.1.0 Beta

nice to see the gtalk transport, but subscription handling is not working for me...

 

A .. psi connected directly to gtalk

B .. psi uses gtalk transport

 

on adding contact B from A , B will not get asked to allow subscription and A gets automatically subscritpion

B gets only a presence available but no roster update, on next login of B contact A is on the rost