Пользователи в системе записывают аудио для одного из продуктов, которые у них есть у нас, и это аудио сохраняется на нашем сервере и позже используется в платформе для некоторых функций.
В настоящее время аудио записывается следующим образом:
Пользователь звонит на номер телефона * 1234 * 1 #, чтобы записать звук для продукта 1.
Пользователь звонит на номер телефона * 1234 * 2 #, чтобы записать звук для продукта 2.
Мой клиент попросил меня сделать это так:
У пользователя в панели приборов и есть кнопка с названием «Запись аудио».
Пользователю предлагается всплывающее окно с запросом его номера телефона, чтобы платформа могла ему позвонить.
Пользователь отвечает на вызов и слышит что-то вроде: «Привет, бла-бла-бла … Пожалуйста, нажмите [на панели инструментов веб-страницы] продукт, для которого вы хотите записать звук». Пользователь выбирает продукт, на который он хочет записать звук, поэтому в вызове машина говорит «Записать аудио для продукта [продукт нажал] после звукового сигнала» …
Я думаю, что я описал ключ идеи. Это возможно?
Я использую PHP.
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
));
Проверьте документация по модификации живых звонков для более подробной информации об этом.
Дайте мне знать, если это поможет.
Это можно сделать с помощью Twilio.
Когда пользователь нажимает на звук записи и отправляет свой номер телефона, вы можете сделать исходящий звонок на номер пользователя с помощью twilio rest api.
Как только вызывающий абонент принимает вызов, воспроизводится зацикленное сообщение с просьбой нажать на приборную панель для записи. На панели инструментов нажмите кнопку «Сделайте еще один повторный вызов twilio», чтобы обновить предыдущий вызов и перенаправить его на поток аудиозаписи.