我正在使用Twilio Twiml构建一个呼叫系统,用户呼叫我的Twilio号码并需要输入代码才能参加:
呼叫.php
<?php
echo header('content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<Response>
<Play>https://mywebsite.com/welcome.mp3</Play>
<Gather numDigits="11" action="myfile.php">
<Say voice="alice">Please enter your code</Say>
</Gather>
</Response>
输入代码后,呼叫将转到 Twilio 客户端:
我的文件.php
<?php
echo header('content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
$code = $_POST['Digits'];
?>
<Response>
<Dial timeout="20" record="record-from-answer" recordingStatusCallback="https://mywebsite.com/record.php" recordingStatusCallbackEvent="in-progress completed absent">
<Client>
<Identity>myuser</Identity>
<Parameter name="code" value="<?php echo $code; ?>"/>
</Client>
</Dial>
</Response>
我希望用户在等待答案时收听保留音乐,我尝试在myfile中添加一个Enqueue标签.php:
<Response>
<Enqueue waitUrl="https://mywebsite.com/hold_music.php">support</Enqueue>
...
</Response>
hold_music.php
<?php
echo header('content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<Response>
<Play loop="0">https://mywebsite.com/hold_music.mp3</Play>
</Response>
但我有点迷茫,保持音乐正在播放,但 Twilio 客户端没有被调用。
我该如何解决它?
我需要你的帮助。
将保持音乐添加到呼叫流需要媒体资源才能在被叫方应答时播放音乐。实现此目的的一种方法是在此处的 Twilio 控制台中启用座席会议,并将初始呼叫者作为收集操作 URL 逻辑的一部分添加到该会议,然后使用该 ConferenceSID 创建座席会议参与者,并将早期媒体设置为 False。
请注意,您将无法使用原始来电显示拨号,除非该号码是经过验证的来电显示(您也可以使用帐户中的 Twilio 号码作为出站来电显示(。此外,请确保考虑到被叫方不接听的情况,这样原始呼叫者就不会留在会议上,永远听音乐。
艾伦
在hold_music.php上,您可以创建类似调用 https://www.twilio.com/docs/voice/make-calls
$call = $twilio->calls
->create("+14155551212", // to
"+15017122661", // from
["url" => "http://demo.twilio.com/docs/voice.xml"]
);
print($call->sid);
而且在接听网址上,您可以加入两个呼叫。 方法
<Response>
<Dial>
<Queue url="about_to_connect.xml">support</Queue>
</Dial>
</Response>
这是我的工作