(翻译)derived conversation相关概念

如果你通过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);
}

 这样异常就被控制了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值