Синхронизация профиля

Профили существуют в двух типах: для текущего счета и для контактов. Поскольку в этой карте содержится информация, такая как аватар и название дисплея, она должна быть синхронизирована как можно скорее. Но, она должна быть отправлена только при необходимости, чтобы избежать ненужных передач данных. Формат, используемый для хранения профилей, является [vCard] (https://en.wikipedia.org/wiki/VCard) (https://datatracker.ietf.org/doc/html/rfc6350)

Где хранятся профили?

Самостоятельно

Он находится в ${idPath_}/profile.vcf например: .local/share/jami/xxxxxx/profile.vcf на GNU/Linux.

Контакты

Поскольку эта логика все еще управляется на клиент, она зависит от клиента.

Когда профиль отправляется

Звонки

В начале звонка клиент обычно отправляет vCard. Однако этот метод должен быть удален в пользу другого, расположенного в демоне.

Отправлять на устройства контакта

При подключении к новым устройствам выполняется SIP или синхронизированный канал. Когда этот канал готов, мы проверяем, нужно ли нам отправить профиль. Для этого хэш профиля сравнивается с тем, который находится в кеше (${cacheDir}/${accId}/vcard/sha3 как ~/.cache/jami/xxxxx/vcard/sha3on GNU/Linux), а файл ${cacheDir}/${accId}/vcard/deviceId проверяется.

Многоустройства

Если профиль отправляется и устройство происходит с одной учетной записи, разговоры проверяются и мы отправляем профили всех членов. Название канала будет «\({conversationId}/profile/\){memberUri}.vcf».