TwiML响应体太大 - 错误 - 11750

时间:2017-01-10 22:53:07

标签: twilio

我正在尝试使用TwiML(上传,转换然后)播放Twilio语音邮件的.aifc格式欢迎问候语,然后再记录来自呼叫者的任何消息。我目前的代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
   <Play>
https://drive.google.com/file/*********
    </Play>
    <Say>
Press * or hang up when you have finished recording.</Say>
    <Record action="http://foo.edu/handleRecording.php" method="GET" maxLength="45" finishOnKey="*"/>
</Response>

在我尝试使用<Play>函数之前,代码已经运行..让我想知道是否在Google云端硬盘上托管文件是个问题。以前我使用<Say>,但那听起来很裤子。

任何建议都很受欢迎。

2 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

要让Twilio能够播放文件,必须在浏览器中访问此文件,并且无需在屏幕上进行任何形式的登录或确认。

此类文件的一个示例是:https://api.twilio.com/cowbell.mp3

但是在这里你可以测试它:

在您的终端中(假设您已安装curl)运行:

curl -v https://api.twilio.com/cowbell.mp3

这将输出一堆二进制信息,用于您的音乐文件。

如果您然后将相同的MP3文件上传到Google云端硬盘并尝试对可共享的网址执行相同操作,则会看到返回的是HTML文件。事实上,一个很老的HTML文件。

Twilio正在获取该文件,从而返回错误&#34; TwiML响应体太大 - 错误 - 11750&#34;因为它试图将HTML返回到你的TwiML。

希望这对你有所帮助。

答案 1 :(得分:0)

我遇到了同样的错误,音频文件为https://api.twilio.com/cowbell.mp3,并且xml响应小于1KB,并且我使用Twilio PHP SDK和此代码来生成xml和标头类型为“ text / xml”。

$response = new VoiceResponse();
$response->play('https://api.twilio.com/cowbell.mp3');

对我有用的是将$response(由php sdk生成的xml)保存在文件voice.xml中,并在调用时使用该文件的url。