我想自动回答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
这将用于会议室设置,如果仅仅拨打房间就足够了,而另一端的人不必做任何事情.
你最好的选择是订阅一个在来电时提出的事件,而不是状态变化.这是因为传入事件包含调用对象的句柄,然后您可以使用该句柄接受调用.
看看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/
| 归档时间: |
|
| 查看次数: |
3143 次 |
| 最近记录: |