python - Python Twilio 与客户端进行调用
问题描述
我正在尝试使用 twilio 和 python 拨打电话,代码如下:
account_sid = "***"
auth_token = "***"
client = Client(account_sid, auth_token)
call = client.calls.create(to=phone_number, from_="+***", record=True, url="https://handler.twilio.com/twiml/***")
print call.sid
这是该网址上的我的xml:
<Response>
<Say>Hi, Thanks for accepting our call!</Say>
</Response>
呼叫连接,但在 xml 触发后,呼叫结束。有人可以指出我做错了什么吗?
我可以通过以下方法成功拨打电话,但我需要在拨号后立即调用 callid 以将 callid 存储在数据库中以便稍后检索录音:
resp = VoiceResponse()
dial = Dial(caller_id='+1***', record="record-from-ringing")
dial.number(phone_number, url="https://handler.twilio.com/twiml/***")
resp.append(dial)
return HttpResponse(resp, mimetype='text/xml')
上面的 url 与第一个示例相同,但在播放 SAY 标签后,呼叫连接。这样做不允许我获得 callid。
有任何想法吗?
解决方案
第一个调用示例结束,因为您用完了 TwiML。您可以将您的 TwiML 放在该 TwiML 中,然后将 outbound-api 调用连接到另一方。
对于使用 Calls 资源而不是 REST API 的第二个示例,一旦录制可用,您可以使用 recordingStatusCallbackEvent 属性来获知这些详细信息。
https://www.twilio.com/docs/voice/twiml/dial#recordingstatuscallbackevent
推荐阅读
- matlab - 如何计算对象检测/识别的混淆矩阵?
- javascript - 如何使用 JavaScript 将元素从左向右移动、返回并重复?
- python-3.x - 如何在 tensorflow 2.0b 中检查/释放 GPU 内存?
- python - 如何在 Windows 上使用 selenium/python 设置便携式 Firefox?
- ansible - 循环嵌套字典
- node.js - 在哪里查看通过命令提示符安装的程序列表?
- kubernetes - Kubernetes:未设置所需标志“图像”
- vue.js - vue md-autocomplete keyup.enter 不工作
- python - 为什么“0”和“0”被评估为假?
- c - c 中的 while 或 do/while 循环中的 switch 语句