当我使用twilio进行持续通话时如何呼叫另一名工作人员

时间:2017-02-27 09:51:35

标签: php codeigniter twilio

我正在尝试将正在进行的通话转移到另一位工作人员,但在我转接来电之前。首先,我需要保持呼叫者并在他/她可用时呼叫所需的工作人员。问题是,当我呼叫所需的工作人员时,呼叫者会自动挂起。

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;
}

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

您遇到的问题是,当您重定向呼叫的一个分支时,呼叫的另一个分支将断开连接并且没有其他操作可以通过其TwiML执行,因此在呼叫完成后会挂断。

有很多方法可以解决这个问题。当您尝试从一个代理到另一个代理的热转移时,我建议您在warm transfers in PHP上阅读本教程。它是为Laravel编写的,但我相信你可以翻译成Codeigniter。

简而言之,本教程使用<Conference>而不是将呼叫者与<Number>连接,以便连接不会中断。然后,您可以将呼叫者置于保持状态并邀请其他座席加入会议,在两个座席准备就绪时取消保留并转移呼叫者,而不是重定向呼叫。

如果有帮助,请告诉我。