Profielsynchronisatie

Er zijn twee soorten profielen. De een voor het lopende account en die van contacten. Omdat deze vcard informatie bevat, zoals de avatar en de display naam, moet deze zo snel mogelijk worden gesynchroniseerd. Maar, moet het alleen worden gestuurd wanneer nodig, om onnodige gegevensoverdrachten te voorkomen. Het formaat dat wordt gebruikt om de profielen te bewaren is een [vCard] (https://en.wikipedia.org/wiki/VCard) (https://datatracker.ietf.org/doc/html/rfc6350)

Waar zijn de profielen opgeslagen?

Zelf

Het is in ${idPath_}/profile.vcf bijvoorbeeld: .local/share/jami/xxxxxx/profile.vcf op GNU/Linux.

Contacten

Omdat deze logica nog steeds wordt beheerd per client, is het afhankelijk van de client.

Wanneer een profiel wordt verzonden

Oproepen

Aan het begin van een oproep stuurt de client meestal de vCard.

Stuur naar de apparaten van de contactpersoon

Bij het verbinden met een nieuw apparaat wordt een SIP of een synchronisatie kanaal uitgevoerd. Wanneer dit kanaal klaar is, controleren we of we het profiel moeten sturen. Om dit te doen, wordt de hash van het profiel vergeleken met die in de cache (${cacheDir}/${accId}/vcard/sha3 zoals ~/.cache/jami/xxxxx/vcard/sha3on GNU/Linux), en wordt het bestand ${cacheDir}/${accId}/vcard/deviceId gecontroleerd.

Multidivissen

Als het profiel wordt verzonden en het apparaat uit hetzelfde account komt, worden gesprekken gecontroleerd en worden profielen van alle leden verzonden. De kanaalnaam zal zijn “conversationId/profiel/{memberUri}.vcf”. Gedrag getest in daemon/test/unitTest/syncHistory/syncHistory.cpp