C#自动应答LYNC中的呼叫

Jen*_*nsB 2 c# lync

我想自动回答LYNC的任何接听电话.

使用SDK我可以检测到一个进入的呼叫.如果任何人通过语音或视频呼叫我,则会调用以下方法.

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

但我现在需要帮助解决这个问题.

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

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

Tom*_*gan 5

你最好的选择是订阅一个在来电时提出的事件,而不是状态变化.这是因为传入事件包含调用对象的句柄,然后您可以使用该句柄接受调用.

看看ConversationManager.ConversationAdded事件.这会引发传入的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/