我在使用 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;
}
我知道现在没有队列,但这种方法只是结束了通话。
有什么建议吗?谢谢!
Twilio开发者布道者在这里。
我建议您首先查看<Enqueue>
TwiML 动词,该动词将呼叫者排队,然后查看<Queue>
,您可以在<Dial>
内使用它来将下一个用户从队列中弹出并与他们交谈。
如果您需要比这更复杂的东西,请开始阅读TaskRouter。
编辑一些示例代码:
将呼叫者排队并拨打您的座席。
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;
}
当座席连接时,拨打队列:
public function dialQueue(Request $request)
{
$response = new Twiml();
$dial = $response->dial();
$dial->queue('support');
echo $response;
}