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;
}
Другие вопросы по тегам