You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何监听Skype for Business通话接听事件以触发Windows Form应用

问题解答

是的,存在可直接监听的Skype for Business通话接听事件,你可以通过官方的Lync Client SDK实现需求,具体实现方案如下:

核心实现逻辑

Skype for Business的通话接听动作会触发音频模块的状态变更事件,你只需要按以下步骤监听即可:

  • 首先在项目中引入Lync Client SDK的核心程序集Microsoft.Lync.Model.dll
  • 调用LyncClient.GetClient()获取当前已登录的Skype for Business客户端实例
  • 为客户端的会话管理器注册ConversationManager.ConversationAdded事件,监听新发起的通话会话
  • 对每个新生成的会话,先判断是否为音频/视频通话类型,之后为该会话的音频模块注册ModalityStateChanged事件
  • 当事件回调中音频模块的状态变更为ModalityState.Connected时,即代表通话已经被接听,此时即可执行你自定义的业务逻辑

核心代码示例

// 获取Lync客户端实例
LyncClient client = LyncClient.GetClient();

// 注册新会话监听事件
client.ConversationManager.ConversationAdded += ConversationManager_ConversationAdded;

private void ConversationManager_ConversationAdded(object sender, ConversationManagerEventArgs e)
{
    // 获取会话的音频模块
    AVModality avModality = e.Conversation.Modalities[ModalityTypes.AudioVideo] as AVModality;
    if (avModality != null)
    {
        // 注册音频模块状态变更事件
        avModality.ModalityStateChanged += AvModality_ModalityStateChanged;
    }
}

private void AvModality_ModalityStateChanged(object sender, ModalityStateChangedEventArgs e)
{
    // 判断状态是否为已连接(即通话被接听)
    if (e.NewState == ModalityState.Connected)
    {
        // 此处写入你需要执行的自定义逻辑
    }
}

注意事项

  • 运行程序的设备必须提前安装Skype for Business客户端,且客户端处于已登录状态,SDK才能正常获取实例
  • 建议项目使用.NET Framework 4.5及以上版本,匹配对应版本的Lync Client SDK避免兼容性问题
  • 64位系统下注意项目编译平台和SDK版本的架构匹配,避免出现加载程序集失败的问题

内容的提问来源于stack exchange,提问作者PoornachnadraRao Pillarisetti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:06:05