我希望允许听众在电话会议中按*键要求取消静音,主持人可以从控制台取消静音。
我有一个具有以下功能的控制器:
def conference_connect
@room_name = flash[:room_name]
@room_id = flash[:event_id]
case params['Digits']
when "1" # listener
@muted = "true"
when "3" # moderator
@moderator = "true"
end
response = Twilio::TwiML::VoiceResponse.new
response.say(voice: 'alice', language: 'en-US', message: 'You are in, press * at anytime to ask a question')
dial = Twilio::TwiML::Dial.new(hangupOnStar: true)
dial.conference(@room_name,
wait_url: "http://twimlets.com/holdmusic?xxxxxxx&",
muted: @muted || "false",
start_conference_on_enter: @moderator || "false",
end_conference_on_exit: @moderator || "false",
)
gather = Twilio::TwiML::Gather.new(action: '/redirectIntoConference?name= ' + @room_name, digits: 1)
response.append(dial)
end
我遇到以下错误:
No template found for TwilioController#conference_connect, rendering head :no_content
我想向主持人发送一条消息(或更新一些参数),以通知他听众有疑问要问。
答案 0 :(得分:1)
这里是Twilio开发人员的传播者。
您在这里遇到了几个问题。首先,您的错误是因为您没有返回在控制器操作中构建的TwiML,而Rails却在寻找模板。
在操作render
结束时,如下所示:
response.append(dial)
render xml: response.to_xml
end
关于请求在*
上发言,您已经中途了。首先,<Gather>
不会为您提供帮助,因此请摆脱掉这一行:
gather = Twilio::TwiML::Gather.new(action: '/redirectIntoConference?name= ' + @room_name, digits: 1)
相反,您在hangupOnStar
中将<Dial>
设置为true,这将使用户与会议断开连接(这听起来很糟,但这是您想要的)。您只需要设置用户挂断电话后发生的情况。
在这种情况下,您想向主持人提出请求,然后让他们重新加入会议。为此,您需要在<Dial>
上的action
parameter指向呼叫者离开会议时将请求的URL。
在此操作中,您需要以某种方式提醒主持人(我不确定您的计划如何),然后返回TwiML以将呼叫者重新加入会议。不要忘记用hangupOnStar
和action
用相同的方式设置会议。
最好,您的操作应如下所示:
def conference_connect
@room_name = flash[:room_name]
@room_id = flash[:event_id]
case params['Digits']
when "1" # listener
@muted = "true"
when "3" # moderator
@moderator = "true"
end
response = Twilio::TwiML::VoiceResponse.new
response.say(voice: 'alice', language: 'en-US', message: 'You are in, press * at anytime to ask a question')
dial = Twilio::TwiML::Dial.new(hangupOnStar: true, action: '/redirectIntoConference?name= ' + @room_name)
dial.conference(@room_name,
wait_url: "http://twimlets.com/holdmusic?xxxxxxx&",
muted: @muted || "false",
start_conference_on_enter: @moderator || "false",
end_conference_on_exit: @moderator || "false",
)
response.append(dial)
render xml: response.to_xml
end
让我知道是否有帮助。