Navigation

    Kopano
    • Register
    • Login
    • Search
    • Categories
    • Get Official Kopano Support
    • Recent
    Statement regarding the closure of the Kopano community forum and the end of the community edition

    No presence information

    Kopano Meet & WebMeetings
    3
    12
    1611
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • nbj
      nbj @mcostan last edited by

      @mcostan
      I had already seen those threads.
      As I said webmettings is working normally (can make video calls, send/receive messages), only presence isn’t available/shown in Webapp.

      1 Reply Last reply Reply Quote 0
      • fbartels
        fbartels Kopano @nbj last edited by

        Hi @nbj,

        is it like “you don’t know where these information are supposed to be displayed” or “you know where you’d find them, but they are missing”?

        From the logging I would expect that it indeed does work. Could it be that your browser is blocking it? Which versions of WebApp and the Spreed plugin are you using?

        Regards Felix

        Resources:
        https://kopano.com/blog/how-to-get-kopano/
        https://documentation.kopano.io/
        https://kb.kopano.io/

        Support overview:
        https://kopano.com/support/

        1 Reply Last reply Reply Quote 0
        • nbj
          nbj last edited by nbj

          There’s no presence information in webapp (not in GAB contacts or emails received) . My setup is one server with webapp/webmeetings (only apache) and other with kopano-core/Kopano-presence. I tried running webapp/webmeetings in the same server as Kopano-core but the result was the same.

          It doesn’t seems to be a browser problem because I did a test installation with the univention server and presence worked as expected.

          By the way, I fully translated WebApp and MDM to European Portuguese (Kopano-core and files plug-in are work in progress) . I have the po file and I could send it to you.

          WebApp 3.4.12.1412+793.1
          Webmeetings 0.29.5-1

          1 Reply Last reply Reply Quote 0
          • nbj
            nbj last edited by

            Did a tcpdump in the server running kopano-core/kopano-presence and got this:
            webapp does a PUT:

            {"AuthenticationToken":"1524764456:nuno:MCPYJC86G9BIZWXB4ISDZSMO+BAECMT+OG7TEKIYLAG=","Type":"UserStatus","UserStatus":[{"user_id":"nuno@ola.pt","spreed":{"status":"unavailable","message":""}}]}
            

            kopano-presence responds:

            HTTP/1.0 200 OK
            Content-Type: text/html; charset=utf-8
            Content-Length: 0
            Server: Werkzeug/0.10.4 Python/2.7.12
            Date: Thu, 26 Apr 2018 17:42:16 GMT
            

            after that webapp does a POST:

            {"AuthenticationToken":"1524764836:nuno:LUPGH/HSUHZZKZQIEK7CH9NUJXJSXPNWZYPUVKONGGW=","Type":"UserStatus","UserStatus":[]}
            

            with a response from server:

            HTTP/1.0 200 OK
            Content-Type: text/html; charset=utf-8
            Content-Length: 51
            Server: Werkzeug/0.10.4 Python/2.7.12
            Date: Thu, 26 Apr 2018 17:42:19 GMT
            
            {
                "Type": "UserStatus", 
                "UserStatus": []
            }
            

            So this why I get no presence information in webapp.

            In the working uninvention server the first PUT it’s the same, but the POST is different:

            {"AuthenticationToken":"1524765181:teste12:IU9YABEBYYBEFTU/FLX+0REEILHRFCQ3FK/MS73EIIS=","Type":"UserStatus","UserStatus":[{"user_id":"asdf"}]}
            

            Server responds with:

            HTTP/1.0 200 OK
            Content-Type: text/html; charset=utf-8
            Content-Length: 216
            Server: Werkzeug/0.9.6 Python/2.7.9
            Date: Thu, 26 Apr 2018 17:48:05 GMT
            
            {
                "Type": "UserStatus", 
                "UserStatus": [
                    {
                        "user_id": "asdf", 
                        "spreed": {
                            "status": "available", 
                            "message": ""
                        }
                    }
                ]
            }
            

            Don’t know if it’s the incomplete POST that’s causing the response to also be empty or if it’s unrelated. Any ideas what can be causing this behaviour?

            1 Reply Last reply Reply Quote 0
            • nbj
              nbj last edited by

              I found this scripts (https://stash.kopano.io/users/jvanderwaa/repos/kopanocore/browse/ECtools/presence/test) to test the presence server and it works:

               curl -u presenca:presence -X GET -d '{"AuthenticationToken":"1524844924:nuno:CGPP7QJA5TJ78GAWCT5BXI8YLU2GHH4OL+QQM7PM3Y=", "Type": "UserStatus", "UserStatus": [{"user_id": "user1"}, {"user_id": "user2"}]}' https://wxxxxxx.xxxxxx.xx/webapp/presence -H "Content-Type: application/json"
              {
                  "Type": "UserStatus",
                  "UserStatus": [
                      {
                          "user_id": "user1",
                          "spreed": {
                              "status": "available",
                              "message": ""
                          }
                      },
                      {
                          "user_id": "user2",
                          "spreed": {
                              "status": "available",
                              "message": ""
                          }
                      }
                  ]
              

              At this point I could say the problem was with webapp/webmeetings, but I changed the config files to use the kopano-core/kopano-presence running in the uninvention server and it works.

              Running out of ideas. Any pointers?

              1 Reply Last reply Reply Quote 0
              • fbartels
                fbartels Kopano last edited by

                If both systems are identical, then it must be something in your configuration. I’d recommend to get in touch with our support so they can have a look on your system.

                Ps: https://stash.kopano.io/projects/KC/repos/kopanocore/browse would be the correct source repository.

                Regards Felix

                Resources:
                https://kopano.com/blog/how-to-get-kopano/
                https://documentation.kopano.io/
                https://kb.kopano.io/

                Support overview:
                https://kopano.com/support/

                nbj 1 Reply Last reply Reply Quote 0
                • nbj
                  nbj @fbartels last edited by

                  @fbartels
                  Your post got me thinking, and even though both servers are running the LDAP plugin for authentication I went and tried with the unix plugin and VOILÁ, it works, I got presence information.

                  I’m using an Active Directory Windows 2012R2 back-end for authentication. Is there any special configuration needed for presence to work with this setup?

                  fbartels 1 Reply Last reply Reply Quote 0
                  • fbartels
                    fbartels Kopano @nbj last edited by

                    I know you just configured the Unix backend as a test, but I would urge not to use the Unix backend for production deployments. For one it’s vastly inferior to the ldap backend and for the other it’s not actively tested.

                    @nbj said in No presence information:

                    . Is there any special configuration needed for presence to work with this setup?

                    No, presence is pretty plug and play and does not really need configuration (it’s mostly only the secret/token). I can only imagine that this could be because of some attribute mapped in the ldap.propmap.cfg.

                    I would still urge you to get in contact with our support, so that we can investigate your configuration.

                    Regards Felix

                    Resources:
                    https://kopano.com/blog/how-to-get-kopano/
                    https://documentation.kopano.io/
                    https://kb.kopano.io/

                    Support overview:
                    https://kopano.com/support/

                    nbj 1 Reply Last reply Reply Quote 0
                    • nbj
                      nbj last edited by

                      Figured out what the problem is. If I use the email address as ldap_loginname_attribute, presence does not work. If instead I use sAMAccountName presence works. Maybe has something to do with the ‘@’ in the user name?

                      Is this a bug or using email as the ldap_loginname_attribute isn’t supported in kopano-presence?

                      1 Reply Last reply Reply Quote 0
                      • nbj
                        nbj @fbartels last edited by nbj

                        @fbartels
                        After applying the following modifications I finally got it working with the email address as the login.

                        First in /usr/share/kopano-webapp/client/kopano-debug.js ( not sure but it seems the part I modified comes from kopano-webapp/client/zarafa/core/data/UserIdObjectFactory.js):

                        // Add ZARAFA specific fields to the object
                        var recordEntryId = record.get('entryid');
                        var recordUsername = record.get('username');
                        var recordEmailAddress = record.get('email_address');
                        var recordSmtpAddress = record.get('smtp_address');
                        
                        user.entryid = recordEntryId;
                        
                        // Try to be smart to find the username and email address.
                        // Sometimes the username is available in the email_address field,
                        // sometimes the email address is available in the username field,
                        // and sometimes it is available in the smtp_address field.
                        if ( Ext.isString(recordUsername) && recordUsername.indexOf('@')==-1 ){
                        	user.username = recordUsername;
                        } else if ( Ext.isString(recordEmailAddress) && recordEmailAddress.indexOf('@')==-1 ){
                        	user.username = recordEmailAddress;
                        }
                        

                        In my debugging recordUsername is empty/undefined because record.get(‘username’); returns nothing as there’s no username in record, eg:

                        account: ""
                        address_type: "ZARAFA"
                        assistant: ""
                        business2_telephone_number: ""
                        business2_telephone_number_mv: ""
                        business_telephone_number: ""
                        comment: ""
                        company_name: ""
                        country: ""
                        department_name: "IT"
                        display_name: "User2 Adeus"
                        display_type: 0
                        display_type_ex: 1073741824
                        email_address: "user2@adeus.pt"
                        entryid: "00000000ac21a95040d3ee48b319fba753304425010000000600000072000000457949424c762f4471306d7069456e355873375a41513d3d00000000"
                        fileas: "user2@adeus.pt"
                        full_name: "Adeus, User2"
                        given_name: "User2"
                        home2_telephone_number: ""
                        home2_telephone_number_mv: ""
                        home_telephone_number: ""
                        initials: ""
                        locality: ""
                        message_class: undefined
                        mobile_telephone_number: ""
                        object_type: 6
                        office_location: ""
                        office_telephone_number: ""
                        pager_telephone_number: ""
                        postal_code: ""
                        primary_fax_number: ""
                        search_key: "5a41524146413a55534552324041444555532e505400"
                        smtp_address: "user2@adeus.pt"
                        state_or_province: ""
                        street_address: ""
                        surname: "Adeus"
                        title: ""
                        

                        Also noticed that email_address in record is populated with ldap_loginname_attribute.

                        So when you test else if ( Ext.isString(recordEmailAddress) && recordEmailAddress.indexOf('@')==-1 ){ user.username = recordEmailAddress; }, and are using an email as the login, it will fail and user.username will be empty. To make it work I changed it to else if ( Ext.isString(recordEmailAddress) { user.username = recordEmailAddress; }

                        The other file I modified was /usr/share/kopano-webapp/plugins/spreedwebrtc/jsspreedwebrtc-debug.js:

                        /**
                        * Will either add or remove an email_address to the watch list
                        *
                        * @param {String} email_address The email address to remove or add
                        * @param {String} remove optionally remove the user from the watch list
                        * @private
                        */
                        updatePresenceWatchingList: function(email_address, entryId, smtp_address, remove) {
                        
                        
                        	if (!email_address || 0 === email_address.length) { return; }
                        	// skip non-Kopano email addresses
                        	if (email_address.indexOf('@') > -1) { return; }
                        	var index = this.presenceWatchingList.indexOf(email_address);
                        

                        Same issue here. Removed if (email_address.indexOf('@') > -1) { return; }
                        so I don’t get an empty watch list and subsequent empty presence request.

                        With this modifications presence works using either sAMAccountName or mail as ldap_loginname_attribute.

                        Keep in mind that I’m no software developer nor do I know if there are implications anywhere else in Kopano. Hope this helps you solve the issue.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post