Menu

jml-1.0b3 - Add Contact shows offline

Help
Alex Perez
2008-10-15
2013-04-29
  • Alex Perez

    Alex Perez - 2008-10-15

    Hi.

    After extended testing on the package (Fatastic work guys here. Works great, is fast and never breaks despite having several concurrent connections on it :)

    I notticed recently that if a user added a buddy (hosted by the jml), the jml buddy appeared as 'OFFLINE' on the users contact list and as ONLINE on the jml one.

    Messages can of course be sent to him from the jml buddy but due to the restrictions imposed to offline users on the msn client, he can't reply.

    The user is certainly present in the RL list but can't seem to force him to show on the FL and/or AL ones

    The weird thing is that if the user deletes the jml buddy and then adds it again, it does show as on-line.

    I have tried updating to the latest verion (Posted issue) which does show the contact online but following Murphy, breaks somere elese more critical. (here also, the user did appear on RL but not AL or FL)

    First question would be if anyone else has experienced this problem. Second, has anybody got a pointer?

    Best regards
    Alex

     
    • Rino Raimato

      Rino Raimato - 2008-10-15

      I have the same problem
      :(

       
      • Alex Perez

        Alex Perez - 2008-10-15

        If you don't have a lot of traffic on the accounts or large user sizes, you can overcome the problem by using the most up to date SVN version.

        If you do have traffic, the latest release won't help you.

        Tell me what you've tried, perhaps that way we can find out a solution which will benefit the forum.

        Alex

         
    • Rino Raimato

      Rino Raimato - 2008-10-16

      Hi, Alex
      I think that the problem is on unblock methods, infact when I try to add a buddy the classic MSN client receives the message, but the problem is that when the listener receives the event that a contact add Him, the method in the listener trys to unblockfriend of the contact that contact him.
      This method doesn't work.
      If I connect the account that before is used by JML with a classic client, the contact added before is in blocked status, for this reason the unblockfriend doesn't work.
      Do you have a solution? I'm using the jml-1.0b3 version.
      thanks for your attention
      Rino

       
    • Alex Perez

      Alex Perez - 2008-10-16

      Hi Rino.
      Interesting observation. I must admit that when I run the checks to find out which lists the newly added user was part of, I did not see him as belonging to the BL list. However a possible way forward could be here.
      I need to run a few tests with add / remove / move to list to see if the system responds.

      For the record, if you add a jml buddy then delete it and add it again (on the msn client) the contact does show as online and allows 2way communication.

      More in a bit.

      Alex

       
      • Rino Raimato

        Rino Raimato - 2008-10-16

        Hi Alex
        the problem is very strange because
        the first time that I execute the addfriend, the client shows me the frame to accept the contact but the client correctly added appear off line.
        If I re-execute the same code, when the addfriend method is executed the second time, the account immediatly appears on line.
        Is possible that there is a problem with list account sincronization?
        There is a method to force this sincronization?

        thanks Alex

         
    • Alex Perez

      Alex Perez - 2008-10-16

      Hi Rino.

      I think I found what the problem was, but not a fully working solution (yet)

      on its execution,  addFriend attempts to add the contact to the AL and FL lists.
      Subsequent checks to contact.isInList show that the contact is on the FL list from the beginning but not on the AL.

      16-Oct-2008 11:15:18 net.sf.jml.protocol.MsnSession$1 messageSent
      INFO: buddy@jml.address NS >>> ADC 29 FL N=msnclient@hotmail.com F=name

      16-Oct-2008 11:15:18 net.sf.jml.protocol.MsnSession$1 messageSent
      INFO: buddy@jml.address NS >>> ADC 30 AL N=msnclient@hotmail.com

      Now FL confirms almost straight away (after two or 3 addFriend rq's)
      16-Oct-2008 11:15:19 net.sf.jml.protocol.MsnSession$1 messageReceived
      INFO: sara@buddy@jml.address NS <<< ADC 29 FL N=msnclient@hotmail.com F=name C=99d16b13ab6

      I placed addFriend routines in separate parts of the code to see if the repetition made any difference and it did. The contact goes online after a confirmation is sent from the MSN of user belonging to the AL

      INFO: buddy@jml.address NS <<< ADC 47 AL N=msnclient@hotmail.com

      As to why it responds after a longer time, its not quite clear yet.

      Alex

       
    • Alex Perez

      Alex Perez - 2008-10-16

      Ok, I've got it working now via a UserAdder thread which checks every sec for the user belonging to the AL List.

      Its not very taxing since all it takes is a few iterations to add the buddy. If you need it, I can send you the class.

      Forum Gurus: Can anybody else think of a different way to do this?

      Cheers
      Alex

       
      • Rino Raimato

        Rino Raimato - 2008-10-16

        I'm thinking to a solution, if I'll found it, I'll send it to everybody
        thanks Alex

        Rino

         
    • Alex Perez

      Alex Perez - 2008-10-18

      The retries for the addition do work but they can take a substantial amount of attempts(50+).

      There must be an easier solution than this (and must be affecting quite a lot of folk out there ...)

      Again, any pointers will be inmensly appreciated.

      Regards
      Alex

       
    • Remco

      Remco - 2008-10-22

      Is there a good workaround?

      This does work: Add a user. (User accepts) Log off. Login. Re-add the user.

      When you add a user, (User accepts), log-off, and sign in onto a messenger like pidgin, it asks if you want tho authorize the user.

       
      • Alex Perez

        Alex Perez - 2008-10-22

        Hi Remco.

        Unfortunately, I have not found a clean work-arround.
        The method I'm following is launch a thread to keep re-adding the user until he shows in both the AL and FL lists while he is online.

        Alex

         
        • Rino Raimato

          Rino Raimato - 2008-10-22

          Hi Alex
          I try this solution but I have problem because, I'm using JML on a server with many threads lunched, sometimes, the server crash during the work of the adding thread. Also is possible that I have many concurrency connections.
          Also I cannot log off the server and re-add user at log on, for this reason I'm working with the account that appears off line, infact I receive the messages from that account.

          Only one question, There is a method to syncronize the lists of the different users?
          thanks for you attention
          Rino

           
    • Alex Perez

      Alex Perez - 2008-10-23

      Remco, I can certainly post the class and the instructions on how to use it.

      Could someone in the group let me know what is the policy on posting files?. If not, I can place it in one of my servers for download.

      Alex

       
    • Remco

      Remco - 2008-11-02

      I've got it working (for me). Simply (create and) move the just added user to a group.

      Hope it works for everyone ^_^

      Example:

      String groupname = "test";
      messenger.addGroup(groupname);
      messenger.addFriend(email, email.getEmailAddress() );
      messenger.moveFriend(email, "", groupname );

       

Log in to post a comment.