2013-07-02 80 views
1

我使用twimlbin服务来测试Twilio XML的简单一点:Twilio - 实录属性错误拨号

<?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> 

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

回答

4

听起来像Twilio向您的动作URL发出请求时,您的响应不包含任何TwiML。如果电话继续,您应该添加一些Twiml - 可能只是一个<Hangup>,或者甚至应该做一个空的<Response/>。请参阅<Dial>on Twilio's website的文档。

2

我有这个相同的问题,这里是我如何解决它。只需将此标头添加到您的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>'; 

我只是删除该行。这是没有必要的。

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