我遇到了使用PHP / laravel处理来电的情况,所以当客户拨打公司号时,响应是这种方法:
public function respondToUser()
{
$response = new Twiml();
$audio_file_path = trans('ivr_file_paths.welcome');
$response->play($audio_file_path);
$response->redirect('/ivr/call/enqueue', ['method' => 'POST']);
return $response;
}
但我接下来想要实现的是将来电置于队列中,然后如果操作员(仅一个操作员/代理人)忙,则在后台运行音乐,如果没有则连接到他。
这就是现在的样子
public function enqueueCall(Request $request)
{
$please_wait_audio_file = trans('paths.please_wait');
$please_wait_audio_file = trans('ivr_file_paths.please_wait');
$response = new Twiml();
$dial = $response->dial();
$dial->number('+number');
$response->enqueue('support', ['waitUrl' => $please_wait_audio_file]);
Log::info($response);
echo $response;
}
我知道现在没有队列,但这种方法只能结束通话..
有什么建议吗?非常感谢你!
答案 0 :(得分:2)
Twilio开发者传道者在这里。
我建议您首先查看调用者排队的<Enqueue>
TwiML verb,然后<Queue>
,<Dial>
可以在public function enqueueCall(Request $request)
{
// build up the TwiML
$please_wait_audio_file = trans('ivr_file_paths.please_wait');
$response = new Twiml();
$response->enqueue('support', ['waitUrl' => $please_wait_audio_file]);
// make the call to your agent
$client = new Client($yourTwilioAccountSid, $yourTwilioAuthToken);
$call = $client->calls->create(
$yourAgentNumber,
$yourTwilioNumber,
array("url" => "http://example.com/ivr/call/queue")
);
Log::info($response);
echo $response;
}
内使用,以便将下一个用户从队列中弹出并进行通话他们。
如果您需要更复杂的内容,请先阅读TaskRouter。
编辑一些示例代码:
将来电者排队并拨打您的座席。
public function dialQueue(Request $request)
{
$response = new Twiml();
$dial = $response->dial();
$dial->queue('support');
echo $response;
}
当座席连接时,拨打队列:
onSlideChanged() {
try{
let currentIndex = this.slides.getActiveIndex();
console.log("Current index is", currentIndex);
}catch(e){
console.log("not able to get the active index");
} }