Twilio可以实现这种情况吗?

时间:2016-06-03 14:43:40

标签: php audio webrtc twilio twilio-php

系统中的用户为他们与我们合作的产品录制音频,并且音频保存在我们的服务器中,稍后在平台中用于某些功能。

目前,音频以这种方式录制:

用户拨打电话号码* 1234 * 1#以录制产品1的音频。 用户拨打电话号码* 1234 * 2#以记录产品2的音频。 我的客户让我这样做:

仪表板中的用户,有一个名为“Record Audio”的按钮。 用户弹出提示询问他的电话号码,因此平台可以给他打电话。 用户接听电话并听到“Hello blah blah blah blah ...请点击[在网页仪表板中]您要录制音频的产品” 用户点击他想要录制音频的产品,所以在通话中,机器显示“在哔哔声后记录产品的音频[产品点击]”... 我想我已经描述了这个想法的关键。这可能吗?

我正在使用PHP。

2 个答案:

答案 0 :(得分:1)

这可以通过Twilio完成。

当用户点击录制音频并提交他/她的电话号码时,您可以使用twilio rest api拨打该用户号码。

一旦主叫方接受该呼叫,就播放一条循环消息,要求他/她点击仪表板进行记录。在仪表板上,单击对twilio的另一个休息呼叫以更新上一个呼叫以路由到您的录音流程。

答案 1 :(得分:1)

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;

您在此次通话中提供的网址应返回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

让我知道这是否有帮助。