微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我们如何将出站 Twilio 语音呼叫转移到另一个号码而不会掉线? 替代方案

如何解决我们如何将出站 Twilio 语音呼叫转移到另一个号码而不会掉线? 替代方案

  • A 拨出电话给 B
  • A 想在不挂断 B 的情况下将呼叫转移到 C
  • A 然后想挂断电话,让 B 和 C 继续通话

我已阅读有关 SO 的所有类似问题。开发者布道者说从一开始就使用电话会议,或者寻找和修改呼叫的子分支。

电话会议:

  • A 创建会议(并隐式加入)
  • A 使用 Webhook 拨打 B,该 Webhook 会响应加入同一会议的说明
  • A 和 B 在会议中
  • A 想要在 URL 中添加由 TwiML 定义的 C -- 不支持
  • 此时 A 想挂断电话,让 B 和 C 继续电话会议

修改子分支不起作用,因为似乎(至少截至 2021 年 6 月)没有为直接呼叫的接收方(此处为“B”)创建的呼叫 sid。例如,使用新的 TwiML 修改直接呼叫会更改呼叫者的指令(此处为“A”),从呼叫中删除接收方 (B)。

有没有办法完成A呼叫B然后A转B到C而不掉B然后A挂断(不掉B或C)?

解决方法

这里是 Twilio 开发者布道者。

我认为这个问题和评论以一种迂回的方式开始,这并不是如何解决最初的问题。以下是我认为真正的问题以及解决方法的一些选项:

问题:在参与者 A 和 B 之间的两方通话中,A 拨打 B,我如何向呼叫者 B 发送新的 TwiML 以重定向他们?

在这种情况下,我猜测 A 已使用 Twilio Client 或 Twilio Voice SDK 向 B 发出呼叫。并且您有一个返回 TwiML to <Dial> 调用方 B 的 TwiML 应用程序。为确保获得调用方 B 支路的 CallSid,您可以使用 <Number>(或 <Client><Sip>)来提供 statusCallback URL,如下所示:

<Response>
  <Dial>
    <Number statusCallback="WEBHOOK_URL">CALLER_B_NUMBER</Number>
  </Dial>
</Response>

在状态回调的 webhook 请求的参数中,您将收到一个 CallSid,它标识对 B 的呼叫的出站支路,以及一个 ParentCallSid,标识呼叫的初始支路A 连接的呼叫。

然后您可以使用此 CallSidupdate the call using the Calls resource 并将调用方 B 重定向到新的 TwiML。

请注意,这会断开调用方 A,除非您在 <Dial> 之后或在对 URL action attribute 的网络钩子的响应中提供进一步的 TwiML。例如:

<Response>
  <Dial>
    <Number statusCallback="WEBHOOK_URL">CALLER_B_NUMBER</Number>
  </Dial>
  <Say>Caller B either hung up or you successfully transferred them away.</Say>
</Response>

<Response>
  <Dial action="/after-outbound-dial">
    <Number statusCallback="WEBHOOK_URL">CALLER_B_NUMBER</Number>
  </Dial>
</Response>

然后在 /after-outbound-dial 中返回:

<Response>
  <Say>Caller B either hung up or you successfully transferred them away.</Say>
</Response>

action URL 的请求将包含一个 parameter for DialCallStatus 来让您知道呼叫的结果是什么,以便您可以根据是否已接听、忙碌、无 - 返回不同的结果回答等

替代方案

我们在评论中讨论了使用会议来执行此操作。虽然会议更昂贵,但它可以为被转移的人提供更好的体验。在我上面描述的情况下,转移呼叫者 B 将是从与呼叫者 A 交谈到下一个 TwiML 的突然变化。使用电话会议并将第三个合作伙伴 C 拨入通话可以实现热转接,其中来电者 A 可以介绍 C,并在掉线之前填写 C 了解来电者 B 的情况。

这仅适用于您在人与人之间转移的情况。如果您需要将 B 转移到自动化项目,例如电话后调查,那么我上面的回答就足够了。只是值得考虑一下会议,以防您将来有想要探索的暖转场景。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。