Twilio:从录音的出站呼叫中获取参数

时间:2018-06-08 18:30:02

标签: twilio

我在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或我使用的查询字符串。有小费吗?在此先感谢!

1 个答案:

答案 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来收集结果

艾伦