View Issue Details

IDProjectCategoryView StatusLast Update
0003893SOGoActiveSyncpublic2021-01-11 10:47
Reporterat Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Platform[Server] LinuxOSUbuntuOS Version14.04 LTS
Product Version3.2.1 
Summary0003893: No phones displayed for contact if no phone type cpecified. If multiple phones with same type, only one displayed.
Description

If no phone type cpecified for contact i.e. in vcard we got

TEL:12345678

however by default iphone doesnot cpecify type, so you got empty contact on server and on aother devices.

Also if you specify multiple numbers with same type

TEL;TYPE=CELL:+12345678
TEL;TYPE=CELL:+12345679
TEL;TYPE=CELL:+12345610

only one of numbers would be available on server. However if you specify different (and not empty) phone types, all of them would be available.

TagsNo tags attached.

Activities

at

at

2016-11-11 13:19

reporter   ~0010834

Btw, I've made several checks and discovered, that not all phone types are supoorted. For example radio, auto, assistant, home fax are supported by iPhone contacts app and unsupported by SOGo, i.e. in iPhone I got contact with 3 phones:

work: 12-34-56
radio: 6-78-93
home fax: 8 (888) 8

while in MySQL I got vcard with single number

select c_name, c_content from sogotest0023da33e25;

| 7579-5825C280-1-5A57E700.vcf
| BEGIN:VCARD
UID:7579-5825C280-1-5A57E700.vcf
VERSION:3.0
CLASS:PUBLIC
PROFILE:VCARD
NOTE:Created from my iPhone
ORG:With No Phone Type
FN:User\, Sample
N:User;Sample
TEL;TYPE=work:12-34-56
END:VCARD |

at

at

2016-11-11 14:57

reporter   ~0010836

Last edited: 2016-11-11 15:02

If enable EAS debug, we can notice, that phone numbers are in xml, but there is no CarPhoneNumber in database vcard.

<Sync xmlns="AirSync:">
<Collections>
<Collection>
<SyncKey>1478870075</SyncKey>
<CollectionId>vcard%2Fpersonal</CollectionId>
<GetChanges/>
<WindowSize>25</WindowSize>
<Options>
<BodyPreference xmlns="AirSyncBase:">
<Type>1</Type>
<TruncationSize>32768</TruncationSize>
</BodyPreference>
</Options>
<Commands>
<Change>
<ServerId>7579-5825C280-1-5A57E700.vcf</ServerId>
<ApplicationData>
<Body xmlns="AirSyncBase:">
<Type>1</Type>
<Data>Created from my iPhone</Data>
</Body>
<BusinessPhoneNumber xmlns="Contacts:">12-34-56</BusinessPhoneNumber>
<CarPhoneNumber xmlns="Contacts:">8 (888) 8</CarPhoneNumber>
<CompanyName xmlns="Contacts:">With No Phone Type</CompanyName>
<FileAs xmlns="Contacts:">User, Sample</FileAs>
<FirstName xmlns="Contacts:">Sample</FirstName>
<HomePhoneNumber xmlns="Contacts:">6-78-93</HomePhoneNumber>
<LastName xmlns="Contacts:">User</LastName>
<Picture xmlns="Contacts:"/>
</ApplicationData>
</Change>
</Commands>
</Collection>
</Collections>
</Sync>

at

at

2016-11-11 15:44

reporter   ~0010838

Last edited: 2016-11-11 15:44

All available phone types

<Collections>
<Collection>
<SyncKey>1478877757</SyncKey>
<CollectionId>vcard%2Fpersonal</CollectionId>
<GetChanges/>
<WindowSize>25</WindowSize>
<Options>
<BodyPreference xmlns="AirSyncBase:">
<Type>1</Type>
<TruncationSize>32768</TruncationSize>
</BodyPreference>
</Options>
<Commands>
<Change>
<ServerId>28FB-5824A900-1-15BF3060.vcf</ServerId>
<ApplicationData>
<Body xmlns="AirSyncBase:">
<Type>1</Type>
<Data/>
</Body>
<AssistantTelephoneNumber xmlns="Contacts:">7</AssistantTelephoneNumber>
<BusinessFaxNumber xmlns="Contacts:">6</BusinessFaxNumber>
<BusinessPhoneNumber xmlns="Contacts:">5</BusinessPhoneNumber>
<CarPhoneNumber xmlns="Contacts:">10</CarPhoneNumber>
<Email1Address xmlns="Contacts:">p1@pl.pl</Email1Address>
<FileAs xmlns="Contacts:">Contact, Personal</FileAs>
<FirstName xmlns="Contacts:">Personal</FirstName>
<HomeFaxNumber xmlns="Contacts:">1</HomeFaxNumber>
<HomePhoneNumber xmlns="Contacts:">3</HomePhoneNumber>
<LastName xmlns="Contacts:">Contact</LastName>
<MobilePhoneNumber xmlns="Contacts:">4</MobilePhoneNumber>
<PagerNumber xmlns="Contacts:">9</PagerNumber>
<Picture xmlns="Contacts:"/>
<RadioPhoneNumber xmlns="Contacts:">2</RadioPhoneNumber>
<CompanyMainPhone xmlns="Contacts2:">8</CompanyMainPhone>
</ApplicationData>
</Change>
</Commands>
</Collection>
</Collections>
</Sync>

