Synchronisation de profil
Il existe deux types de profils. Celui pour le compte courant et celui des contacts. Comme cette carte v contient des informations, telles que l’avatar et le nom de l’affichage, elle doit être synchronisée dès que possible. Mais, elle doit être envoyée uniquement lorsque nécessaire, pour éviter les transmissions de données inutiles. Le format utilisé pour stocker les profils est une [vCard] (https://en.wikipedia.org/wiki/VCard) (https://datatracker.ietf.org/doc/html/rfc6350)
Où sont stockés les profils?
Autonomie
Il est dans ${idPath_}/profil.vcf
par exemple: .local/share/jami/xxxxxx/profil.vcf
sur GNU/Linux.
Contacts
Cette logique est toujours gérée par client, elle dépend du client. Cependant, sur Desktop, elle est unifiée et stockée dans: ${idPath_}/profiles/${base64(uri)}.vcf
Lorsqu’un profil est envoyé
Appels
Au début d’un appel, le client envoie généralement la vCard. Cependant, cette méthode doit être supprimée en faveur de l’autre situé dans le daemon.
Envoyer aux appareils de contact
Lors de la connexion à un nouveau périphérique, un canal de synchronisation ou un canal de synchronisation est effectué. Lorsque ce canal est prêt, nous vérifions si nous devons envoyer le profil. Pour ce faire, le hachage du profil est comparé à celui du cache (${cacheDir}/${accId}/vcard/sha3
comme ~/.cache/jami/xxxxx/vcard/sha3
on GNU/Linux), et le fichier ${cacheDir}/${accId}/vcard/deviceId
est vérifié.
Les appareils à multiples
Si le profil est envoyé et que l’appareil provient du même compte, les conversations sont vérifiées et nous envoyons les profils de tous les membres. Le nom du canal sera « ${conversationId}/profil/${memberUri}.vcf ». Le comportement testé dans daemon/test/unitTest/syncHistory/syncHistory.cpp