在电话屏幕成功和失败时获得twilio回调

时间:2013-07-30 17:50:05

标签: twilio

我有一些使用NodeJS进行呼叫筛选的工作代码,我从官方的twilio示例中进行了修改。

SNIPPIT:

response += ""
  + '<Response><Gather action="/twilio/voice/connect' + search + '" finishOnKey="any digit" numDigits="1">'
  + '<Say>Press any key to accept this call</Say>'
  + '</Gather>'
  // TODO instead of hanging up, redirect to voicemail?
  // otherwise it's left to the fallback url to pickup the voicemail and that takes a while
  + '<Hangup/>'
  + '</Response>'
  ;

如果筛选成功完成,我会收到/twilio/voice/connect?foo=bar的回电。

如果筛选失败,我还希望回复/twilio/voice/miss?foo=bar

最合适的方法是执行<Redirect>而不是<Hangup/>,然后在重定向中执行<Hangup/>吗?或者我应该在原始拨号盘中的某处statusCallback并引用呼叫ID?

在考虑在这里写出问题的可能性时,我可能已经发现了一个有效的解决方案(我会去尝试),但我仍然希望听到最佳实践方法。

1 个答案:

答案 0 :(得分:2)

根据您的建议,您应该将<Hangup>替换为<Redirect>/twilio/voice/miss?foo=bar</Redirect>。超时到期后(默认为5秒,但可以通过Gather动词的timeout属性进行配置),如果没有收到任何输入,它将转到下一条指令。

来自Twilio Docs for <Gather>

  

如果在超时之前没有收到任何输入,则转到TwiML文档中的下一个动词。

在您重定向到的URL中,您可以记录没有收集任何输入并返回您希望继续处理呼叫的任何TwiML,或返回空<Response></Response>(或挂断)以结束呼叫。

StatusCallback仅在调用完成时使用,不能再执行TwiML指令。