草庐IT

go - Twilo如何处理拨号超时

coder 2023-07-01 原文

我需要记录我的客户的声音,他们试图联系我们的一位顾问。这应该在超时时发生

  1. 用户调用 -->Number-----> 如果超时 --> say(Record your message)--> 在录音结束时它应该调用 recordingStatusCallBack

  2. 用户调用 --> 号码 --> 应答调用成功 --> 在调用结束时它应该调用方法。不确定我们应该将操作放在数字 (statuscallback) 还是拨号操作动词的什么位置?

为了实现这一点,我尝试使用下面的 twiML

<Response>
   <Dial callerId="+123124" record="true" timeout="10">
  <Number 
  statusCallback="https://<123134>.ngrok.io/ttwilio/callStatusCallBack" 
  statusCallbackEvent="completed" 
  statusCallbackMethod="POST">+1232424/Number>
 </Dial> 
 <Say>Please Record you message</Say> 
   <Record 
     recordingStatusCallback=
      "https://<123134>.ngrok.io/ttwilio/callStatusCallback" 
       recordingStatusCallbackMethod="POST"/>
</Response>

这在超时时工作正常,但当通话成功结束时,twilio 仍然要求用户“请记录您的消息”

如何完成这个任务?

最佳答案

此处为 Twilio 开发人员布道师。

<Dial> 的行为当没有 action attribute 时是在调用完成后继续其下方的 TwiML,无论是通过超时还是通过成功调用。

如果您将 URL 添加为 action属性,则行为发生变化并且 <Dial>将始终向 action 提出请求调用完成后的 URL。不过,这里的重要区别在于,将使用 DialCallStatus parameter 调用 URL。那将是“已完成”、“已回答”、“忙碌”、“未回答”、“失败”和“已取消”之一。通过这种方式,您可以检查调用是否忙或未接听并返回 TwiML 以记录消息。或者如果调用成功完成,您可以返回 <Hangup/> .

让我知道这是否有帮助。

关于go - Twilo如何处理拨号超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49284374/

有关go - Twilo如何处理拨号超时的更多相关文章

  1. ruby-on-rails - Enumerator.new 如何处理已通过的 block ? - 2

    我在理解Enumerator.new方法的工作原理时遇到了一些困难。假设文档中的示例:fib=Enumerator.newdo|y|a=b=1loopdoy[1,1,2,3,5,8,13,21,34,55]循环中断条件在哪里,它如何知道循环应该迭代多少次(因为它没有任何明确的中断条件并且看起来像无限循环)? 最佳答案 Enumerator使用Fibers在内部。您的示例等效于:require'fiber'fiber=Fiber.newdoa=b=1loopdoFiber.yieldaa,b=b,a+bendend10.times.m

  2. ruby - 简单获取法拉第超时 - 2

    有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url

  3. ruby-on-rails - Rails 优雅地处理超时 session ? - 2

    使用rails4,ruby2。我在rails配置中为我的cookiesession设置了30分钟的超时时间。问题是,如果我转到表单,让session超时,然后提交表单,我会收到此ActionController::InvalidAuthenticityToken错误。如何在Rails中优雅地处理这个错误?比如说,重定向到登录屏幕? 最佳答案 在您的ApplicationController:rescue_fromActionController::InvalidAuthenticityTokendoredirect_tosome_p

  4. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  5. Ruby 在 n *milli* 秒后超时一段代码 - 2

    在Ruby中,我需要在n毫秒秒后暂停一段代码的执行。我知道RubyTimeout库支持秒的超时:http://ruby-doc.org/stdlib/libdoc/timeout/rdoc/index.html这可能吗? 最佳答案 只需为超时使用十进制值。n毫秒的示例:Timeout::timeout(n/1000.0){sleep(100)} 关于Ruby在n*milli*秒后超时一段代码,我们在StackOverflow上找到一个类似的问题: https:

  6. Ruby - 如何处理子类意外覆盖父类(super class)私有(private)字段的问题? - 2

    假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案

  7. ruby-on-rails - 我如何处理 View 中的 nils? - 2

    我设置了以下模型:classContact:no_freq?validates_presence_of:freq,:if=>:no_band?protecteddefno_freq?freq.nil?enddefno_band?band.nil?endendclassBand当我在我的新View中输入频率时,如果输入了频率,则不允许指定波段。这在我的其他观点中造成了问题,因为band现在为零。我如何允许不指定band并在我的index和showView中显示为空,然后在editView中允许在以后指定一个。通过执行以下操作,我已经能够让我的索引显示空白:contact.band&&co

  8. ruby-on-rails - Textmate 'Go to symbol' 相当于 Vim - 2

    在Railcasts上,我注意到一个非常有趣的功能“转到符号”窗口。它像Command-T一样工作,但显示当前文件中可用的类和方法。如何在vim中获取它? 最佳答案 尝试:helptags有各种程序和脚本可以生成标记文件。此外,标记文件格式非常简单,因此很容易将sed(1)或类似的脚本组合在一起,无论您使用何种语言,它们都可以生成标记文件。轻松获取标记文件(除了下载生成器之外)的关键在于格式化样式而不是实际解析语法。 关于ruby-on-rails-Textmate'Gotosymbol

  9. ruby - 如何处理树顶左递归 - 2

    我有一个grammarfile对于我正在尝试构建的一种新的通用编程语言。我正在努力使该语言健壮且易于使用(它深受Ruby等启发),为此我引入了一些左递归规则。我看到一些例子似乎表明了以下左递归规则:rulel_recursel_recurse/'somethingelse'end可以通过将其更改为非左递归:ruler_recurse'somethingelse'/r_recurseend对我来说,这看起来会有不同的问题并且仍然会失败。我是对的,还是这会“奏效”?我试图(查找和)消除的特定左递归可以在这个grammarfile中找到.我不确定哪些规则受到影响,但至少somewerepoi

  10. ruby - Ruby 如何处理嵌套类的继承? - 2

    在下面的测试用例中:classPackageclassComponentdefinitializep[:initialize,self]endendendclassPackage_A结果:[:initialize,#]#[:initialize,#]#如何获取特定的Package_A.component和Package_B.component? 最佳答案 ClassComponent是在Package中声明的,所以看起来是正确的。::指示在Package_A范围内查找名称Component。由于那里没有Component,它会查找父

随机推荐