我正在尝试将正在进行的通话转移到另一位工作人员,但在我转接来电之前。首先,我需要保持呼叫者并在他/她可用时呼叫所需的工作人员。问题是,当我呼叫所需的工作人员时,呼叫者会自动挂起。
public function transferToAgent(){
$client = $this->init_client();
$call = $client->account->calls->get($_POST["CallSid"]);
$call->update(array(
"Url" => HTTP_BASE_URL."agent/call_controls/forward_agent?data=".$_POST['agentname'],
"Method" => "POST"
));
}
public function forward_agent(){
$agentname = $_GET['data'];
$this->gabbyvilletwilio->AgentTransfer($agentname);
}
这是我调用其他代理的代码
function AgentTransfer($agentname){
$response = new Services_Twilio_Twiml;
$response->say(
'Your call is now being transferred to your desired agent.',
['voice' => 'alice', 'language' => 'en-GB']
);
$dial = $response->dial();
$dial->client($agentname);
print $response;
}
答案 0 :(得分:0)
Twilio开发者传道者在这里。
您遇到的问题是,当您重定向呼叫的一个分支时,呼叫的另一个分支将断开连接并且没有其他操作可以通过其TwiML执行,因此在呼叫完成后会挂断。
有很多方法可以解决这个问题。当您尝试从一个代理到另一个代理的热转移时,我建议您在warm transfers in PHP上阅读本教程。它是为Laravel编写的,但我相信你可以翻译成Codeigniter。
简而言之,本教程使用<Conference>
而不是将呼叫者与<Number>
连接,以便连接不会中断。然后,您可以将呼叫者置于保持状态并邀请其他座席加入会议,在两个座席准备就绪时取消保留并转移呼叫者,而不是重定向呼叫。
如果有帮助,请告诉我。