【问题标题】:Moving calls between conferences UCMA4在会议之间移动呼叫 UCMA4
【发布时间】:2014-10-17 14:02:11
【问题描述】:

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

【问题讨论】:

    标签: c# lync ucma


    【解决方案1】:

    您必须以BackToBackCall (B2B) 的形式接听电话,而不是普通电话。 B2B 呼叫意味着您的 UCMA 应用程序充当呼叫的中间人:一侧(称为“分支”)将转到原始呼叫,另一侧将转到您的会议,但所有控制消息都流经您的应用程序。

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

    一些资源:

    【讨论】:

    • 第二个资源链接似乎很有希望,但是,正如它所说,“请记住,这个过程是不可重复的。当您使用 AudioVideoMcuSession.BeginTransfer 转移呼叫时,您将其从后面拉出来背靠背安排”。我控制的呼叫已经是 B2B 呼叫,但是如何替换呼叫支路?据我所知,调用段是只读的。
    • 最好的办法是研究一种叫做“self-transfer”的东西:不要转移到下一个会议,而是转移回你自己的应用程序。这为您提供了一个新的来电,您可以使用它建立一个新的 B2B 呼叫到另一个会议。
    • 我现在正在摆弄自我转移以将其从一个会议转移到另一个会议。它来自 ConfB.OnIncomingCall(带有应用程序上下文),调用 ConfA 的 sipuri,但 ConfA.OnIncomingCall 将其确定为新呼叫,这意味着我为其生成了一个新的呼叫 ID,我不希望...我可以以某种方式将对象作为 ApplicationContext 放在 B2BUA 上吗?如果我可以让我的应用程序在第二次会议传入时识别现有呼叫,那么我认为我有解决方案。
    • 为此,我将一个额外的 SIP 标头添加到具有相关 ID 的自传输中。端点上的传入呼叫处理程序检查此标头:如果存在,则查找相关的现有处理程序,否则创建一个新的。
    • 所以你实际上是在自己做一个“应用程序上下文”?但这需要一个包含任何队列中所有呼叫的列表,您可以对其进行呼叫查找以查看呼叫是否存在于任何其他队列中,不是吗?顺便说一句,你如何将这个额外的 SIP 标头添加到 B2B 呼叫中?
    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多