Looks like only BusinessPhoneNumber, HomePhoneNumber, BusinessFaxNumber, MobilePhoneNumber, PagerNumber are supported

https://github.com/inverse-inc/sogo/blob/master/ActiveSync/NGVCard%2BActiveSync.m

at

at

2016-11-12 09:58

reporter   ~0010839

Default phone type for iPhone is home fax? Does anybody ever had home fax this century?

at

at

2016-11-14 10:04

reporter   ~0010845

Looks like we got architectural limitation: I can freely create & persist contacts with multiple cell or work phones by means of web UI

| BEGIN:VCARD
UID:5D21-58298700-1-77018D00.vcf
VERSION:3.0
CLASS:PUBLIC
PROFILE:VCARD
N:Phones;Multiple
FN:Multiple W Phones
TEL;TYPE=work:11111
TEL;TYPE=work:22222
END:VCARD |

but by means of active sync i can create only single phone number of each type.

https://github.com/inverse-inc/sogo/blob/master/SoObjects/Contacts/NGVCard%2BSOGo.h

  • (NSArray *) secondaryEmails;

  • (NSString *) workPhone;

  • (NSString *) homePhone;

  • (NSString *) fax;

  • (NSString *) mobile;

  • (NSString *) pager;

really strange limitation

finalgene

finalgene

2018-02-02 21:03

reporter   ~0012549

We have a similar issue.
As we use an old iPhone with iOS9, the default phone type is RadioPhoneNumber.
This leads in lose of data if the phone user doesn't change the value to one of the supported one.

The reason is, that the number will not be stored in the card.
If the phone reloads all contacts (seems to happen from time to time), the numbers get lost.

Is it possible to map unknown phone number types of any free known type in the card?

finalgene

finalgene

2018-02-02 21:18

reporter   ~0012550

After taking a look in https://github.com/inverse-inc/sogo/blob/master/SoObjects/Contacts/NGVCard%2BSOGo.h and https://github.com/inverse-inc/sogo/blob/master/ActiveSync/NGVCard%2BActiveSync.m I've a question.

Is it possible to store the phone numbers in an array instead of single attributes?
I'm not firm in this language. I come from PHP, where it is possible tu use associate arrays. Is some similar construct available in your language?

finalgene

finalgene

2018-02-02 21:19

reporter   ~0012551

PS.: We use the current version 3.2.10

ValdikSS

ValdikSS

2021-01-08 12:25

reporter   ~0015020

I can confirm this issue on SOGo 5.0.1 and Android 9.
Was aroused by this unpleasant surprise when multiple "Work" or "Cell" numbers of my contacts got silently discarded on saving/importing over ActiveSync.

tfu

tfu

2021-01-11 10:47

reporter   ~0015021

Just for reference: https://github.com/tfux/sogo/commit/20e3b55199627bc367fa76f02f9b6bda831f0b62
The idea of the draft-patch is to include more elements when syncing contacts, BUT the problem here is that any mapping should be aligned between the different interfaces.
IMHO this process should start from the webUI by defining vcard-tags for the various phone-numbers.

Issue History

Date Modified Username Field Change
2016-11-11 11:27 at New Issue
2016-11-11 13:19 at Note Added: 0010834
2016-11-11 14:57 at Note Added: 0010836
2016-11-11 15:02 at Note Edited: 0010836
2016-11-11 15:44 at Note Added: 0010838
2016-11-11 15:44 at Note Edited: 0010838
2016-11-12 09:58 at Note Added: 0010839
2016-11-14 10:04 at Note Added: 0010845
2018-02-02 21:03 finalgene Note Added: 0012549
2018-02-02 21:18 finalgene Note Added: 0012550
2018-02-02 21:19 finalgene Note Added: 0012551
2021-01-08 12:25 ValdikSS Note Added: 0015020
2021-01-11 10:47 tfu Note Added: 0015021