c# - 将 Lync 2010 与外部程序集成

标签 c# lync lync-2010

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

最佳答案

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

登录

要连接并登录到正在运行的 Lync 实例,请查看 this page从 SDK。确保保留对代表 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应该有帮助。

关于c# - 将 Lync 2010 与外部程序集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7144519/

相关文章:

c# - 如何使用 iTextSharp 转换为 PDF

msn - 如何从 Windows Live Messenger 向 MS Lync 用户发送消息?

c# - 如何阅读包含 HTML 的 Lync 对话文件?

sip - LYNC - SIP "413 - Request entity too large"订阅请求错误

c# - 使用 UCMA 3.0 安排 Lync session

.net - Lync SDK - 为 Lync 制作插件

c# - 如何接收发布到 ASP.net core 2.1 Web-API 端点的文件和数据

javascript - 在mvc中使用jquery更新@RenderBody

c# - 功能,删除所有代码注释

c# - 如何使用Lync SDK通过邮件判断是否存在合法的Lync用户?