如何显示Twilio Gather方法的输入数字?

时间:2016-03-28 23:25:27

标签: ruby twilio

我是Twilio的新手并且编码一般,而且我在使用Gather方法访问params时遇到了问题。我正在使用Sinatra来编写这个应用程序。基本上,我的应用程序正在尝试执行以下操作:

  1. 用户输入他们的号码和表格的延迟。
  2. 我的twilio号码会在指定的延迟后拨打该号码。
  3. 语音会要求用户使用Gather方法输入数字。
  4. 通话将被重定向到新的网址,其中语音将从1到输入的数字进行计数。
  5. 我想要一个显示在下面的历史记录日志,它显示表格中的电话号码和延迟,以及通话期间收集的号码参数。我可以在Twilio日志中看到数字,但不知道如何访问它。在index.erb文件中显示此信息的最佳方法是什么?

      <% unless @calls.nil? %>
          <% @calls[1..10].each do |call| %>
          <tr>
              <td><%= call.start_time %> </td>
              <td><%= call.to_formatted %> </td>
              <td><%= delay input %></td>
              <td><%= number inputted %></td>
          </tr>
          <% end %>
      <% end %>
    

    提前致谢。

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

您只能访问来自呼叫中<Gather>的输入数字,因此如果您想稍后阅读此内容,则需要将值保存在您自己的数据库中并自行协调数据。

您的应用看起来有点像这样:

<Gather>数字的操作:

post "/calls" do
  twiml = Twilio::TwiML::Response.new do |r|
    r.Gather action: "/process_gather" do |g|
      g.Say "Please enter a digit and I will count up to it."
    end
  end
  twiml.to_xml
end

然后您可以收到Digits,将它们与呼叫SID一起保存,然后读出这些数字。 (我想象一个CallRecord模型在这里就像ActiveRecord一样。)

post "/process_gather" do
  number = params["Digits"].to_i
  call_record = CallRecord.new(call_sid: params["CallSid"], number: number)
  call_record.save!
  twiml = Twilio::TwiML::Response.new do |r|
    twiml.Say "Here are your numbers."
    twiml.Say (1..number).to_a.join(', ')
  end
  twiml.to_xml
end

然后,对于您的日志页面,您可以从API中检索调用,我假设您正在执行此操作。然后,您需要使用API​​中的CallRecord从数据库返回CallSid,您可以将两个记录压缩在一起并将结果读出到您的视图中。

这有帮助吗?