![](/img/trans.png)
[英]Why is there an underscore following the “from” in the Twilio Rest API?
[英]Using Status_Callback on twilio Rest API
我试图在用户挂断或完成时从twilio收到通知。 我已经获得了调用用户的代码,但是调用完成后无法收到通知。
from twilio.rest import TwilioRestClient
def call():
account_sid = '************************'
auth_token = '***********************'
client = TwilioRestClient(account_sid, auth_token)
call = client.calls.create(to='+254723453841',
from_='+1 214-390-9422',
url='https://dl.dropbox.com/u/*******/acceptanceOfTerms.xml',
if_machine='Hangup', timeout=20, status_callback='https://dl.dropbox.com/u/*******/response.xml' )
print call.sid
print 'The Sid is '+ call.sid+' and the call status is '+call.status
从twilio文档http://www.twilio.com/docs/quickstart/python/rest/call-request可以包含一个用于通知的URL。 我的问题是该文件在url中的内容应该是什么,以及我如何在呼叫已完成或被拒绝等状态下收到回报。
我在那找到了答案: http : //www.twilio.com/docs/api/twiml/twilio_request
收到呼叫,从您的应用程序请求TwiML,对其进行处理并最终结束呼叫之后,Twilio将向为被叫Twilio号码(如果有)配置的StatusCallback URL发出异步HTTP请求。 通过为您的Twilio号码提供StatusCallback URL并捕获此请求,您可以确定呼叫何时结束并接收有关呼叫的信息。
请求参数
Twilio在对StatusCallback URL的异步请求中传递给应用程序的参数包括在同步TwiML请求中传递的所有参数。
跟随链接http://www.twilio.com/docs/api/twiml/twilio_request#synchronous
当Twilio收到您的一个Twilio号码的呼叫时,它将向为该号码配置的语音URL发出同步HTTP请求,并希望收到TwiML作为响应。 Twilio随请求一起发送以下参数作为POST参数或URL查询参数,具体取决于您配置的HTTP方法。
status_callback (string) – A URL that Twilio will request when the call ends to notify your app.
除了“请求”外,他们没有说它通过URL发送的内容,因此您必须反复试验才能找出答案。 它将发送回与您发送它们以打开呼叫相同的参数。
给它提供一个回调URL(可以在您控制的服务器上访问它),看看会发生什么。 希望它将传递一些参数(通过GET或POST),以标识哪个呼叫已结束。 您可能还必须嗅探远程IP地址,以确认它来自正确的人。
status_method (string) – The HTTP method Twilio should use when requesting the above URL.
有了它,您可以告诉它大概是“获取”还是“发布”。
import configobj
from twilio.rest import TwilioRestClient
import time
def call_to(url, to):
cfg = configobj.ConfigObj("config.ini")
sid = cfg["twilio"]["sid"]
auth_token = cfg["twilio"]["auth_token"]
twilio_number = cfg["twilio"]["twilio_number"]
client = TwilioRestClient(sid, auth_token)
call = client.calls.create(
to=to,
from_=twilio_number,
url=url
)
for i in range(0,10):
print i
time.sleep(5)
sid=call.sid
callinfo = client.calls.get(sid)
print callinfo.status
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.