c#在UCMA 5中终止传输

时间:2017-07-20 19:00:22

标签: c# ucma

如何在几秒钟后结束正在进行的呼叫转移? 在文档中,最小呼叫转移持续时间是一分钟(CallTransferOptions.MaximumTransferTime)。 在我的应用程序中,有一个用户列表,其中传入的呼叫按列出的顺序传输。但是等一下太久了。 我的代码示例:

for (int i = 0; i < _targetsUri.Length; i++)
{
    try
    {
        _transferType.MaximumTransferTime = new TimeSpan(0, 0, 1, 0, 0);                   
        var handler = _audioVideoCall.BeginTransfer(_targetsUri[i], _transferType, null, _audioVideoCall);                    
        EndTransferCall(handler);                    
        _waitForTransferComplete.WaitOne();
    }
    catch (Exception ex)
    {
       ///
    }
} 

我希望在20秒后结束对当前用户的呼叫转移,并在下一个迭代周期中开始转移到另一个用户。现在呼叫转移一分钟。

1 个答案:

答案 0 :(得分:0)

要做你想做的事情,你需要明白,在有人参加盲人转移的过程中,有两次来电正在进行中。您自己与远程方之间的原始呼叫以及远程方与新目的地之间的新呼叫。

除了MaximumTransferTime选项的限制之外,唯一的方法是终止&#34;新的转接呼叫是:

  1. 从远程方端(即挂断电话)
  2. 从新目的地结束(即拒绝来电)
  3. 这不能在您的UCMA应用程序中完成。因此,您必须使用MaximumTransferTime选项限制,否则解决方案会变得更加复杂。

    如果你真的想这样做,你需要写一个Lync Server application(基本上是一个SIP代理插件)。在Lync Server应用程序中,我将确定这是其中一个转移呼叫并将其分叉到您的UCMA应用程序,该应用程序超时振铃阶段并以某种特殊方式终止分支。然后,Lync Server应用程序可以&#34;检测&#34;特殊故障(或任何失败)然后将呼叫重定向到&#34; next&#34;目标直到它从目标中响起。

    执行此操作需要一些非常重要的代码,但如果需要,可以执行此操作。我帮助做了类似的事情,所以我知道上面的解决方案可以工作。