我让Twilio使用键盘响应。现在我想对记录和转录响应的呼叫做同样的事情。我有键盘
def digits
twiml_response = Twilio::TwiML::Response.new do |r|
r.Gather numDigits: '1', timeout: 1, action:
communications_menu_path(@question.id) do |g|
g.Say "Please press one to continue", voice: 'alice', language: 'an-AU'
g.Pause length: 5
g.Say "Last chance. I didn't get any response. Please press one to continue.",
voice: 'alice', language: 'an-AU'
g.Pause length: 5
end
end
render :xml => twiml_response.to_xml
end
这是我尝试过的语音控制,
def voice
twiml_response = Twilio::TwiML::Response.new do |r|
g.Say "Please say continue to continue", voice: 'alice', language: 'an-AU'
r.Record maxLength: 5, transcribeCallback:
transcriptions_path(question.id),
action: communications_menu_path(@question.id)
g.Say "Last chance. I didn't get any response. Please say continue to continue.",
voice: 'alice', language: 'an-AU'
r.Record maxLength: 5, transcribeCallback:
transcriptions_path(question.id),
action: communications_menu_path(@question.id)
end
render :xml => twiml_response.to_xml
end
我调整了Twilio调查控制器的代码。在该示例中,存储转录的答案,但是对问题流没有任何控制。就我而言,他们这样做。我如何使用recordingStatusCallback
来执行此操作?
答案 0 :(得分:0)
Twilio开发者传道者在这里。
现在使用语音进行响应并不像Twilio那样简单,因为录音和转录与电话异步发生。
所以,您需要做的是,一旦您点击<Record>
的action
网址,您就不会有录音或答案。您可以在等待接收转录时将用户置于循环中(例如,使用<Pause>
和<Redirect>
),然后在获得响应后使用REST API to redirect the call。
<强> [编辑] 强>
这是重定向循环的样子:
def redirect_loop
twiml_response = Twilio::TwiML::Response.new do |r|
r.Pause length: "10"
r.Redirect redirect_loop_path
end
render xml: twiml_response.to_xml
end
您可以使用任何长度暂停,您认为这是一个好主意。有一个短的可能是有用的,这样你就可以测量这个过程需要多长时间。您还可以使用您希望用户等待的最大长度暂停,然后将其发送到备用回复或基于<Gather>
的菜单。