Twilio,如何将正在进行的呼叫转移到另一个号码

Posted

技术标签:

【中文标题】Twilio,如何将正在进行的呼叫转移到另一个号码【英文标题】:Twilio, How to transfer a in-progress call to another number 【发布时间】:2017-02-15 12:44:12 【问题描述】:

如何将正在进行的呼叫转移到另一个号码。我使用的概念是在呼叫正在进行时使用更新方法并拨打我想要连接的号码并且它正在工作,但是与第一个呼叫者的连接中断/

呼叫转移过程的代码-

1.拨打电话的过程-

 <Response>
  <Dial callerId="callerid">
    <Number statusCallbackEvent="initiated ringing answered completed" statusCallback="urltohadlestatus">user_number</Number>
  </Dial> 
</Response>

2。处理转移呼叫的过程- 我已经使用update方法来转接电话了。

  function update_call1($CallSid, $admin_no) 
    $rr = array(
        "url" => "trurl?admin_no=".$admin_no,
        "method" => "POST"
    );
    $call = $this->client->calls($CallSid)->update($rr);
    return $call->to;

并使用了这个 TwiML

<Response>
        <Dial>admin_number_call_to_be_transfered</Dial>
</Response> 

这样做是转移呼叫,但是当管理员收到它时,它会断开呼叫。 当杰克打电话给珍妮时,我需要什么,现在杰克想把电话转给约翰尼,当电话转给约翰尼时,杰克应该与电话断开连接。

【问题讨论】:

【参考方案1】:

这里是 Twilio 开发者宣传员。

这里有两个选择。一旦呼叫被转移出去,如果其他呼叫者无事可做,它将挂断。有两种方法可以实现这一目标。

您可以将调用者置于&lt;Conference&gt; 中。然后,当呼叫者被转移时,另一个呼叫保留在会议室中。有一个很好的tutorial on warm transfers 使用这种技术,这可能会有所帮助。

或者,如果现在退出的呼叫一侧是 generated the call from the Twilio REST API 的一侧,您可以在 &lt;Dial&gt; 动词下方添加更多 TwiML 以使呼叫继续。例如:

<Response>
  <Dial>OTHER_NUMBER</Dial>
  <Say loop="0">You are still on the call.</Say>
</Response>

一旦另一端被转移,就会一直说“你还在通话中”。

您也可以使用action attribute for &lt;Dial&gt; 实现此目的。使用 action 属性意味着 Twilio 将向您指定的 URL 发出 webhook 请求,并使用该响应中的 TwiML 进行调用。

【讨论】:

如何断开第一个将呼叫转移到另一个号码的号码? 如果您想断开呼叫者的连接,您可以使用 REST API 修改实时呼叫。 Setting a call's status to "completed" 将断开它们。 是的,我有,但我使用的会议方法在我的情况下无法使用。 @JohnAmbrose 如果您找到了解决方案,请在这里分享? 我来这里是为了发表评论,但可能为时过早。 @JohnAmbrose 如果您有解决方案,可以在这里分享。

以上是关于Twilio,如何将正在进行的呼叫转移到另一个号码的主要内容,如果未能解决你的问题,请参考以下文章

Twilio告诉排队的呼叫者他们在队列中的哪个号码,

如何使用Twilio留下语音邮件?

如何在呼叫状态更改为响铃时自动取消 Twilio 出站呼叫

Twilio:从XML获取编号

执行 python 程序以从 twilio 服务器获取呼叫者参加电话会议时出错

Twilio - 如何将现有呼叫移至会议