Disable default GAB syncronization
-
I apologise if this topic has been covered previously or I ask something obvious.
We are running with the latest prod version of z-push.
A new user added his account to his phone and the entire global address book contacts were uploaded to his phone too.
How do we disable this automatic propagation of these contacts? I.e. we do not want the GAB to go by default to the user’s phones.
-
Hi mcostan,
per default mobiles don’t sync the GAB, unless the contacts from it are copied to a public folder which is set up in z-push config or the user copied them from the GAB to his own contacts’ folder. It would be interesting to see the WBXML log for this.
Manfred
-
Hi,
I have never indeed seen this either and it doesn’t happen on my own account. This is a fresh new account in kopano-admin and just added it to a Samsung mobile phone. No contacts were copied anywhere.
How do we see the wbxml logs on the phone?
-
Hi mcostan,
@mcostan said in Disable default GAB syncronization:
Hi,
I have never indeed seen this either and it doesn’t happen on my own account. This is a fresh new account in kopano-admin and just added it to a Samsung mobile phone. No contacts were copied anywhere.
What do you mean by “in kopano-admin”? Is it an admin account? Which mobile is it and which android version?
@mcostan said in Disable default GAB syncronization:
How do we see the wbxml logs on the phone?
WBXML log is for Z-Push. There’s a wiki page on Z-Push debugging: https://wiki.z-hub.io/display/ZP/Debugging
Manfred
-
Hi, I mean the kopano account was freshly created with “kopano-admin”
Thanks for the debugging info. Will investigate.
Also I haven’t seen the phone myself as it is with the user. I’ll try to replicate it myself with another new account and another phone.
I wonder if the phone picked up the contacts from emails that he received or something as opposed to real contacts.
Will get back to you.
Thanks a lot to confirming that the GAB shouldn’t be syncronized to start with.
-
Android 7.0 Kernel 3.18.14-111-4523 , Samsung Galaxy S7 Edge
I will paste a screenshot tonight, in the contact on the phone it shows the name and the email address and
“Connected via Exchange” that presumably means it came from Exchange, not sure.
Anyway I won’t take your time further until I have investigated.
Thanks for getting back to me so quickly.
-
So there is 100% a problem here.
What we did is the following:
we created with kopano-admin a new user called dummy email dummy@dummy.com
did nothing else (the user isn’t even logged in into webapp or deskapp or outlook) and… It appeared on the user’s mobile phone in the list of contacts.
I am not aware of us setting up any job that copies the GAB contacts into a separate public folder or anything else…
-
please post some screenshot and logs to back you claims.
Edit: please also include your z-push config.php plus the output of
z-push-admin -a list -u $youruser
-
Will do although it may take a while as I do not have the phone in my hands (different person).
-
I can replicate it on my own phone too.
Created an account dum@dum.com and I get it
Will send screenshot tonight and I will post the exact versions of the packages including kopano-core.
Note that kopano-core is an older 8.4 overnight build so perhaps that could be the issue?
Anymore, more tonight when I get back home.
-
One thing: I am not using LDAP but the standard Kopano user creation.
-
So this is what happens.
- , there is no user called “dum” in Kopano.
The screen is therefore blank in the search in Android.
- I add a user “dum” with the following command
kopano-admin -c dum -f dum -e dum@dum.com -p dum
- I go back to the phone and I can now see the new contact when I search on it.
and
- When I search a contact that I also have in my own contacts, I can see the original contact but also the corporate contact in addition (forget about whatsapp).
- After debugging the webxml I can see that the corporate contact actually comes through during the search in Android, rather than a contact being added. In fact I can observe that the corporate contact doesn’t come up when the phone doesn’t have a data connection.
The XML is below, in this case I searched for “Luca” but it comes up with Luca Salvini in the corporate directory too…
20/07/2017 22:25:12 [13193] [DEBUG] [mrc] Request::ProcessHeaders() ASVersion: 14.0 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] ZPush::CommandNeedsProvisioning(16): true 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] FileStateMachine->GetState() read '31658' bytes from file: '/var/lib/z-push/5/3/androidc700440035-devicedata' 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] ASDevice data loaded for user: 'mrc' 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] TopCollector(): Initialized mutexid Resource id #18 and memid Resource id #19. 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] TopCollector initialised with IPC provider 'IpcSharedMemoryProvider' with type '20' 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] LoopDetection(): Initialized mutexid Resource id #22 and memid Resource id #23. 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] LoopDetection initialised with IPC provider 'IpcSharedMemoryProvider' with type '1337' 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] ZPush::HierarchyCommand(16): false 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] DeviceManager->ProvisioningRequired('651286485') saved device key '651286485': false 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] DeviceManager->getPolicyName(): determined policy name: 'default' 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] DeviceManager->getProvisioningPolicies(): loaded 'default' policy. 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] ZPush::CommandNeedsAuthentication(16): true 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] KopanoBackend->Logon(): Trying to authenticate user 'mrc'.. 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] KopanoBackend->openMessageStore('mrc'): Found 'DEFAULT' store: 'Resource id #34' 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] KopanoBackend->Logon(): User 'mrc' is authenticated 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] Store supports properties containing Unicode characters. 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] ZPush::CommandNeedsPlainInput(16): false 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I <Search:Search> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I <Search:Store> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I <Search:Name> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I GAL 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I </Search:Name> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I GAL 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I </Search:Name> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I <Search:Query> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I luca 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I </Search:Query> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I <Search:Options> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I <Search:Range> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I 0-19 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I </Search:Range> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I </Search:Options> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I </Search:Store> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] I </Search:Search> 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] WBXMLEncoder->startWBXML() type: vnd.ms-sync.wbxml 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Search> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Status> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O 1 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Status> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Response> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Store> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Status> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O 1 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Status> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Result> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Properties> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <GAL:DisplayName> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O Luca Damaggio 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </GAL:DisplayName> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <GAL:Alias> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O lucadm 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </GAL:Alias> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <GAL:LastName> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O Luca Damaggio 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </GAL:LastName> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <GAL:EmailAddress> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O luca@lucadamaggio.com 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </GAL:EmailAddress> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Properties> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Result> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Result> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Properties> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <GAL:DisplayName> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O Luca De Giorgi 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </GAL:DisplayName> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <GAL:Alias> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O lucag 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </GAL:Alias> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <GAL:LastName> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O Luca De Giorgi 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </GAL:LastName> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <GAL:EmailAddress> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O luca@degiorgi.co.uk 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </GAL:EmailAddress> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Properties> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Result> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Result> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Properties> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <GAL:DisplayName> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </GAL:LastName> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <GAL:EmailAddress> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O luca.salvini@ventisetteconsulting.com 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </GAL:EmailAddress> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Properties> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Result> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Range> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O 0-2 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Range> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O <Search:Total> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O 3 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Total> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Store> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Response> 20/07/2017 22:25:12 [13193] [WBXML] [mrc] O </Search:Search> 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] WBXMLEncoder->endTag() WBXML output completed 20/07/2017 22:25:12 [13193] [WBXML] [mrc] WBXML-OUT: AwFqAAAPRUwDMQABTUdMAzEAAU5PABBFA0x1Y2EgRGFtYWdnaW8AAUoDbHVjYWRtAAFMA0x1Y2EgRGFtYWdnaW8AAU8DbHVjYUBsdWNhZGFtYWdnaW8uY29tAAEBAQAPTk8AEEUDTHVjYSBEZSBHaW9yZ2kAAUoDbHVjYWcAAUwDTHVjYSBEZSBHaW9yZ2kAAU8DbHVjYUBkZWdpb3JnaS5jby51awABAQEAD05PABBFA0x1Y2EgU2FsdmluaQABSgNsdWNhAAFMA0x1Y2EgU2FsdmluaQABTwNsdWNhLnNhbHZpbmlAdmVudGlzZXR0ZWNvbnN1bHRpbmcuY29tAAEBAQAPSwMwLTIAAVADMwABAQEB 20/07/2017 22:25:12 [13193] [WBXML] [mrc] WBXML-IN : AwFqAAAPRUdIA0dBTAABSQNsdWNhAAFKSwMwLTE5AAEBAQE= 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] KopanoBackend->TerminateSearch(): terminating search for pid 12507 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] LoopDetection->ProcessLoopDetectionTerminate() 20/07/2017 22:25:12 [13193] [ INFO] [mrc] cmd='Search' memory='3.31 MiB/4.00 MiB' time='0.14s' devType='Android' devId='androidc700440035' getUser='mrc' from='::1' idle='0s' version='2.3.7+0' method='POST' httpcode='200' 20/07/2017 22:25:12 [13193] [DEBUG] [mrc] -------- End
WebApp:
3.4.0.762-516.1
Kopano Core:
8.4.0-344
Z-Push:
2.3.7+0 -
Hello @mcostan ,
ah this is what i already suspected. android by default is not able to sync the gab, but it has the possibility to do lookups at the server when searching the addressbook. With the upcoming z-push 2.4 and activesync 14.1 support these looked up contacts will even have pictures.
PS: please use code blocks when posting logs and config files
-
Thanks Felix.
Question for you. Is there any way that there can be a switch somewhere in z-push (or elsewhere) to disable this functionality? That is: the GAB isn’t searchable at all by Android?
-
Hi @mcostan ,
you could disable the gab in the server.cfg, which should prevent the mobile from searching it as well.
Why do you want to disable this? I could understand that you don’t want to sync a potentially large gab to your mobile clients, but why don’t you want the online lookups?
-
hi Felix,
If I disable the GAB in server.cfg would that disable it in webapp too?
This setup stems from my own fault, that is, I originally set up the few users using the kopano authentication as opposed to LDAP. Which means (as far as I understand) that it is impossible to hide individual users from the GAB as it is in LDAP. So the only way is to hide the GAB itself…
-
@mcostan said in Disable default GAB syncronization:
If I disable the GAB in server.cfg would that disable it in webapp too?
yes
@mcostan said in Disable default GAB syncronization:
This setup stems from my own fault, that is, I originally set up the few users using the kopano authentication as opposed to LDAP. Which means (as far as I understand) that it is impossible to hide individual users from the GAB as it is in LDAP. So the only way is to hide the GAB itself…
yes, its not possible to hide individual users from the gab, when using the db backend. but if you want to hide individual users the route to go would be to disable the gab as a whole imho.
-
thanks, all clear, much appreciated.