【问题标题】:Integrating Lync 2010 with an external program将 Lync 2010 与外部程序集成
【发布时间】:2011-10-31 22:50:55
【问题描述】:

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

【问题讨论】:

  • 大概这是一个弹屏类型的应用程序——即它检测到一个音频来电,然后弹出来电者的信息?
  • 是的,完全正确。它还允许用户从从数据库派生的列表中调用。应将此呼叫发送到 Lync,然后由 Lync 发出呼叫。
  • 我刚刚看到 2010 SDK 中的示例 AudioVideoConversation 非常符合我的要求,我会调查一下。

标签: c# lync lync-2010


【解决方案1】:

您需要从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 示例。
  • 太棒了!如果这解决了您的问题,请不要忘记标记为答案(使用勾号),以帮助其他人稍后浏览此问题 - 干杯
  • 到达那里可能需要一到三天,但我会记住的。感谢您的宝贵时间。
  • 我得到了它的工作,感谢您的帮助 Paul,但我如何标记答案?
  • 太好了,很高兴你到了那里!在这个答案的顶部/左侧的向上和向下投票按钮附近应该有一个勾号,让你接受这个作为答案
猜你喜欢
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
相关资源
最近更新 更多