首页 > 解决方案 > 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。

有任何想法吗?

标签: pythontwilio

解决方案


第一个调用示例结束,因为您用完了 TwiML。您可以将您的 TwiML 放在该 TwiML 中,然后将 outbound-api 调用连接到另一方。

对于使用 Calls 资源而不是 REST API 的第二个示例,一旦录制可用,您可以使用 recordingStatusCallbackEvent 属性来获知这些详细信息。

https://www.twilio.com/docs/voice/twiml/dial#recordingstatuscallbackevent


推荐阅读