我在Bin中有这样的TwiMl:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say voice="alice">Hello {{Name}}. You have ticket number {{TicketNum}} so please solve it.</Say>
</Response>
然后我使用hmac身份验证并启动脚本以使用附加了查询字符串的以下TWIML Bin url进行调用: twiml_link = “https://handler.twilio.com/twiml/EHxxxxxxxxxxx?Name=Bob&TicketNum=45”
我接到Bob和Ticket 45的电话。之后,我需要提醒我们的事件跟踪系统,Bob已经确认了机票45并且“在它上面”。我不能因为架构将某些东西发回给我的系统。我需要再次出去查询twilio。
所以我编写了这个python片段来点击Twilio API来查找所有已完成的调用。 :
from twilio.rest import Client
import sys, os
# Your Account Sid and Auth Token from twilio.com/console
account_sid = os.environ['TWILIO_ACCOUNT_SID']
auth_token = os.environ['TWILIO_AUTH_TOKEN']
client = Client(account_sid, auth_token)
calls = client.calls.list(status=completed)
for call in calls:
print(call.sid)
print(call.to)
print(call.status)
print(call.start_time)
print(call.duration)
print(call.annotation)
print(call.uri)
这些命令都不能打印Bob或票号或Twiml Bin URL或我使用的查询字符串。有小费吗?在此先感谢!
答案 0 :(得分:1)
这种方法不是确定目标方是否接听电话并且在没有“人体检测”的情况下确认该消息的可靠方法。您可以在此处找到更多详细信息。
AMD的替代品 - “人体检测” https://support.twilio.com/hc/en-us/articles/223132567-Can-Twilio-tell-whether-a-call-was-answered-by-a-human-or-machine-#alternatives-to-amd
被拨打方可能是语音信箱系统,因此如果您的目标是确定确认该机票的人员,则查询REST API以查看呼叫状态是否已完成将会产生误导性结果。
您可以使用Twilio函数https://support.twilio.com/hc/en-us/articles/115007737928-Building-apps-with-Twilio-Functions来收集结果
艾伦