Синхронизация профиля
Профили существуют в двух типах: для текущего счета и для контактов. Поскольку в этой карте содержится информация, такая как аватар и название дисплея, она должна быть синхронизирована как можно скорее. Но, она должна быть отправлена только при необходимости, чтобы избежать ненужных передач данных. Формат, используемый для хранения профилей, является [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/sha3
on GNU/Linux), а файл ${cacheDir}/${accId}/vcard/deviceId
проверяется.
Многоустройства
Если профиль отправляется и устройство происходит с одной учетной записи, разговоры проверяются и мы отправляем профили всех членов. Название канала будет «\({conversationId}/profile/\){memberUri}.vcf».