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

问题描述:

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

代码为转移呼叫 -

.process拨号的过程呼叫 -

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

。处理以传送呼叫 - 我已使用更新方法传送呼叫。

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> 

这样做是转移呼叫,但是当管理员接收到它,它断开呼叫。 而我需要什么时,杰克打电话给珍妮,现在插孔想要转移到Jhonny的呼叫,当电话转移到Jhonny,杰克Shound从电话断开。

Twilio开发者传道这里。

您有两种选择。一旦呼叫转移,另一个呼叫者将会放弃,如果没有其他事情要做。有两种方法可以实现这一点。

您可以将来电者拨打<Conference>。然后,当来电转移时,另一个电话将保留在会议室中。有一个很好的tutorial on warm transfers使用这种技术,这可能会有所帮助。

或者,如果现在辍学的呼叫方是generated the call from the Twilio REST API,您可以在<Dial>动词之下添加更多的TwiML,以便继续通话。例如:

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

一旦另一端被转移,只会继续说“您仍在通话中”。

您也可以通过action attribute for <Dial>实现此目的。使用action属性意味着Twilio将向您指定的URL发出webhook请求,并使用该响应中的TwiML继续进行呼叫。

+0

如何断开将呼叫转接到另一个号码的第一个号码? –

+0

如果要断开呼叫者的连接,可以使用REST API修改实时呼叫。 [将通话状态设置为“已完成”](https://www.twilio.com/docs/api/rest/change-call-state#list-get-example-2)将断开连接。 – philnash

+0

好吧,它会断开所有发起呼叫转移的主叫方或主叫方。 而我需要的是例如 - A呼叫B,他们说了一段时间,然后A将呼叫转接到C,那么我怎样才能断开A与呼叫的通话,让B和C的其余部分在通话中断开。 –