C# 在 Lync 中自动应答呼叫

本文关键字:应答 呼叫 Lync | 更新日期: 2023-09-27 18:35:17

我想自动应答 Lync 中的任何传入呼叫。

使用 SDK,我可以检测到传入的呼叫。如果有人用语音或视频呼叫我,则会调用以下方法。

void AVModalityStateChanged(object sender, ModalityStateChangedEventArgs e)
{
    if (e.NewState == ModalityState.Notified)
    {
        // someone is calling me
    }
}

但是我现在需要有关如何接听此电话的帮助。

可以在此处查看我的整个 Lync 连接类:http://www.pastebucket.com/2293

这将用于会议室设置,如果只需拨打房间就足够了,而另一端的人不必做任何事情,那就太好了。

C# 在 Lync 中自动应答呼叫

更好的选择是订阅在传入呼叫时引发的事件,而不是在状态更改时引发的事件。这是因为传入事件包含调用对象的句柄,然后可以使用该句柄接受调用。

查看 ConversationManager.ConversationAdd 事件。对于传入的 IM 和 AV 对话(包括 AV 呼叫),会引发此问题。

稍微棘手的一点是,您会收到有关传入对话的通知,但实际上是您要接受的呼叫。不过没关系,因为 Call 对象包含在 Conversation 对象中,该对象是传递的 EventArgs 的一部分。

让我们暂时假设您只想接受 AV 呼叫,而不是 IM 呼叫。因此,您需要做的第一件事是查看您刚刚收到的对话是否实际上是 AV 呼叫。您可以通过使用从事件传递的ConversationManagerEventArgs查看对话模式来判断这一点。 e.Conversation.Modalities包含传入对话的所有形式。

假设这是一个AV呼叫(并最终回答您最初的问题!),然后您可以通过以下方式接受呼叫:

e.Conversation.Modalities[ModalityTypes.AudioVideo].Accept();

希望这有帮助。我很快就会写一篇关于这个的博客文章,更详细一点,所以我会尝试并记得在完成后更新这个答案。

编辑:博客文章写得更详细一点,在这里:http://thoughtstuff.co.uk/2012/06/answering-the-call-accepting-incoming-calls-in-lync-client-sdk/