如何在Twilio语音通话中发送自定义信息

如何在Twilio语音通话中发送自定义信息,twilio,Twilio,我成功地用twilio打了一个语音电话,如下所示: $call = $client->calls->create( $toNumber, $fromNumber, array("url" => "http://demo.twilio.com/docs/voice.xml") ); $response = new TwiML(); $response->say('Votre otp est 2234', ['voice' => 'woman'

我成功地用twilio打了一个语音电话,如下所示:

  $call = $client->calls->create(
    $toNumber, $fromNumber,
    array("url" => "http://demo.twilio.com/docs/voice.xml")
  );
$response = new TwiML();
$response->say('Votre otp est 2234', ['voice' => 'woman', 'language' => 'fr']);

$call = $client->calls->create(
    $toNumber, $fromNumber,
    $response
  );
当我尝试使用TwiML创建动态消息时,上面的代码将调用带有twilio演示消息的
$toNumber
,如下所示:

  $call = $client->calls->create(
    $toNumber, $fromNumber,
    array("url" => "http://demo.twilio.com/docs/voice.xml")
  );
$response = new TwiML();
$response->say('Votre otp est 2234', ['voice' => 'woman', 'language' => 'fr']);

$call = $client->calls->create(
    $toNumber, $fromNumber,
    $response
  );
我犯了这样一个错误:

  $call = $client->calls->create(
    $toNumber, $fromNumber,
    array("url" => "http://demo.twilio.com/docs/voice.xml")
  );
$response = new TwiML();
$response->say('Votre otp est 2234', ['voice' => 'woman', 'language' => 'fr']);

$call = $client->calls->create(
    $toNumber, $fromNumber,
    $response
  );
[HTTP 400]无法创建记录:Url参数是必需的。对于 有关详细信息,请参阅


这里是Twilio开发者福音传道者

当你打这样的电话时,你不能把TwiML发送给Twilio。您需要发送一个URL,当调用连接时,Twilio将向该URL发送HTTP请求(如原始示例中所示)。因此,要修复代码,您应该用自己的URL替换演示URL

  $call = $client->calls->create(
    $toNumber, $fromNumber,
    array("url" => $YOUR_URL_HERE)
  );
该URL可以是您自己的应用程序,或者类似于或的东西。请查看这篇文章


我注意到您也在构建一次性密码。您可能有兴趣签出。

所以每次需要加载自定义消息时,我都需要重新生成xml文件?您可以使用托管在某处的静态xml文件。但是,由于您正在发送OTP,您可能需要一些动态的东西,例如为正确的用户生成正确代码的PHP文件。@philnash因此,如果不向TwiML发出额外请求,就不可能向spech voice call发送自定义文本?关于OTP代码,有一个要求,必须有一个注册用户在Twilio方面,这是不可接受的在我的项目。因此,至少有可能发送自定义参数,并使它们以某种方式在TwiML?中动态使用?。对于语音呼叫,您确实需要处理请求并使用TwiML进行响应。您可以使用一个URL参数,然后将代码作为URL参数添加到TwiML Bin URL,并将其作为URL参数传递,从而使这一点变得更容易。