将Lync 2010与外部程序集成

13

我如何将Lync 2010与一个进行DB查找并显示小弹窗及一些选项按钮的程序集成?
该程序已经与其他类型的电话系统配合运行,我需要为Lync提供连接器。
我不想在Lync中添加选项卡或其他UI。


这可能是一种屏幕弹出式应用程序 - 即它检测到来电后,会弹出有关呼叫者的信息? - Paul Nearney
是的,没错。它还允许用户从数据库派生的列表中调用,这个调用应该发送到Lync,然后由Lync发起呼叫。 - Martin
我刚刚看到2010 SDK中的示例“AudioVideoConversation”几乎已经实现了我想要的功能,我会对其进行调查。 - Martin
1个回答

21
你需要从Lync SDK开始。你可以将你的应用程序构建为Winforms或WPF应用程序。
登录
要连接并登录到运行中的Lync实例,请查看SDK中的this page。确保您保留表示Lync的LyncClient对象的引用。这可以通过调用静态方法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,如果需要,它应该为您提供电话号码。
然后,您可以进行数据库调用并弹出您的信息。
编辑:我写了一篇关于屏幕弹出的博客文章,其中详细介绍了here
拨打电话
如果您的应用程序是WPF,则最简单的方法是使用StartAudioCallButton控件允许拨打电话。否则,这里的说明here应该会有所帮助。

太棒了!我会尝试你的建议,并深入研究AudioVideoConversation示例。 - Martin
太棒了!如果这个解决了你的问题,请不要忘记标记为答案(使用勾号),以帮助任何浏览此问题的其他人 - 干杯 - Paul Nearney
可能需要一天或三天才能到达那里,但我会记住的。谢谢你的时间。 - Martin
我已经让它工作了,感谢你的帮助Paul,但是我该如何标记答案? - Martin
太好了,很高兴你到达了那里!在此答案的顶部/左侧的赞成和反对按钮附近应该有一个勾选框,让你接受这个答案。 - Paul Nearney
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接