2013-07-02 93 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>'; 

我只是刪除該行。這是沒有必要的。

我希望這可以幫助其他人遇到同樣的問題。