【问题标题】:Place a Twilio call on hold and retrieve it later将 Twilio 呼叫置于保持状态并稍后取回
【发布时间】:2013-10-13 12:27:31
【问题描述】:

我正在使用 JavaScript SDK 创建一个 Twilio 应用程序。

我想实现呼叫保持功能,但我无法实现它。

当软电话发起呼叫时,保持呼叫的过程是什么? 另外,软电话接听电话的过程是怎样的?

【问题讨论】:

    标签: twilio


    【解决方案1】:

    Twilio 布道者在这里。

    有多种方法可以将呼叫置于“保持”状态。通常呼叫是来自客户端还是来自 PSTN 号码都没有关系,过程通常是相同的:

    1. 为 Twilio 提供一些 TwiML,然后将呼叫置于“保留”状态
    2. 准备就绪后,使用调用 CallSid 和 REST API 到 redirect the live call 来获得新体验。

    现在,对于将呼叫置于“保留”状态,我可以建议以下几个选项:

    一种是使用<Play> 动词并将loop 属性设置为零,这将告诉Twilio 无限期地循环该音频。当您准备好将呼叫从“保留”中移出时,您只需重定向呼叫即可。

    另一种选择是使用<Enqueue> 动词并将呼叫放入呼叫队列。然后,当您准备好时,只需将该呼叫从队列中重定向到新体验。

    希望对您有所帮助。

    【讨论】:

    • 你好德文,我正在尝试做同样的事情,将呼叫置于保持状态然后再次检索,但不是让最终用户保持它只是断开连接并在我身边播放音乐,为什么会这样?
    • @ManishGoyal 你能在一个新的 SO 问题中发布一些代码吗?很难说否则会发生什么。
    • 不适合我。我正在做的是当我接到电话时。在按钮按下 ajax 将被调用,在服务器端我使用此代码use Twilio\TwiML\VoiceResponse; $response = new VoiceResponse(); $response->enqueue('support', ['waitUrl' => 'http://com.twilio.sounds.music.s3.amazonaws.com/MARKOVICHAMP-Borghestral.mp3']);
    • 这已经有几年历史了——工作室已经出现了,还有会议......想知道这个问题是否可以根据当前信息更新 - 在这里或者可能是一篇博客文章????跨度>
    【解决方案2】:

    当软电话的用户按下 Hold 时,您可以使用 REST API 更新该呼叫,将呼叫发送到队列。

    您可以将调用重定向到带有<Enqueue> 标记的TML 文件。

    要检索到软电话的呼叫,您可以使用 CallSid 更新呼叫并将其发送回软电话用户。

    我已经在我的应用中实现了该功能,所以如果您需要帮助,请告诉我。

    【讨论】:

    • 你好 Maxi ,我正在尝试做同样的事情,将呼叫置于保持状态,然后再次检索,但不是让最终用户保持它只是断开连接并在我身边播放音乐,为什么会这样?
    • @ManishGoyal ,可能您使用了错误的 CallSid,请确保您使用的是 theirs 呼叫的 CallSid 而不是 ours 呼叫
    • 如果我已经发起呼叫,我不能将呼叫接收者置于保留状态吗?
    • 是的,您可以,但是当您暂停通话时,您必须确保 CallSid 是您要暂停的电话。对于每个通话段,您将获得一个CallSid,每个“连接”(您的应用程序和另一部手机)都有一个。例如,如果我拨出电话,该电话将关联 2 个CallSids,一个用于我的应用程序,另一个用于被叫号码,您必须使用被叫号码的CallSid 而不是您的。说得通?我过去遇到过这个问题,选择正确的CallSid 取决于您调用的实现。
    • @MaxiCapodacqua 目前正试图做到这一点,并且在更新呼叫并将其发送回软电话用户的最后部分有点挣扎。',如何实现这一目标?我可以很好地将呼叫排入队列,但不清楚如何将其返回给暂停呼叫的原始代理
    【解决方案3】:

    为答案添加更多内容,

    如果你连接了两个电话,

    [call1] &lt;enqueue&gt;queue_id&lt;/enqueue&gt;

    [call2] &lt;dial&gt;&lt;queue&gt;queue_id&lt;/queue&gt;&lt;/dial&gt;

    为任何通话添加一些暂停。喜欢,

    &lt;dial&gt;&lt;queue&gt;queue_id&lt;/queue&gt;&lt;/dial&gt;&lt;Pause length="10"/&gt;

    这样,当您需要通过&lt;Enqueue&gt; 更新通话来保持通话时,它不会立即断开连接。您需要先将 call1 更新为 &lt;enqueue&gt;,然后将第二个呼叫更新为一些长时间等待的音乐。

    当您需要取消保持通话时,您可以再次&lt;dial&gt;&lt;queue&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-22
      • 1970-01-01
      相关资源
      最近更新 更多