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;
}
Я знаю, что сейчас нет очереди, но этот метод просто завершает вызов.
Какие-либо предложения? Большое спасибо!
1 ответ
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;
}