显示应用程序端点的照片

时间:2012-07-09 15:51:50

标签: lync ucma

这是我的问题: 我从3个月开始从事大型UCMA项目,现在我想添加一些小功能。

我有很多可以动态添加,修改或删除的ApplicationEndpoints,我希望每次创建ApplicationEndpoint时都指定一个将在Microsoft Lync上显示的图片。

我已经有很多其他的功能,但我真的很喜欢这个。

我搜索了几天,但在告诉自己无法完成之前我没有找到任何东西,我想问一下!

有谁知道这是否可能?在那种情况下,你能告诉我这样做的方法吗?

谢谢

2 个答案:

答案 0 :(得分:1)

迟到总比没有好,但这可能对某人有所帮助。

我不确定这是否可以用于应用程序端点,但您可以确定发布用户端点的照片设置(我已经完成了这个并且它可以工作)。有关发布状态的一些基本信息可以在MSDN上找到:Publishing Presence

LocalEndpoint.LocalOwnerPresence上发布在线状态信息(包括照片设置)。 UserEndpointApplicationEndpoint都来自LocalEndpoint,所以这应该是可行的。

实际发布稍微复杂一些,因为要发布的“级别”有很多不同的组合:

首先,您需要了解一堆InstanceID值,请在此处阅读:Presence data source and category instance ID

其次,这种存在适用于哪个值,请参阅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);

那应该这样做,真的。我最终明确发布到所有关系级别,因为它没有按逻辑预期级联数据。这变成了相当冗长的回复,也是为了我将来的参考。如果这适用于应用端点,请告诉我。

答案 1 :(得分:0)

很确定你不能这样做。因为它是一个应用程序端点,根据定义它与任何一个特定用户无关。这肯定会很好。 :)

相关问题