Отображение фотографии для конечной точки приложения
Вот моя проблема: я работаю над большим проектом UCMA с 3-х месяцев, и теперь я хотел бы добавить небольшую функцию.
У меня есть много ApplicationEndpoints, которые можно динамически добавлять, изменять или удалять, и я хотел бы, чтобы каждый раз, когда я создаю ApplicationEndpoint, указывал изображение, которое будет отображаться в Microsoft Lync.
У меня уже есть много других функций, но я бы очень хотел иметь эту.
Я искал несколько дней, но ничего не нашел, прежде чем сказать себе, что это невозможно, я хотел спросить!
Кто-нибудь знает, возможно ли это? В таком случае, не могли бы вы показать мне, как это сделать?
Спасибо
2 ответа
Лучше поздно, чем никогда, но это может кому-то помочь.
Я не уверен, возможно ли это для конечной точки приложения, но вы можете опубликовать настройки фотографий для конечной точки пользователя точно (я сделал это, и это работает). Некоторая основная информация о присутствии публикации может быть найдена на MSDN: Публикация Присутствия.
Публикация информации о присутствии (которая включает в себя настройки фото) осуществляется на LocalEndpoint.LocalOwnerPresence
, И то и другое UserEndpoint
а также ApplicationEndpoint
вытекают из LocalEndpoint
так что это должно быть выполнимо на самом деле.
Фактическая публикация становится немного сложной, потому что существует множество различных комбинаций "уровней" для публикации:
Во-первых, есть куча InstanceID
значения, о которых вам нужно знать, ознакомьтесь с ними здесь: источник данных о присутствии и идентификатор экземпляра категории
Во-вторых, есть значение того, к кому относится это присутствие, см. Microsoft.Rtc.Collaboration.Presence.PresenceRelationshipLevel
, Не публиковать на Unknown
Вы получите исключение.
public enum PresenceRelationshipLevel
{
Unknown = -1,
Everyone = 0,
External = 100,
Colleagues = 200,
Workgroup = 300,
Personal = 400,
Blocked = 32000,
}
Вам необходимо опубликовать PresenceCategoryWithMetaData
для пользовательских свойств фотографии, которая является частью контейнера 0x5
"Информация о присутствии".
var photoPresence = new PresenceCategoryWithMetaData(
0x5, // The container id
(int)PresenceRelationshipLevel.Everyone,
new ContactCard(0x5) // Same container ID again
{
IsAllowedToShowPhoto = true,
PhotoUri = "<uri to your photo here"
});
Вы можете установить ExpiryPolicy
на этом объекте тоже должен быть самоочевидным на самом деле. Затем опубликуйте этот объект присутствия на вашей конечной точке:
Endpoint.LocalOwnerPresence.BeginPublishPresence(new[] { photoPresence }, cb => {
Endpoint.LocalOwnerPresence.EndPublishPresence(cb);
}, null);
И это должно сделать это, действительно. В итоге я явно опубликовал все уровни отношений, потому что они не каскадировали данные, как логически ожидалось. Это превратилось в довольно длинный ответ, также для моей будущей ссылки. Пожалуйста, дайте мне знать, если это работает и для конечных точек приложения.
Уверен, что ты не сможешь этого сделать. Поскольку это конечная точка приложения, по определению она не связана с каким-либо конкретным пользователем. Хотя, конечно, было бы неплохо.:)