Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在会议之间移动呼叫UCMA4_C#_Lync_Ucma - Fatal编程技术网

C# 在会议之间移动呼叫UCMA4

C# 在会议之间移动呼叫UCMA4,c#,lync,ucma,C#,Lync,Ucma,我想在一个会议中接听一个电话,然后将其转移到另一个会议,并且仍然保持对该电话的SIP控制。 我尝试将用户从第一个会议中弹出,然后加入另一个会议,但当我弹出用户时,呼叫会终止并丢失。您必须以BackToBackCall(B2B)而不是普通呼叫的形式获得呼叫。B2B调用意味着您的UCMA应用程序在调用时就像一个中间人:一方(称为“分支”)将转到原始调用,另一方将转到您的会议,但所有控制消息都会通过您的应用程序传递 由于您可以控制整个通话,因此您可以将B2B通话的一段替换为另一段,从而允许您在会议之间

我想在一个会议中接听一个电话,然后将其转移到另一个会议,并且仍然保持对该电话的SIP控制。
我尝试将用户从第一个会议中弹出,然后加入另一个会议,但当我弹出用户时,呼叫会终止并丢失。

您必须以
BackToBackCall
B2B
)而不是普通呼叫的形式获得呼叫。
B2B
调用意味着您的UCMA应用程序在调用时就像一个中间人:一方(称为“分支”)将转到原始调用,另一方将转到您的会议,但所有控制消息都会通过您的应用程序传递

由于您可以控制整个通话,因此您可以将
B2B
通话的一段替换为另一段,从而允许您在会议之间移动通话

一些资源:


第二个资源链接似乎很有希望,但正如它所说,“请记住,此过程是不可重复的。当您使用AudioVideomUsions.BeginTransfer转接电话时,您将其从背靠背安排中拔出。”。我控制的呼叫已经是B2B呼叫,但是如何替换呼叫分支?据我所知,呼叫段是只读的。你最好的办法是研究一种叫做“自我转移”的东西:不要转移到下一次会议,而是转移回你自己的应用程序。这会给你一个新的来电,你可以用它建立一个新的B2B呼叫到另一个会议。我现在正在摆弄一个自我转移,将它从一个会议转移到另一个会议。它从ConfB.OnIncomingCall(带有应用程序上下文)开始,调用ConfA的sipuri,但ConfA.OnIncomingCall将其确定为新调用,这意味着我为其生成了一个新的调用ID,我不希望。。。我是否可以将对象作为ApplicationContext放置在B2BUA上??如果我能让我的应用程序在第二次会议的传入时识别现有呼叫,那么我想我有了解决方案。为此,我使用相关ID向自传输添加了一个额外的SIP头。端点上的传入呼叫处理程序检查此头:如果有,找到相关的现有处理程序,否则就创建一个新的应用程序。那么,您实际上是在自己创建一个“应用程序上下文”吗?但这需要一个包含任何队列中所有调用的列表,您可以在该列表上进行调用查找,以查看该调用是否存在于任何其他队列中,不是吗?顺便问一下,如何将此附加SIP头添加到B2B呼叫?