php - 如何在电话等待 Twiml 中的应答客户端时播放保持音乐
问题描述
我正在使用 Twilio Twiml 构建一个呼叫系统,其中用户呼叫我的 Twilio 号码并需要输入要参与的代码:
callip.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.php中添加一个 Enqueue 标签:
<Response>
<Enqueue waitUrl="https://mywebsite.com/hold_music.php">support</Enqueue>
...
</Response>
保持音乐.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 控制台中启用代理会议,并将初始呼叫者添加到该会议作为 Gather 操作 URL 逻辑的一部分,然后使用该 ConferenceSID创建一个代理会议参与者,并将 Early Media 设置为 False。
请注意,您将无法使用原始 CallersID 进行拨号,除非该号码是经过验证的 CallerID(您也可以使用您帐户中的 Twilio 号码作为出站 CallerID)。此外,请确保考虑到被叫方不应答的情况,因此原始呼叫者不会留在会议上,永远听音乐。
艾伦
推荐阅读
- java - 逐步状态实施河内塔Java
- r - 加载大于 8GB 的大型数据集后,R 运行速度非常慢
- sql - 更改正则表达式中的子字符串分隔符,不会返回相同的结果
- revit-api - 如何通过 Revit API 中的 Execute 方法访问 Revit 应用程序?
- entity-framework - 将列表从视图传递到控制器
- python - 如何获取python列表中的第一个元素并检查它是否为None?
- python - matplotlib.pyplot 非数字条形图
- php - Mysql 错误“无法建立连接,因为目标机器主动拒绝了它。”
- sql-server - 删除具有相同订单号的多条记录
- python - 在 VS Code 内的 python 脚本中调用 ADLS 数据