Возможен ли этот сценарий с Twilio?

Пользователи в системе записывают звук для одного из продуктов, которые у них есть у нас, и этот звук сохраняется на нашем сервере и позже используется на платформе для некоторых функций.

В настоящее время звук записывается таким образом:

Пользователь звонит на номер телефона *1234*1#, чтобы записать звук для продукта 1. Пользователь звонит на номер телефона *1234*2#, чтобы записать звук для продукта 2. Мой клиент попросил меня сделать это следующим образом:

Пользователь в панели управления и есть кнопка под названием «Запись аудио». Пользователю предлагается всплывающее окно с запросом его номера телефона, чтобы платформа могла ему позвонить. Пользователь отвечает на звонок и слышит что-то вроде «Привет, бла-бла-бла... Пожалуйста, щелкните [на панели инструментов веб-страницы] продукт, для которого вы хотите записать звук». Пользователь щелкает продукт, для которого он хочет записать звук, поэтому во время разговора машина говорит: «Запишите звук для продукта [нажатие продукта] после звукового сигнала» ... Я думаю, что описал ключ идеи. Это возможно?

Я использую PHP.


person Luis Mejía F.    schedule 03.06.2016    source источник


Ответы (2)


Евангелист разработчиков Twilio здесь.

Вы абсолютно можете сделать это с помощью Twilio. Я также дам вам несколько вариантов, так как то, что вы описываете, не так просто. Так что будем к этому стремиться.

Самая простая версия того, что вы просите сделать, - это немного изменить поток, который вы описываете. Вы можете попросить пользователя нажать кнопку продукта, для которого он хочет записать звук, а затем попросить его номер телефона. Получив это, вы можете использовать аналогичную систему, которая была встроена в этот нажмите, чтобы вызвать руководство по PHP, чтобы перезвонить пользователю и получить его запись.

Ключевым моментом будет то, что вы можете включить параметр в URL-адрес, который вы используете при создании вызова, который записывает идентификатор продукта.

$call = $client->account->calls->create(
        $_ENV['TWILIO_NUMBER'], // A Twilio number in your account
        $number, // The user's phone number
        "http://example.com/calls?productId=" . $productId // the product the user selected
    );

Затем, когда вызов соединится, Twilio сделает HTTP-запрос к этому URL-адресу, передав ему идентификатор продукта, и вы сможете обрабатывать запись так же, как и раньше.

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

После того, как вы получили номер телефона пользователя, вы можете позвонить ему, как описано в приведенном выше примере с вызовом по щелчку. Вы захотите сохранить CallSid, ​​который возвращает API, так как он понадобится вам позже.

$call = $client->account->calls->create(
        $_ENV['TWILIO_NUMBER'], // A Twilio number in your account
        $number, // The visitor's phone number
        $url
    );
$callSid = $call->sid;

URL-адрес, который вы указываете в этом вызове, должен возвращать TwiML, который говорит пользователю, чтобы он выберите элемент на странице. Что-то типа:

<Response>
  <Say loop="0">Please select the product on the page you wish to record audio for.</Say>
</Response>

Затем, когда ваш пользователь нажимает кнопку, вам нужно будет инициировать другой вызов REST API, чтобы перенаправить вызов из повторяющегося сообщения в TwiML, который обрабатывает запись. Вот тут и нужен вызов Sid из созданного вами звонка. Ваш запрос будет выглядеть примерно так:

$call = $client->account->calls->get($callSid);
$call->update(array(
         "Url" => "http://example.com/calls?productId=" . $productId
       ));

Подробнее об этом читайте в документации по изменению вызовов в реальном времени. .

Дайте мне знать, поможет ли это вообще.

person philnash    schedule 06.06.2016
comment
Спасибо @филнаш. Это именно то, что мне нужно, и это не требует большого количества кода, которого я боялся :) Приветствую Twilio! - person Luis Mejía F.; 06.06.2016
comment
Рад, что это помогает! Дайте мне знать, если я могу помочь еще! - person philnash; 06.06.2016

Это можно сделать с помощью Twilio.

Когда пользователь нажимает на запись звука и отправляет свой номер телефона, вы можете сделать исходящий вызов на номер пользователя, используя twilio rest API.

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

person gipsy    schedule 03.06.2016