是否可以播放录音,然后在通话结束后(来电者挂机)从通话接收方收集数字?
类似于:https://www.twilio.com/docs/api/twiml/gather只是它是接收者而不是呼叫者,并且在呼叫结束时它会发生。
谢谢! 的Morten
答案 0 :(得分:0)
Twilio Evangelist在这里。谢谢你的澄清。
您可以执行此操作,但需要使用电话会议。想象爱丽丝打电话给杰克。通常,你会像这样使用TwiML:
<Response>
<Dial>
+15551234567
</Dial>
</Response>
您需要做的是将Alice拨入电话会议:
<Response>
<Dial>
<Conference>Alice and Jack</Conference>
</Dial>
</Response>
然后您需要进行出站API调用以将Jack拨入会议。在Ruby中,这将是这样的:
require 'twilio-ruby'
client = Twilio::REST::Client.new "account-sid", "account-token"
cient.account.calls.create to: "+15551234567", from: "some-twilio-number", url: "Your app URL"
这将使用与上面相同的TwiML将Jack加入会议。您需要查看<Conference>
的详细信息以避免/选择保留音乐,并防止在Alice挂断时会议结束。像这样:
<Response>
<Dial>
<Conference endConferenceOnExit="false" beep="false" waitUrl="http://some-twilml-no-hold-music">
Alice and Jack
</Conference>
</Dial>
</Response>
现在,您还需要在通话结束时使用callbacks(您还应在Dashboard或通过API在Twilio号码上设置此项。
现在,您可以接听电话会议中剩余的人的呼叫SID(当您收到TwiML的初始请求时,您将收到此消息),并使用REST API to modify that call,将它们重定向到新的TwiML:
require 'twilio-ruby'
client = Twilio::REST::Client.new "account-sid", "account-token"
call = client.account.calls.get "my-call-sid"
call.redirect_to url: "http://new-url-of-twiml", method: "POST"
这允许您将调用重定向到TwiML,例如:
<Response>
<Gather action="http://some-url-to-send-digits-to">
<Play>http://some-mp3-or-wav-file</Play>
</Gather>
</Response>
Twilio将播放MP3 / WAV文件,同时收听用户输入的任何键(DTMF)音。您需要配置<Gather>
,具体取决于您想要收听的密钥数量等。但这非常简单。
希望这有帮助!