问题描述
我需要我的应用能够首先对来电说些什么,然后循环播放录音。
这段 ruby 代码曾经可以做我想做的事,但现在似乎不再起作用了。
return 200,Twilio::TwiML::VoiceResponse.new do |r|
r.say(voice: 'alice',message: 'Hello World')
r.play(
loop: 0,url: 'https://my-domain/beep'
)
end.to_s
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say voice="Alice">Hello World</Say>
<Play loop="0">https://my-domain/beep</Play>
</Response>
Alice 说了她应该说的话,但没有播放循环测试哔声。我已验证我的服务器为 Content-Type: audio/x-wav
提供了正确的 beep
文件。
如果您有任何关于如何实现我正在尝试做的事情的指示,我将不胜感激。
解决方法
响应 Ruby
中的来电
# Get twilio-ruby from twilio.com/docs/ruby/install
require 'sinatra'
require 'twilio-ruby'
post '/voice' do
city = params['FromCity']
# Start our TwiML response
Twilio::TwiML::VoiceResponse.new do |r|
# Use <Say> to give the caller some instructions
r.say("Never gonna give you up #{city}.",voice: 'alice')
r.play(url: 'https://demo.twilio.com/docs/classic.mp3')
end.to_s
end
,
为了将来参考,这是由 Twilio 缓存旧的 wav 文件(碰巧故意保持沉默)引起的。刷新缓存后,Twilio 现在可以播放正确的声音文件。
我希望这对某人有所帮助。