admin 管理员组文章数量: 1184232
如果你通过UCMA程序和别人在同一个会话里同时使用了IM和语音,说不定有时候会遇见以下异常:
Microsoft.Rtc.Signaling.OperationFailureException: Application must register for ConversationChanged event when a call is moved to a derived conversation.
尤其是当你想要在只有IM或者应用共享的会话里增加语音选项时异常总会发生,远端会重定向语音给一个PSTN通话。也许是因为对方没有耳麦设备,或者是使用了无线设备导致通话质量太差,也可能他根本不能进行语音聊天。
这里发生的就是会话里的语音通话被通过Mediation服务器路由给了PSTN,而不是目标用户。这样语音呼叫就被从原始会话里剥离出来到了一个新的,称为derived conversation的会话里,并且这个会话有独立的ID。你可以看一下这时候的原始Conversation对象,是没有AudioVideoCall的,或者你可能看见多了一个PSTN与会者。你没有办法控制这个语音通话。基本上,UCMA为了保护你会要求你绑定一个事件Call.ConversationChanged。
如果当derived conversation被创建时你希望收到通知,可以像这样订阅ConversationChanged事件:
avCall.ConversationChanged +=
new EventHandler<ConversationChangedEventArgs>(OnAvCallConversationChanged);
我希望它能把详细信息输出到控制台,所以我这样:
void OnAvCallConversationChanged(object sender,
ConversationChangedEventArgs e)
{
Console.WriteLine("Call moved to derived conversation! Old ID: {0}. New ID: {1}. Reason: {2}.",
e.PreviousConversation.Id, e.NewConversation.Id, e.Reason);
}
这样异常就被控制了。
本文标签: 概念 derived Conversation
版权声明:本文标题:(翻译)derived conversation相关概念 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1754606210a3020578.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论