1

我有一个从呼叫者到我们的 ucma 服务器到客户端/操作员的背靠背呼叫。在从呼叫者到 ucma 的腿上进行转移时,可能会发生一些不同的结果;转接目标接听、不接听或忽略呼叫(忽略/占线按钮)。

我想区分后两者;忙,无人接听。在 ucma 应用程序中,我只收到带有文本“传输操作失败。有关详细信息,请参阅异常中的消息数据”的 FailureRequestException。我无法弄清楚异常中的任何地方,或者如何知道忙和没有答案之间的区别。两者都生成相同的异常,没有明显的参数说明它是什么。

有什么方法可以知道在这种情况下传输失败的原因吗?

4

1 回答 1

1

我不确定这是否会有所帮助,但如果您可以获得邀请的最终非临时状态代码,“忽略”结束将是 603。没有答案将是“480” - 尽管 480(暂时不可用)可以因许多其他原因而被退回。

此外,如果用户拥有多个端点(例如桌面 Lync 客户端和移动 Lync 客户端),情况可能会混淆。因此,您最终会得到分叉的请求/响应,而只有一个整体响应会返回给您。那么您可能并不总是能够准确说出呼叫终止的原因。

我实际上觉得你说你得到一个 FailureRequestException 很有趣。我会期待一个FailureResponseException。使用 FailureResponseException 异常,您可以提取状态代码。

UCMA 4.0 异常模型 msdn 页面

失败响应异常

当收到请求的 4xx、5xx 或 6xx 响应时抛出。此异常包含 ResponseData 属性,该属性包含完整的响应,包括响应代码、原因文本、标头和消息正文。在极少数情况下,当发生 4xx、5xx 或 6xx 响应以外的错误时,也可能会抛出此错误。在这种情况下,ResponseData 属性为空。

于 2015-12-17T20:12:33.317 回答