twilio的StatusCallback参数有什么意义?

时间:2014-05-02 00:20:43

标签: twilio

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"
})

1 个答案:

答案 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 - 请求)。