(翻译)derived conversation相关概念

UCMA中处理异常通话转移

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

 这样异常就被控制了。

08-30
在IT领域,“derived”常见的含义是“派生的”“衍生的”,以下从不同方面介绍其含义及应用: ### 面向对象编程 在面向对象编程中,“derived”常与类相关,指的是从一个已有的类(基类或父类)派生出新的类(派生类或子类)。派生类继承了基类的属性和方法,并且可以在此基础上添加新的属性和方法,或者重写基类的方法。 ```python # 定义基类 class Animal: def __init__(self, name): self.name = name def speak(self): pass # 定义派生类 class Dog(Animal): def speak(self): return f"{self.name} says Woof!" dog = Dog("Buddy") print(dog.speak()) ``` 在这个Python示例中,`Dog`类是从`Animal`类派生而来的。`Dog`类继承了`Animal`类的`__init__`方法和`name`属性,并且重写了`speak`方法。 ### 数据库 在数据库中,“derived”通常用于表示派生表或派生列。派生表是在查询中临时创建的表,它基于一个或多个现有表的查询结果。派生列是通过对现有列进行计算或转换得到的新列。 ```sql -- 派生表示例 SELECT derived_table.product_name, derived_table.total_sales FROM ( SELECT product_name, SUM(quantity * price) AS total_sales FROM sales GROUP BY product_name ) AS derived_table; -- 派生列示例 SELECT order_id, product_name, quantity, price, quantity * price AS total_amount FROM orders; ``` 在上述SQL示例中,第一个查询使用了派生表,通过子查询创建了一个临时表`derived_table`,并从该表中选择数据。第二个查询使用了派生列,通过对`quantity`和`price`列进行乘法运算得到了`total_amount`列。 ### 数据处理和分析 在数据处理和分析中,“derived”可用于表示通过对原始数据进行计算、转换或组合得到的派生数据。例如,在数据分析工具(如Pandas)中,可以通过对现有列进行操作来创建派生列。 ```python import pandas as pd # 创建一个DataFrame data = { 'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35], 'salary': [50000, 60000, 70000] } df = pd.DataFrame(data) # 创建派生列 df['salary_per_year'] = df['salary'] * 12 print(df) ``` 在这个Python示例中,使用Pandas库创建了一个DataFrame,并通过对`salary`列进行乘法运算创建了`salary_per_year`派生列。 ### 机器学习 在机器学习中,“derived”特征是指通过对原始特征进行变换或组合得到的新特征。派生特征可以帮助模型更好地捕捉数据中的模式和信息,提高模型的性能。 ```python import numpy as np from sklearn.preprocessing import PolynomialFeatures # 原始特征 X = np.array([[1], [2], [3]]) # 创建派生特征 poly = PolynomialFeatures(degree=2) X_derived = poly.fit_transform(X) print(X_derived) ``` 在这个Python示例中,使用`PolynomialFeatures`类从原始特征`X`中创建了派生特征`X_derived`,通过多项式变换得到了更高次的特征。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值