status_callback为API states:" Twilio在通话结束时请求通知您的应用的网址。"
好的,所以......这个url是执行TwiML还是不执行?
我真的很困惑。
require 'twilio-ruby'
account_sid = '##'
auth_token = '##'
@client = Twilio::REST::Client.new account_sid, auth_token
@client.account.calls.create({
:from => '+18005550199',
:to => '+10000000000',
:url => 'http://thisurl.com/blahblah/outbound.xml', #plays a message to :to
:status_callback => "http://i don't know what to do here or if this url is supposed to execute TwiML"
})
答案 0 :(得分:3)
拨打电话的请求可能需要“很长”时间(就网络请求而言,这意味着“几秒钟”)。因此,API无法使用单个返回代码回答,但它会在使用回发后的URL“一段时间”后更新您的状态。尝试为您自己的应用提供一个网址,看看会有什么回来。
麻烦是为了做到这一点,你很可能需要一个已部署的应用程序,因为你需要一个公开的URL来执行此操作(localhost
将不做:-)。因此,您必须设置一个测试域,但很可能您将能够使用子域,例如beta.mydomain.com
,以便弄清楚您将获得什么。
他们在网站上展示的大多数示例似乎都是在PHP中,但是如果可以建立连接,他们在拨打电话后提供的回调似乎会在“一段时间后”被调用。
您提供的API-Link相当清楚
呼叫结束后,Twilio将发出异步HTTP请求 如果您在POST中提供了一个StatusCallback URL。这将 无论通话状态如何都会发生。
这就是您应该期望的,asynchronous HTTP request
您提供的回调链接。这是异步进行的,因为Twillio无法在(无限期)呼叫持续时间内维持http连接。因此,您应该为其提供URL
,例如
http://beta.mydomain.com/call-me-back-here
并将其连接到适当的路线(最可能是POST
- 请求)。