C# 在 LYNC 中自动接听电话
Posted
技术标签:
【中文标题】C# 在 LYNC 中自动接听电话【英文标题】:C# Automatically answer calls in LYNC 【发布时间】:2012-05-25 14:56:23 【问题描述】:我想在 LYNC 中自动接听任何来电。
使用 SDK,我可以检测到来电。如果有人通过语音或视频呼叫我,则会调用以下方法。
void AVModalityStateChanged(object sender, ModalityStateChangedEventArgs e)
if (e.NewState == ModalityState.Notified)
// someone is calling me
但我现在需要有关如何接听电话的帮助。
我的整个 Lync 连接课程可以在这里查看:http://www.pastebucket.com/2293
这将用于会议室环境中,如果只需拨打会议室电话就足够了,而另一端的人不必做任何事情。
【问题讨论】:
【参考方案1】:您最好的选择是订阅在来电时引发的事件,而不是在状态更改时引发的事件。这是因为传入事件包含调用对象的句柄,然后您可以使用它来接受调用。
查看ConversationManager.ConversationAdded 事件。传入的 IM 和 AV 对话(包括 AV 呼叫)会引发此问题。
有点棘手的是,您会收到有关传入 Conversation 的通知,但它实际上是您想要接受的 Call。不过没关系,因为 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/
【讨论】:
以上是关于C# 在 LYNC 中自动接听电话的主要内容,如果未能解决你的问题,请参考以下文章