在Twilio文档中,它声明您可以静态发送文本到语音呼叫:
use Twilio\Rest\Client;
$AccountSid = "";
$AuthToken = "";
$client = new Client($AccountSid, $AuthToken);
try {
$call = $client->account->calls->create(
"+15555551234",
"+15555554321",
array("url" => '/twilio/twilio.welcome.message.php')
);
echo "Started call: " . $call->sid;
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
我发现动态创建的消息有点多了。这适用于静态消息。我想做的是这样的事情:
use Twilio\Twiml;
$response = new Twiml();
$response->say('Chapeau!', ['voice' => 'woman', 'language' => 'fr']);
$AccountSid = "";
$AuthToken = "";
$client = new Client($AccountSid, $AuthToken);
try {
$call = $client->account->calls->create(
"+phoneNumber",
"+phoneNumber",
array("response" => $response)
);
echo "Started call: " . $call->sid;
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
它暗示能够在文档中执行此操作,但我无法在任何地方找到它。如果没有比创建php脚本更简单的实现,调用,然后删除以使其工作,我会感到非常震惊。但是我的生活中看到了更糟糕的事情。
答案 0 :(得分:1)
Twilio开发者传道者在这里。
我担心在接听电话时,无法将TwiML发送到Twilio来执行。您仍需要在连接呼叫时发送respond with TwiML的网址。
但是,您可以使该URL动态响应。如果您只是发送要读出的消息,那么您可以将该消息作为查询参数发送到URL中,然后在调用webhook时使用该消息。例如:
$message = "Hello! This is a message!";
$call = $client->account->calls->create(
"+15555551234",
"+15555554321",
array("url" => '/twilio/twilio.welcome.message.php?message='.urlencode($message))
);
然后,在你的webhook中:
<?php
$message = $_REQUEST['message'];
header("Content-type: text/xml");
echo "<?xml version='1.0' encoding='UTF-8'?>\n";
?>
<Response>
<Say><?php echo $message ?></Say>
</Response>
这样,您可以动态创建消息,但只能托管一个webhook端点。
让我知道这是否有帮助。
答案 1 :(得分:0)
使用Twiml bin怎么样?通过这种方式,您可以使用twilio托管的URL为您生成twiml,而不是指向您的服务器。它支持动态变量,循环等。
请参阅:https://support.twilio.com/hc/en-us/articles/230878368
然后使用这样的动态变量:
<Say>Hello {{CustomerName}}</Say>