我试图在Twilio.com hello monkey脚本中添加一个新数字。当我按1,2或0重新启动时,它不会导航到语音信箱或直接呼叫。
这是我的代码:
第1步
<?php
// now greet the caller
header("content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<Response>
<Gather numDigits="1" action="handle.php" method="POST">
<Play>http://morxmedia.com/phone/main.mp3</Play>
</Gather>
</Response>
第2步
<?php
// if the caller pressed anything but 1 or 2 send them back
if($_REQUEST['Digits'] != '1' and $_REQUEST['Digits'] != '2' and $_REQUEST['Digits'] != '0') {
header("Location: step1.php");
die;
}
// otherwise, if 1 was pressed we Dial 3105551212. If 2
// we make an audio recording up to 30 seconds long.
header("content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<Response>
<?php if ($_REQUEST['Digits'] == '1') { ?>
<Dial>+13105551212</Dial>
<Say>The call failed or the remote party hung up. Goodbye.</Say>
<?php } elseif ($_REQUEST['Digits'] == '2') { ?>
<Play>http://morxmedia.com/phone/tech-support.mp3</Play>
<Record maxLength="30" action="aftervm.php" />
<?php } elseif ($_REQUEST['Digits'] == '0') { ?>
<Dial>+13105551212</Dial>
<Say>The call failed or the remote party hung up. Goodbye.</Say>
<?php } ?>
</Response>
答案 0 :(得分:3)
使用操作的完整网址:
<Gather numDigits="1" action="handle.php" method="POST">
似乎在播放代码中使用完整网址会导致Twilio将handle.php
视为http://morxmedia.com/phone/handle.php
(此时此时不存在)。
当我运行您的示例代码时,我收到了一个应用程序错误(因为handle.php
不存在)。我的猜测是你将“后备”网址设置为主菜单,这就是引起混淆的原因。
更新:应该注意的是,仅使用http://morxmedia.com/phone/tech-support.mp3
导致相对路径的奇数重置,使用hello monkey mp3文件不会。也许一些奇怪的服务器配置会混淆Twilio HTTP客户端(导致路径问题,并继续请求step1.php
)。