Twilio Task Router не работает должным образом для конференции - PullRequest
0 голосов
/ 30 апреля 2018

В конечной точке обратного вызова назначения я использовал инструкцию => 'конференция' для преобразования всех входящих вызовов в конференцию:

return response()->json(array('instruction' => 'conference', 'call_sid' => $attributes->call_sid, 'from' => $attributes->to, 'timeout' => strval($timeout),
            'url' => secure_url('/agent-answer?ReservationSid=' . $reservationSid)));

Но теперь маршрутизатор задач не может маршрутизировать вызов другим работникам, если один работник не получает вызов, всплывающее окно вызова исчезает и экран становится черным. Никто из других работников не получает звонок.

Если я использую «инструкция» => «вызов», то все работает нормально. Но мне нужно использовать конференцию для обработки некоторых других функций, таких как живое прослушивание.

Как я могу исправить вышеуказанную проблему, используя 'инструкция' => 'конференция' в конечной точке обратного вызова назначения.

Спасибо за любую помощь заранее.

1 Ответ

0 голосов
/ 10 мая 2018

Чтобы преобразовать все входящие звонки в конференцию с самого начала: Если вы, ребята, используете команду command => 'conference' в конечной точке обратного вызова, то это вызовет другую проблему, например, невозможность маршрутизации задачи для нескольких работников и т. Д. Итак, другой способ заключается в следующем:

Установить инструкцию => 'вызов' в конечной точке обратного вызова назначения и в методе ответа оператора, необходимо изменить входящий вызов клиента на конференцию и изменить статус резервирования задачи на выполненное следующим образом:

Измените вызов клиента на конференцию и задайте резервирование для принятого в способе ответа агента:

$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']);
...