13

如何将 Lync 2010 与执行数据库查找并显示一个小弹出窗口的程序集成,其中包含找到的信息,以及一些带有一些选项的按钮。
该程序已经在一些其他类型的电话系统上运行,我需要一个用于 Lync 的连接器。
我不想在 Lync 中放置选项卡或其他 UI。

4

1 回答 1

21

您需要从Lync SDK开始。您可以将您的应用程序构建为 Winforms 或 WPF 应用程序。

登录中

要连接并登录到正在运行的 Lync 实例,请从 SDK中查看此页面。确保保留对LyncClient表示 Lync 的对象的引用。这可以通过调用静态方法得到LyncClient.GetClient()

检测来电

要检测来电,您可以监听ConversationManager.ConversationAdded事件。ConversationManager是您LyncClient实例上的属性。

要确定呼叫是否是 a) 音频呼叫和 b) 传入(而不是用户发出的传出呼叫),您可以使用以下方法:

bool IsIncomingAVCall(Conversation conversation)
{
    // Test to see if the call contains the AV modality
    bool containsAVModality = conversation.Modalities.ContainsKey(ModalityTypes.AudioVideo);

    if (containsAVModality)
    {
        // Get the state of the AV modality
        var state = conversation.Modalities[ModalityTypes.AudioVideo].State;

        // 'Notified' means the call is incoming
        if (state == ModalityState.Notified) return true;
    }

    return false;
}

ConversationAdded活动中,您应该注册该Conversation.ParticipantAdded活动,以便您可以检查来电者是谁。EventArgs 对象具有一个Participant属性,而该属性又具有一个Contact属性。该Contact属性有许多属性,包括Uri,它应该给你电话号码(如果你需要的话)。

然后,您可以拨打数据库电话并弹出您的信息。

编辑:我写了一篇关于屏幕弹出的博客文章,其中更详细 -这里

拨打电话

如果您的应用程序是 WPF,则允许发出呼叫的最简单方法是使用StartAudioCallButton控件。否则,此处的说明应该会有所帮助。

于 2011-08-22T09:58:24.030 回答