Twilio将来电添加到队列并调用代理

时间:2018-06-11 17:51:00

标签: 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;
}

我知道现在没有队列,但这种方法只能结束通话..

有什么建议吗?非常感谢你!

1 个答案:

答案 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");
     }   }