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

Вот моя проблема: я работаю над большим проектом UCMA уже 3 месяца, и теперь я хотел бы добавить небольшую функцию.

У меня есть много конечных точек приложения, которые можно добавлять, изменять или удалять динамически, и я хотел бы каждый раз, когда я создаю конечную точку приложения, указывать изображение, которое будет отображаться в Microsoft Lync.

У меня уже есть много других функций, но я бы очень хотел иметь эту.

Я искал несколько дней, но ничего не нашел, поэтому, прежде чем сказать себе, что это невозможно, я хотел спросить!

Кто-нибудь знает, возможно ли это? В таком случае, не могли бы вы показать мне, как это сделать?

Спасибо


person Kevin Schmitt    schedule 09.07.2012    source источник


Ответы (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);

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

person Willem    schedule 11.06.2013

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

person Tom Morgan    schedule 10.07.2012