php - Twilio 将来电添加到队列并呼叫代理
问题描述
我曾在使用 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;
}
推荐阅读
- javascript - 在 Lodash _.template() 中使用模板文字
- javascript - 处理 Facebook 中提及/标签的删除
- javascript - 将多输入插入 DB
- postgresql - 当查询条件应该从连接中排除分区表时,为什么要扫描所有分区表?
- mysql - 将 MySQL 数据迁移到 Firebase 的有效方法
- r - 在 R 中保存 for 循环的输出
- doctrine-orm - Doctrine 2 Querybuilder - 两个连接导致错误的总和结果
- google-apps-script - 当在其上方的行中写入内容时显示新行
- postgresql - 对于批量输入,如何更新匹配的行并将不匹配的行作为新行插入?
- javascript - 如何在框架中获取附加到相机的光标的世界位置