包含S3签名URL的TwiML在语音通话中出现错误。

问题描述 投票:0回答:1

我正试图调用以下内容。

twilio api:core:calls:create \
    --method GET \
    --url https://xxxxxxxxx.execute-api.us-east-1.amazonaws.com/play?job=1589297170910&record=2&username=992b512f-130d-4da6-a9d3-a1a4227f82f5 \
    --to +19995551212 \
    --from +12345678901

SID                                 From          To            Status  Start Time
CA283a5deadbeefcafe0c89e861d  +12345678901  +19995551212  queued  null      

端点在... --url 上面的参数返回TwiML,响应是这样的。

HTTP/1.1 200 OK
Apigw-Requestid: M8x5Wgf9IAMEVmg=
Connection: keep-alive
Content-Length: 1154
Content-Type: text/xml
Date: Fri, 22 May 2020 20:04:12 GMT

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Play>https://s3.amazonaws.com/<my bucket name>/private/jobs/992b512f-130d-4da6-a9d3-a1a4227f82f5/1589297170910/2.mp3?AWSAccessKeyId=ASIA23STQFMZWXGL6GU2&Signature=3trMYp%2Fzc6ZV4FNRUc6%2B2Exen3k%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEPT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIQDJyUkf%2FBrHEVBl2k3rKHpaAwyaObsObFqTxp53P%2FKghQIgHPH8Idf9cGZ4XR9zxbs%2FgbEuPmeOPO3%2FbNQQP%2F6LOf8q8QEITRAAGgw3NDY0MjU2OTA5MzEiDBK45eAIlYDHS04WHirOASI41mSxg6kEefiyQkZ969RopMhCFBdsXrUZWefUHrRqkFL209n%2BNLV0gKhAmyG8vvlRON74Zy3J05aIQ79%2BxFwYfKq9HLhvFskU%2B58Q8QmZlZtiPQ0KSGI2OuMceXaroRlVdfEBUJgMwR0EoXYGbf9XlXLgbK8%2BpLLtQ7MNAE4bTNE1%2FccQgq33s1wZfKyUKQGjeZkZEU2ISvDCvvUTsRgLMT9zM1thLszgm7eoaKv%2BdnfeFTKAEQDNaIFtGUwAihm5yaW6XphY8sUtccJoMLvgoPYFOuABojlUjGBEbxcXkk6nIMs6f1KYxc6USarhca13DgbrGnTdGG0CeD3KW9OByw2Cv6A7gyfAgAjSBzDyfC%2FScaYs6i4WdnZNO190d%2F3PoPMnL2kcxqRiWDo9lVXqGa03RekFKWgJGxxZ2nUXffBw9twDmZ%2BElVOZv2M2lhxOR8f06JbX3BtP0%2BE5RNxpRx0HUxeakZzrOcSqpS9OEESYB0E4UtOzrSqPJ0K7V%2B%2FhOldIoAyv%2Bdce1TZgrjgyMMjxemxQeKrtW7RSlXLh2S3SGtN7O2eg06h4YkoikzSWXsmfAOw%3D&Expires=1590782652</Play>
</Response>

上面元素中的URL是一个亚马逊S3签名的MP3文件的URL。如果直接在浏览器中播放,它可以正常工作。它也为MP3文件设置了正确的MIME类型------。audio/mpeg:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Length: 19010
Content-Type: audio/mpeg
Date: Fri, 22 May 2020 20:08:52 GMT
ETag: "68e63d2845abc6ed528445ab22de68f6"
Last-Modified: Fri, 22 May 2020 19:32:48 GMT
Server: AmazonS3
x-amz-id-2: M/ic62y1nbUEn4PA1THXqx4rdEpKV70C8L6EifAlREOnf7CaG+frpICoaStqn9fr4T9saEJu9qk=
x-amz-request-id: 118DFC99C7EA2F66
[...binary data truncated...]

当我接到电话时,播放的信息是 "我们很抱歉,发生了一个应用程序错误"。我找不到任何更多的调试信息。

我在这里做错了什么?是否有使用querystrings或urlencoded字符串的问题?

twilio twilio-api twilio-twiml
1个回答
0
投票

我未能对我的TwiML进行XML-encode。<Play> 内容。一个简单的字符串替换,从 &&amp;.

© www.soinside.com 2019 - 2024. All rights reserved.