Отображение фотографии для конечной точки приложения

Вот моя проблема: я работаю над большим проектом 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);

И это должно сделать это, действительно. В итоге я явно опубликовал все уровни отношений, потому что они не каскадировали данные, как логически ожидалось. Это превратилось в довольно длинный ответ, также для моей будущей ссылки. Пожалуйста, дайте мне знать, если это работает и для конечных точек приложения.

Уверен, что ты не сможешь этого сделать. Поскольку это конечная точка приложения, по определению она не связана с каким-либо конкретным пользователем. Хотя, конечно, было бы неплохо.:)

Другие вопросы по тегам