启用机器检测的Twilio语音api调用url和statusCallback的顺序

时间:2018-09-26 18:21:33

标签: twilio twilio-api

在进行twilio调用时,我们有一个url和一个statusCallback参数,如下所示:

client.calls
  .create({
     method: 'GET',
     statusCallback: 'https://www.myapp.com/events',
     statusCallbackMethod: 'POST',
     statusCallbackEvent: ['completed', 'answered'],
     url: 'http://demo.twilio.com/docs/voice.xml',
     to: '+14155551212',
     from: '+18668675310'
   })
  .then(call => console.log(call.sid))
  .done();

(来自here

我很难确定url是在statusCallback之前被调用还是相反?

我看到,如果在通话中启用machineDetection(给定here),如果Answered_bymachine_start,则statusCallback被称为url(提供twiml)之前

在一种情况下,我发现如果启用了machineDetection并且Answered_byhuman(即它检测到有人接听电话),我会看到{{1} }首先调用。

那么调用urlurl的预期顺序是什么? (假设我已经设置statusCallback以便正在进行的通话被调用)

1 个答案:

答案 0 :(得分:1)

这里是Twilio开发人员的传播者。

documentation on calls中,还有关于with pd.option_context('display.multi_sparse', False): print (df) Count Pclass Survived 1 0 80 1 1 136 2 0 97 2 1 87 3 0 372 3 1 119 的其他一些细节:

  

Twilio将在StatusCallbackEvent参数中指定的每个呼叫事件上向其发送异步Webhook请求的URL。如果未指定事件,则默认情况下Twilio将发送 completed

statusCallback参数可以设置为启动,响铃,应答和完成的任何一个或多个。

由于没有事件设置,因此您正在使用默认的StatusCallbackEvent事件。通话结束后应触发此事件。如果您在调用URL之前看到它触发了,您是否正在使用其他事件?

另一件事是,这些事件是与调用异步触发的。即使completed事件被触发,在您的Web服务器响应该事件时,呼叫也可能已经结束。因此,我将为通话状态进行防御性编程,而不是假设通话肯定正在进行中。

更清楚:事件是异步触发的,因此不能保证在获取ringing参数之前或之后触发answered回调。