Tích hợp hồ sơ
Có hai loại hồ sơ. Một là cho tài khoản hiện tại, và những người từ các liên hệ. Vì vcard này chứa thông tin, chẳng hạn như avatar và tên hiển thị, nó nên được đồng bộ hóa càng sớm càng tốt. Nhưng, nó chỉ phải được gửi khi cần thiết, để tránh việc truyền dữ liệu không cần thiết.
Các hồ sơ được lưu trữ ở đâu?
Tự
Nó nằm trong ${idPath_}/profile.vcf
ví dụ: .local/share/jami/xxxxxx/profile.vcf
trên GNU/Linux.
Liên hệ
Vì logic này vẫn được quản lý theo mỗi client, nó phụ thuộc vào client. Tuy nhiên, trên Desktop, điều này được thống nhất và lưu trữ vào: ${idPath_}/profiles/${base64(uri)}.vcf
Khi một hồ sơ được gửi
Calls
Vào đầu cuộc gọi, thường khách hàng gửi vCard. Tuy nhiên, phương pháp này nên được loại bỏ để ủng hộ phương pháp khác nằm trong daemon.
Gửi đến thiết bị liên lạc
Khi kết nối với một thiết bị mới, một kênh đồng bộ hóa hoặc SIP được thực hiện. Khi kênh này sẵn sàng, chúng tôi kiểm tra xem chúng tôi cần gửi hồ sơ hay không. Để làm điều này, hash của hồ sơ được so sánh với cái trong bộ nhớ cache (${cacheDir}/${accId}/vcard/sha3
như ~/.cache/jami/xxxxx/vcard/sha3
on GNU/Linux), và tệp ${cacheDir}/${accId}/vcard/deviceId
được kiểm tra.
Máy đa thiết bị
Nếu hồ sơ được gửi và thiết bị là từ cùng một tài khoản, các cuộc trò chuyện được kiểm tra và chúng tôi gửi hồ sơ của tất cả các thành viên. Tên kênh sẽ là "\({conversationId}/profile/\){memberUri}.vcf". Hành vi được kiểm tra trong daemon/test/unitTest/syncHistory/syncHistory.cpp