这里是 Twilio 开发者宣传员。
您绝对可以使用 Twilio 做到这一点。我也会给你几个选择,因为你描述的不是那么简单。所以我们会继续努力的。
您要求做的最简单的版本是稍微反转您描述的流程。您可以让用户单击他们希望为其录制音频的产品的按钮,然后询问他们的电话号码。一旦你有了它,你就可以使用这个click to call PHP tutorial中内置的类似系统来回叫用户以接收他们的录音。
关键是您可以在创建记录产品 ID 的调用时使用的 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 将向该 URL 发出 HTTP 请求,同时传递产品 ID,您可以像以前一样处理记录。
但是,您可以完全按照自己的意愿行事。不过,这需要更多的工作。
收到用户的电话号码后,您可以按照上面点击通话示例的说明向他们拨打电话。您需要保存 API 返回的 CallSid,因为您以后需要使用它。
$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
));
查看documentation on modifying live calls 了解更多详情。
让我知道这是否有帮助。