В конечной точке обратного вызова назначения я использовал инструкция => ‘конференция’, чтобы преобразовать все входящие вызовы в конференцию:
return response()->json(array('instruction' => 'conference', 'call_sid' => $attributes->call_sid, 'from' => $attributes->to, 'timeout' => strval($timeout),
'url' => secure_url('/agent-answer?ReservationSid=' . $reservationSid)));
Но теперь маршрутизатор задач не может направить вызов другим работникам, если один работник не получает вызов, всплывающее окно вызова исчезает, и экран становится черным. Никто из другого работника не получает звонок.
Если я использую «инструкция» => «вызов», то все работает нормально. Но мне нужно использовать конференцию для обработки некоторых других функций, таких как живое прослушивание.
Как я могу исправить вышеупомянутую проблему, используя ‘инструкция’ => ‘конференция’ в конечной точке обратного вызова назначения.
Спасибо за любую помощь заранее.
Чтобы преобразовать все входящие звонки в конференцию с самого начала:
Если вы, ребята, используете команду command => ‘conference’ в конечной точке обратного вызова, то это вызовет другую проблему, такую как невозможность маршрутизации задачи нескольким работникам и т. Д.
Итак, другой способ заключается в следующем:
Установите инструкцию => ‘call’ в конечной точке обратного вызова назначения и в методе ответа оператора, необходимо изменить входящий вызов клиента на конференцию и изменить статус резервирования задачи на выполненное следующим образом:
Измените вызов клиента на конференцию и задайте резервирование для принятого в методе ответа агента:
$this->client->calls($callSid)
->update(array(
'method' => "POST",
"url" => secure_url('/call/modify-customer-call-to-conference?endConferenceOnExit=false&conferenceId=' . $taskSid),
)
);
$this->client->taskrouter
->workspaces($this->workspaceSid)
->tasks($taskSid)
->reservations($reservationSid)
->update(['reservationStatus' => 'accepted']);
Других решений пока нет …