Twilio会议没有使用rails 4进入params

时间:2016-10-27 01:19:23

标签: ruby-on-rails twilio

使用twilio am制作会议室。我成功地在两个用户之间创建了会议。但我无法从twilio获得会议席卷。任何人都可以帮助我。

twiml1 = Twilio::TwiML::Response.new do |r|
    r.Say "You have joined the conference."
    r.Dial do |d|
      d.Conference "#{conference_title}",
        waitUrl: " ",
        muted: "false",
        startConferenceOnEnter: "true",
        endConferenceOnExit: "true",
        maxParticipants: 5,

    end
  end

这是在两个用户之间连接会议的方式。

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

此时您没有获得会议SID的参数,因为您可以通过返回此TwiML来创建会议。相反,还有其他几种方法可以获得SID。

会议活动

使用statusCallback attribute元素上的<Conference>,您可以设置一个网址,以接收各种关于会议的webhook事件(使用statusCallbackEvent attribute选择这些事件)。您可以侦听开始事件,并且您将在Webhook请求中收到会议SID作为参数。

检查REST API

否则,您可以对REST API Conference resource进行API调用。

您可以按照提供的名称搜索会议。例如,您可以search for the conference called "MyRoom"使用以下Ruby(如果安装了twilio-ruby gem):

@client = Twilio::REST::Client.new YOUR_ACCOUNT_SID, YOUR_AUTH_TOKEN

# Loop over conferences and print out the SID for each one
@client.account.conferences.list({
  :status => "in-progress",
  :friendly_name => "MyRoom"}).each do |conference|
  puts conference.sid
end

让我知道这是否有帮助。

<强> [编辑]

Rails中statusCallback的一个示例。

首先,我要调整您最初使用的TwiML:

  twiml1 = Twilio::TwiML::Response.new do |r|
    r.Say "You have joined the conference."
    r.Dial do |d|
      d.Conference "#{conference_title}",
        waitUrl: " ",
        muted: "false",
        startConferenceOnEnter: "true",
        endConferenceOnExit: "true",
        maxParticipants: 5,
        statusCallback: "/conferences/callback",
        statusCallbackEvent: "start"
    end
  end

我已经在你的Rails应用程序中添加了statusCallback属性以及一个动作的路径(你可以使用你想要的任何路径,我现在就做了这个)。我还添加了值为“start”的statusCallbackEvent属性。有other events可用,但要获得SID,启动事件就可以。

现在我们需要一个动作来接收回调。

class ConferencesController < ApplicationController
  def callback
    # Do something with the conference SID.
    Rails.logger.info(params["ConferenceSid"])
    render :nothing => true
  end
end

你也需要在该控制器操作上指向一个POST路由,但是我会把它留给你解决。