Twilio - 拨打记录属性错误

时间:2013-07-02 13:43:36

标签: twilio

我正在使用twimlbin服务来测试一小段Twilio xml:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>This call may be recorded for quality purposes</Say>  
<Dial record="true" action="http://testmyapp.ca/sendmail.php" method="GET">
    555-404-3200
</Dial>
</Response>

在动作网址上,我收到录音的网址和持续时间,并发送电子邮件给自己。一切顺利,电子邮件已发送,但手机上的语音表示发生了应用程序错误。错误是12100错误(http://www.twilio.com/docs/errors/12100)。从调试器服务中我得到“文档第1行的错误:文件过早结束。请确保响应主体是有效的XML文档。”我没有做任何事情,只是从我的php文件发送电子邮件 - 我应该从我的php文件返回对Twilio的回复吗?我已经注释掉sendmail.php的任何输出我收到了我期望的GET参数的电子邮件,但语音仍然说发生了应用程序错误。任何帮助非常感谢。

2 个答案:

答案 0 :(得分:4)

听起来,当Twilio向您的操作网址发出请求时,您的响应不包含任何TwiML。如果要继续调用,您应该添加一些Twiml - 可能只是<Hangup>,甚至是空<Response/>应该这样做。请参阅<Dial> on Twilio's website的文档。

答案 1 :(得分:3)

我有同样的问题,这就是我如何解决它。只需将此标题添加到mail.php文件中:

<?php
/**
 * This section ensures that Twilio gets a response.
 */
header('Content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<Response></Response>'; //Place the desired response (if any) here.

就是这样。无需回复。在该标题之后,出现发送电子邮件的部分。

我在某处读到你需要一个Hangup响应。没必要。 另外,我应该提一下我的mail.php文件以这样的行结束

echo '</Response>';

我刚刚删除了该行。没必要。

我希望这可以帮助其他人遇到同样的问题。